From 3501955782699e5a762cb6b40cd9cc73dd659c52 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 26 Mar 2018 01:47:44 +0530 Subject: [PATCH 001/124] basic support for a dark theme --- Rocket.Chat.xcodeproj/project.pbxproj | 20 ++-- Rocket.Chat/AppDelegate.swift | 2 + .../Controllers/Chat/ChatViewController.swift | 15 ++- .../Chat/MainChatViewController.swift | 4 + .../Helpers/MessageTextFontAttributes.swift | 6 +- Rocket.Chat/Info.plist | 2 +- Rocket.Chat/Themeable.swift | 105 ++++++++++++++++++ Rocket.Chat/Views/Avatar/AvatarView.swift | 6 + .../Views/Cells/Chat/ChatMessageCell.swift | 8 ++ .../Cells/Chat/ChatMessageTextView.swift | 7 ++ .../Views/Cells/Chat/ChatMessageURLView.swift | 8 ++ .../Views/Cells/Chat/ChatMessageURLView.xib | 5 +- 12 files changed, 172 insertions(+), 16 deletions(-) create mode 100644 Rocket.Chat/Themeable.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 97ff89a9b9..e534712abb 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -87,6 +87,7 @@ 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */; }; 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */; }; 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; + 3353DBF8206787E500738D1C /* Themeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Themeable.swift */; }; 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; @@ -545,6 +546,7 @@ 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCell.swift; sourceTree = ""; }; 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MentionsTextFieldTableViewCell.xib; sourceTree = ""; }; 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; + 3353DBF7206787E500738D1C /* Themeable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Themeable.swift; sourceTree = ""; }; 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; @@ -1293,8 +1295,8 @@ 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, - 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, + 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, @@ -1716,6 +1718,7 @@ 0B3A9760202C4DE10019CA92 /* Resources */, 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */, 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, + 3353DBF7206787E500738D1C /* Themeable.swift */, 41DF76EE1D2C50720028DBF8 /* Info.plist */, 41833F4D1DEF16B600E54655 /* Keys.plist */, 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */, @@ -2329,7 +2332,7 @@ TargetAttributes = { 41DF76DE1D2C50710028DBF8 = { CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = S6UPZG7ZR3; + DevelopmentTeam = 8M5NP3VM5V; LastSwiftMigration = 0900; SystemCapabilities = { com.apple.BackgroundModes = { @@ -3054,6 +3057,7 @@ 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, + 3353DBF8206787E500738D1C /* Themeable.swift in Sources */, 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */, 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */, 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */, @@ -3367,12 +3371,12 @@ CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; + DEVELOPMENT_TEAM = 8M5NP3VM5V; INFOPLIST_FILE = Rocket.Chat/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_SWIFT_FLAGS = "$(inherited) -Onone -D DEBUG \"-D\" \"COCOAPODS\""; - PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_BUNDLE_IDENTIFIER = sam.chat.rocket.ios; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; @@ -3390,11 +3394,11 @@ CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; + DEVELOPMENT_TEAM = 8M5NP3VM5V; INFOPLIST_FILE = Rocket.Chat/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_BUNDLE_IDENTIFIER = sam.chat.rocket.ios; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; @@ -3529,12 +3533,12 @@ CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; + DEVELOPMENT_TEAM = 8M5NP3VM5V; INFOPLIST_FILE = Rocket.Chat/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-D\" \"BETA\""; - PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_BUNDLE_IDENTIFIER = sam.chat.rocket.ios; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; diff --git a/Rocket.Chat/AppDelegate.swift b/Rocket.Chat/AppDelegate.swift index 08eb606cda..7a63e3e7a9 100644 --- a/Rocket.Chat/AppDelegate.swift +++ b/Rocket.Chat/AppDelegate.swift @@ -16,6 +16,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? + static let theme = Theme.dark + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { Launcher().prepareToLaunch(with: launchOptions) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index 47974c7679..8532f0e199 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -159,11 +159,18 @@ final class ChatViewController: SLKTextViewController { registerCells() } + override var preferredStatusBarStyle: UIStatusBarStyle { + return .lightContent + } + override func viewDidLoad() { super.viewDidLoad() + navigationController?.navigationBar.barStyle = .black navigationController?.navigationBar.isTranslucent = false - navigationController?.navigationBar.barTintColor = UIColor.white - navigationController?.navigationBar.tintColor = UIColor(rgb: 0x5B5B5B, alphaVal: 1) +// navigationController?.navigationBar.barTintColor = UIColor.white +// navigationController?.navigationBar.tintColor = UIColor(rgb: 0x5B5B5B, alphaVal: 1) + navigationController?.navigationBar.applyTheme(AppDelegate.theme) + setNeedsStatusBarAppearanceUpdate() collectionView?.isPrefetchingEnabled = true collectionView?.keyboardDismissMode = .interactive @@ -202,6 +209,7 @@ final class ChatViewController: SLKTextViewController { } setupReplyView() + view.applyTheme(Theme.dark) } override func viewWillAppear(_ animated: Bool) { @@ -266,6 +274,7 @@ final class ChatViewController: SLKTextViewController { let view = ChatTitleView.instantiateFromNib() self.navigationItem.titleView = view chatTitleView = view + view?.applyTheme(AppDelegate.theme) let gesture = UITapGestureRecognizer(target: self, action: #selector(chatTitleViewDidPressed)) chatTitleView?.addGestureRecognizer(gesture) @@ -393,6 +402,7 @@ final class ChatViewController: SLKTextViewController { if !oldTextInputbarBgIsTransparent, view.safeAreaInsets.bottom > 0 { textInputbar.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default) textInputbar.backgroundColor = UIColor.clear + textInputbar.barTintColor = UIColor.clear oldTextInputbarBgIsTransparent = true } @@ -405,6 +415,7 @@ final class ChatViewController: SLKTextViewController { private func insertTextInputbarBackground() { if #available(iOS 11.0, *) { textInputbar.insertSubview(textInputbarBackground, at: 0) + textInputbarBackground.applyTheme(AppDelegate.theme) textInputbarBackground.translatesAutoresizingMaskIntoConstraints = false textInputbarBackgroundHeightConstraint = textInputbarBackground.heightAnchor.constraint(equalTo: textInputbar.heightAnchor, multiplier: 1, constant: view.safeAreaInsets.bottom) diff --git a/Rocket.Chat/Controllers/Chat/MainChatViewController.swift b/Rocket.Chat/Controllers/Chat/MainChatViewController.swift index 3db40d5270..15d4cc23c0 100644 --- a/Rocket.Chat/Controllers/Chat/MainChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/MainChatViewController.swift @@ -17,6 +17,10 @@ class MainChatViewController: SideMenuController, SideMenuControllerDelegate { return UIApplication.shared.windows.first?.rootViewController as? MainChatViewController } + override var preferredStatusBarStyle: UIStatusBarStyle { + return .lightContent + } + class func closeSideMenuIfNeeded() { if let instance = shared { if instance.sidePanelVisible { diff --git a/Rocket.Chat/Helpers/MessageTextFontAttributes.swift b/Rocket.Chat/Helpers/MessageTextFontAttributes.swift index ddba745966..8db99966cc 100644 --- a/Rocket.Chat/Helpers/MessageTextFontAttributes.swift +++ b/Rocket.Chat/Helpers/MessageTextFontAttributes.swift @@ -12,9 +12,9 @@ struct MessageTextFontAttributes { static let defaultFontSize = CGFloat(15) - static let defaultFontColor = UIColor.darkGray - static let systemFontColor = UIColor.lightGray - static let failedFontColor = UIColor.lightGray + static let defaultFontColor = AppDelegate.theme.bodyText //UIColor.darkGray + static let systemFontColor = AppDelegate.theme.auxiliaryText //UIColor.lightGray + static let failedFontColor = AppDelegate.theme.auxiliaryBackground //UIColor.lightGray static let defaultFont = UIFont.systemFont(ofSize: defaultFontSize) static let italicFont = UIFont.italicSystemFont(ofSize: defaultFontSize) diff --git a/Rocket.Chat/Info.plist b/Rocket.Chat/Info.plist index d6d4013739..5c7dca7aac 100644 --- a/Rocket.Chat/Info.plist +++ b/Rocket.Chat/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - Rocket.Chat+ + Rocket.Test CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIcons diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift new file mode 100644 index 0000000000..98932b1508 --- /dev/null +++ b/Rocket.Chat/Themeable.swift @@ -0,0 +1,105 @@ +// +// Themeable.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 3/25/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit +import SlackTextViewController + +class Theme: NSObject { + let backgroundColor: UIColor + let titleText: UIColor + let bodyText: UIColor + let auxiliaryText: UIColor + let hyperlinkText: UIColor + let tintColor: UIColor + let focusedBackground: UIColor + let auxiliaryBackground: UIColor + + init(backgroundColor: UIColor, titleText: UIColor, bodyText: UIColor, auxiliaryText: UIColor, hyperlinkText: UIColor, tintColor: UIColor, focusedBackground: UIColor, auxiliaryBackground: UIColor) { + self.backgroundColor = backgroundColor + self.titleText = titleText + self.bodyText = bodyText + self.auxiliaryText = auxiliaryText + self.hyperlinkText = hyperlinkText + self.tintColor = tintColor + self.focusedBackground = focusedBackground + self.auxiliaryBackground = auxiliaryBackground + } + + static let dark = Theme( + backgroundColor: #colorLiteral(red: 0.1215686275, green: 0.1215686275, blue: 0.1215686275, alpha: 1), + titleText: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), + bodyText: #colorLiteral(red: 0.9294117647, green: 0.9294117647, blue: 0.9294117647, alpha: 1), + auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.6980392157, blue: 0.6980392157, alpha: 1), + hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), + tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), + focusedBackground: #colorLiteral(red: 0.1433121264, green: 0.1433121264, blue: 0.1433121264, alpha: 1), + auxiliaryBackground: #colorLiteral(red: 0, green: 0.1019607843, blue: 0.3254901961, alpha: 1) + ) +} + +@objc protocol Themeable { + @objc func applyTheme(_ theme: Theme) +} + +extension UIView: Themeable { + func applyTheme(_ theme: Theme) { + backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) + subviews.forEach { $0.applyTheme(theme) } + } +} + +extension UILabel { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + textColor = theme.bodyText + } +} + +extension UICollectionView { + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme(AppDelegate.theme) + } +} + +extension SLKTextView { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + self.textColor = theme.bodyText + } +} + +extension UITextView { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + self.tintColor = theme.hyperlinkText + } +} + +extension UINavigationBar { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + self.subviews.forEach { $0.applyTheme(theme) } + self.barTintColor = theme.backgroundColor + self.tintColor = theme.bodyText + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme(AppDelegate.theme) + } +} + +extension UIToolbar { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + self.isTranslucent = false + self.barTintColor = theme.focusedBackground + self.tintColor = theme.tintColor + } +} diff --git a/Rocket.Chat/Views/Avatar/AvatarView.swift b/Rocket.Chat/Views/Avatar/AvatarView.swift index 3694403e4a..422bc36cb3 100644 --- a/Rocket.Chat/Views/Avatar/AvatarView.swift +++ b/Rocket.Chat/Views/Avatar/AvatarView.swift @@ -168,3 +168,9 @@ final class AvatarView: UIView { } } + +extension AvatarView { + override func applyTheme(_ theme: Theme) { + self.subviews.forEach { $0.applyTheme(theme) } + } +} diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift index 160b93b1af..47d0e95581 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift @@ -424,3 +424,11 @@ extension ChatMessageCell { } } + +extension ChatMessageCell { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + labelDate.textColor = theme.auxiliaryText + labelUsername.textColor = theme.titleText + } +} diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift index a71862a76e..40959710a7 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift @@ -125,3 +125,10 @@ final class ChatMessageTextView: UIView { } } } + +extension ChatMessageTextView { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + viewLeftBorder.backgroundColor = theme.auxiliaryText + } +} diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.swift index 72e470aa5c..db11baf764 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.swift @@ -23,6 +23,7 @@ final class ChatMessageURLView: UIView { } } + @IBOutlet weak var viewLeftBorder: UIView! @IBOutlet weak var imageViewURLWidthConstraint: NSLayoutConstraint! @IBOutlet weak var imageViewURL: UIImageView! { didSet { @@ -62,3 +63,10 @@ final class ChatMessageURLView: UIView { delegate?.openURLFromCell(url: url) } } + +extension ChatMessageURLView { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + viewLeftBorder.backgroundColor = theme.auxiliaryText + } +} diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.xib b/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.xib index 39c91888f5..5738ea2db9 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.xib +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.xib @@ -1,11 +1,11 @@ - + - + @@ -66,6 +66,7 @@ + From 4922414e7be8d339828d897cbeafae3c67f65046 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Tue, 24 Apr 2018 22:40:45 +0530 Subject: [PATCH 002/124] Minor fixes after merge --- Rocket.Chat.xcodeproj/project.pbxproj | 9111 +++++++++-------- .../Views/Cells/Chat/ChatMessageCell.swift | 40 + .../Models/SubscriptionSpec.swift | 1 - 3 files changed, 4604 insertions(+), 4548 deletions(-) diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 6488bec548..2c9bb99b07 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -1,4604 +1,4621 @@ // !$*UTF8*$! { - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { /* Begin PBXBuildFile section */ - 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */; }; - 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */; }; - 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */; }; - 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */; }; - 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */; }; - 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */; }; - 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */; }; - 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */; }; - 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */; }; - 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */; }; - 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */; }; - 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */; }; - 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */; }; - 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 140A95E0202F526C003FD564 /* Drawing.storyboard */; }; - 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E3202F536D003FD564 /* DrawingViewController.swift */; }; - 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */; }; - 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */; }; - 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1435BFA21F9B601600FB2768 /* RCTextView.swift */; }; - 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14A6A83020421DF8008C210D /* ColorPickerView.swift */; }; - 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */; }; - 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */; }; - 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */; }; - 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A213202E5CBD00175FDC /* Black-29@3x.png */; }; - 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A216202E5CBE00175FDC /* Black-76@2x.png */; }; - 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A217202E5CBE00175FDC /* Black-60@3x.png */; }; - 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A218202E5CBE00175FDC /* Black-60@2x.png */; }; - 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A219202E5CBE00175FDC /* Black-29@2x.png */; }; - 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */; }; - 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */; }; - 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */; }; - 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */; }; - 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A22F202E5D0400175FDC /* Red-60@3x.png */; }; - 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A230202E5D0400175FDC /* Red-29@3x.png */; }; - 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A232202E5D0400175FDC /* Red-29@2x.png */; }; - 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A233202E5D0400175FDC /* Red-76@2x.png */; }; - 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A234202E5D0400175FDC /* Red-60@2x.png */; }; - 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A235202E5D0500175FDC /* Red-40@3x.png */; }; - 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A236202E5D0500175FDC /* Red-40@2x.png */; }; - 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */; }; - 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A238202E5D0600175FDC /* Red-76@3x.png */; }; - 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */; }; - 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24C202E64B100175FDC /* BnW-40@3x.png */; }; - 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24D202E64B100175FDC /* BnW-29@2x.png */; }; - 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24E202E64B100175FDC /* BnW-60@2x.png */; }; - 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24F202E64B100175FDC /* BnW-60@3x.png */; }; - 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A250202E64B100175FDC /* BnW-29@3x.png */; }; - 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A251202E64B100175FDC /* BnW-76@2x.png */; }; - 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A252202E64B100175FDC /* BnW-40@2x.png */; }; - 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A254202E64B200175FDC /* BnW-76@3x.png */; }; - 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A263202E653D00175FDC /* Grey-40@2x.png */; }; - 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A264202E653D00175FDC /* Grey-29@2x.png */; }; - 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A265202E653D00175FDC /* Grey-76@3x.png */; }; - 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */; }; - 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A267202E653D00175FDC /* Grey-76@2x.png */; }; - 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A268202E653E00175FDC /* Grey-40@3x.png */; }; - 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A269202E653E00175FDC /* Grey-29@3x.png */; }; - 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26A202E653E00175FDC /* Grey-60@3x.png */; }; - 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26B202E653E00175FDC /* Grey-60@2x.png */; }; - 14F8A280202E659000175FDC /* White-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A277202E658E00175FDC /* White-76@2x.png */; }; - 14F8A281202E659000175FDC /* White-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A278202E658E00175FDC /* White-40@3x.png */; }; - 14F8A282202E659000175FDC /* White-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A279202E658E00175FDC /* White-76@3x.png */; }; - 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27A202E658F00175FDC /* White-83.5@2x.png */; }; - 14F8A284202E659000175FDC /* White-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27B202E658F00175FDC /* White-60@2x.png */; }; - 14F8A285202E659000175FDC /* White-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27C202E658F00175FDC /* White-29@3x.png */; }; - 14F8A286202E659000175FDC /* White-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27D202E658F00175FDC /* White-29@2x.png */; }; - 14F8A287202E659000175FDC /* White-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27E202E658F00175FDC /* White-40@2x.png */; }; - 14F8A288202E659000175FDC /* White-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27F202E658F00175FDC /* White-60@3x.png */; }; - 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A289202E65C500175FDC /* Blue-29@3x.png */; }; - 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28A202E65C600175FDC /* Blue-60@2x.png */; }; - 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28B202E65C600175FDC /* Blue-60@3x.png */; }; - 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28C202E65C600175FDC /* Blue-76@3x.png */; }; - 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */; }; - 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28E202E65C600175FDC /* Blue-40@2x.png */; }; - 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28F202E65C700175FDC /* Blue-29@2x.png */; }; - 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A290202E65C700175FDC /* Blue-40@3x.png */; }; - 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A291202E65C700175FDC /* Blue-76@2x.png */; }; - 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */; }; - 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */; }; - 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */; }; - 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */; }; - 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */; }; - 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */; }; - 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */; }; - 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */; }; - 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */; }; - 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */; }; - 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */; }; - 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 333207FE20766E4F00AD3290 /* NotificationViewController.xib */; }; - 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */; }; - 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; + 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */; }; + 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */; }; + 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */; }; + 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */; }; + 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */; }; + 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */; }; + 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */; }; + 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */; }; + 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */; }; + 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */; }; + 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */; }; + 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */; }; + 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */; }; + 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 140A95E0202F526C003FD564 /* Drawing.storyboard */; }; + 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E3202F536D003FD564 /* DrawingViewController.swift */; }; + 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */; }; + 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */; }; + 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1435BFA21F9B601600FB2768 /* RCTextView.swift */; }; + 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14A6A83020421DF8008C210D /* ColorPickerView.swift */; }; + 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */; }; + 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */; }; + 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */; }; + 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A213202E5CBD00175FDC /* Black-29@3x.png */; }; + 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A216202E5CBE00175FDC /* Black-76@2x.png */; }; + 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A217202E5CBE00175FDC /* Black-60@3x.png */; }; + 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A218202E5CBE00175FDC /* Black-60@2x.png */; }; + 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A219202E5CBE00175FDC /* Black-29@2x.png */; }; + 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */; }; + 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */; }; + 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */; }; + 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */; }; + 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A22F202E5D0400175FDC /* Red-60@3x.png */; }; + 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A230202E5D0400175FDC /* Red-29@3x.png */; }; + 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A232202E5D0400175FDC /* Red-29@2x.png */; }; + 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A233202E5D0400175FDC /* Red-76@2x.png */; }; + 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A234202E5D0400175FDC /* Red-60@2x.png */; }; + 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A235202E5D0500175FDC /* Red-40@3x.png */; }; + 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A236202E5D0500175FDC /* Red-40@2x.png */; }; + 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */; }; + 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A238202E5D0600175FDC /* Red-76@3x.png */; }; + 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */; }; + 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24C202E64B100175FDC /* BnW-40@3x.png */; }; + 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24D202E64B100175FDC /* BnW-29@2x.png */; }; + 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24E202E64B100175FDC /* BnW-60@2x.png */; }; + 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24F202E64B100175FDC /* BnW-60@3x.png */; }; + 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A250202E64B100175FDC /* BnW-29@3x.png */; }; + 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A251202E64B100175FDC /* BnW-76@2x.png */; }; + 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A252202E64B100175FDC /* BnW-40@2x.png */; }; + 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A254202E64B200175FDC /* BnW-76@3x.png */; }; + 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A263202E653D00175FDC /* Grey-40@2x.png */; }; + 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A264202E653D00175FDC /* Grey-29@2x.png */; }; + 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A265202E653D00175FDC /* Grey-76@3x.png */; }; + 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */; }; + 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A267202E653D00175FDC /* Grey-76@2x.png */; }; + 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A268202E653E00175FDC /* Grey-40@3x.png */; }; + 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A269202E653E00175FDC /* Grey-29@3x.png */; }; + 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26A202E653E00175FDC /* Grey-60@3x.png */; }; + 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26B202E653E00175FDC /* Grey-60@2x.png */; }; + 14F8A280202E659000175FDC /* White-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A277202E658E00175FDC /* White-76@2x.png */; }; + 14F8A281202E659000175FDC /* White-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A278202E658E00175FDC /* White-40@3x.png */; }; + 14F8A282202E659000175FDC /* White-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A279202E658E00175FDC /* White-76@3x.png */; }; + 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27A202E658F00175FDC /* White-83.5@2x.png */; }; + 14F8A284202E659000175FDC /* White-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27B202E658F00175FDC /* White-60@2x.png */; }; + 14F8A285202E659000175FDC /* White-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27C202E658F00175FDC /* White-29@3x.png */; }; + 14F8A286202E659000175FDC /* White-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27D202E658F00175FDC /* White-29@2x.png */; }; + 14F8A287202E659000175FDC /* White-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27E202E658F00175FDC /* White-40@2x.png */; }; + 14F8A288202E659000175FDC /* White-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27F202E658F00175FDC /* White-60@3x.png */; }; + 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A289202E65C500175FDC /* Blue-29@3x.png */; }; + 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28A202E65C600175FDC /* Blue-60@2x.png */; }; + 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28B202E65C600175FDC /* Blue-60@3x.png */; }; + 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28C202E65C600175FDC /* Blue-76@3x.png */; }; + 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */; }; + 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28E202E65C600175FDC /* Blue-40@2x.png */; }; + 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28F202E65C700175FDC /* Blue-29@2x.png */; }; + 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A290202E65C700175FDC /* Blue-40@3x.png */; }; + 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A291202E65C700175FDC /* Blue-76@2x.png */; }; + 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */; }; + 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */; }; + 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */; }; + 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */; }; + 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */; }; + 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */; }; + 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */; }; + 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */; }; + 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */; }; + 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */; }; + 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */; }; + 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 333207FE20766E4F00AD3290 /* NotificationViewController.xib */; }; + 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */; }; + 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; 3353DBF8206787E500738D1C /* Themeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Themeable.swift */; }; - 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; - 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; - 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; - 33A5C9CB206A565800FE1C8F /* travel.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C2206A565800FE1C8F /* travel.json */; }; - 33A5C9CC206A565800FE1C8F /* regional.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C3206A565800FE1C8F /* regional.json */; }; - 33A5C9CD206A565800FE1C8F /* flags.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C4206A565800FE1C8F /* flags.json */; }; - 33A5C9CE206A565800FE1C8F /* people.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C5206A565800FE1C8F /* people.json */; }; - 33A5C9CF206A565800FE1C8F /* objects.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C6206A565800FE1C8F /* objects.json */; }; - 33A5C9D0206A565800FE1C8F /* food.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C7206A565800FE1C8F /* food.json */; }; - 33A5C9D1206A565800FE1C8F /* activity.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C8206A565800FE1C8F /* activity.json */; }; - 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; - 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; - 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; - 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; - 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; - 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; - 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; - 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */; }; - 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */; }; - 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */; }; - 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */; }; - 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */; }; - 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */; }; - 4100B2842087779D00E2883A /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; - 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF001F8D0A1700F67E89 /* AppManager.swift */; }; - 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */; }; - 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B51F680DB00019854B /* NetworkCoordinator.swift */; }; - 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B71F6825C30019854B /* NetworkManagerSpec.swift */; }; - 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */; }; - 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; - 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */; }; - 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */; }; - 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4102E3A91E532323004BAA82 /* Preferences.storyboard */; }; - 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */; }; - 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */; }; - 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */; }; - 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */; }; - 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */; }; - 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */; }; - 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */; }; - 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */; }; - 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */; }; - 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */; }; - 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */; }; - 4129937E208E25C200E12C49 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4129937D208E25C100E12C49 /* PreferencesViewController.swift */; }; - 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */; }; - 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */; }; - 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */; }; - 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */; }; - 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; - 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */; }; - 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */; }; - 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412EF3C52050507C001689A3 /* ReusableViewText.xib */; }; - 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; - 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */; }; - 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */; }; - 413996171F3B44500075F96E /* UploadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 413996161F3B44500075F96E /* UploadHelper.swift */; }; - 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */; }; - 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */; }; - 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */; }; - 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */; }; - 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; - 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C8E1F2A116900790EA7 /* ServerManager.swift */; }; - 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */; }; - 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF51D46320F00093E10 /* ResponseMessage.swift */; }; - 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF91D46395400093E10 /* SocketManager.swift */; }; - 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FFB1D46395900093E10 /* SocketResponse.swift */; }; - 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */; }; - 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; - 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */; }; - 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */; }; - 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */; }; - 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */; }; - 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */; }; - 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */; }; - 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */; }; - 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */; }; - 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */; }; - 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */; }; - 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4153E80420504BE700FBC26B /* ReusableViewText.swift */; }; - 41552F661D30308C0081438D /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; - 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F671D3035D80081438D /* SocketManagerSpec.swift */; }; - 4159720C1D3DB854002258F4 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; - 4159720E1D3DB882002258F4 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; - 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */; }; - 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */; }; - 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */; }; - 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */; }; - 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */; }; - 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133391D46E0A200E09DA2 /* AuthSpec.swift */; }; - 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333B1D46E32F00E09DA2 /* UserSpec.swift */; }; - 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */; }; - 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */; }; - 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */; }; - 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; - 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */; }; - 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1521D651A8800AAAE49 /* UserManager.swift */; }; - 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */; }; - 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */; }; - 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */; }; - 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */; }; - 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB121D2D99960086DAC8 /* BaseViewController.swift */; }; - 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */; }; - 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */; }; - 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; - 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */; }; - 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */; }; - 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */; }; - 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 41833F4D1DEF16B600E54655 /* Keys.plist */; }; - 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */; }; - 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */; }; - 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */; }; - 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */; }; - 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */; }; - 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */; }; - 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */; }; - 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */; }; - 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */; }; - 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; - 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419205481D52EDE6004EEC5F /* UILabelExtension.swift */; }; - 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */; }; - 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; - 4199A9891DABCC570035F820 /* Emojione.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4199A9881DABCC570035F820 /* Emojione.swift */; }; - 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */; }; - 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */; }; - 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */; }; - 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */; }; - 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */; }; - 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA31F3CA21A005F224B /* DownloadManager.swift */; }; - 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */; }; - 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */; }; - 41A79C0F1D2F085F00A1968E /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; - 41A79C131D2F09F200A1968E /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; - 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; - 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */; }; - 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */; }; - 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */; }; - 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */; }; - 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD481E9DBB100007A458 /* LoaderView.swift */; }; - 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */; }; - 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */; }; - 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; - 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C61FBF0F9D000510B7 /* WindowManager.swift */; }; - 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */; }; - 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96361207E48260068F1A6 /* MessageTextValidator.swift */; }; - 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */; }; - 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */; }; - 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; - 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */; }; - 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */; }; - 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C275DE1D848005003C88CF /* AvatarView.swift */; }; - 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41C275E01D84815C003C88CF /* AvatarView.xib */; }; - 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */; }; - 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */; }; - 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */; }; - 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */; }; - 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */; }; - 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */; }; - 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */; }; - 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */; }; - 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */; }; - 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */; }; - 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D7CA861E644E47000F38EA /* MessageExtensions.swift */; }; - 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */; }; - 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */; }; - 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */; }; - 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; - 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; - 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1C1D38471700896FC0 /* MessageManager.swift */; }; - 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */; }; - 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */; }; - 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */; }; - 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */; }; - 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */; }; - 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */; }; - 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; - 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */; }; - 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */; }; - 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2F9FE1D414DE800238DFD /* Chat.storyboard */; }; - 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */; }; - 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */; }; - 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA061D41513C00238DFD /* ChatViewController.swift */; }; - 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */; }; - 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */; }; - 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */; }; - 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */; }; - 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */; }; - 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */; }; - 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 41EB22381E5F056600AA3AE7 /* Localizable.strings */; }; - 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */; }; - 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */; }; - 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */; }; - 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */; }; - 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */; }; - 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; - 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */; }; - 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */; }; - 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; - 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA31E3708B10041C5C5 /* PushManager.swift */; }; - 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */; }; - 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */; }; - 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4141F852B720074B2F4 /* SelectField.swift */; }; - 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4181F852D670074B2F4 /* CustomField.swift */; }; - 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77BA81501F87C4CB00F295F4 /* TextField.swift */; }; - 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261241F97445300724A1F /* AuthSettingsSpec.swift */; }; - 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */; }; - 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261291F97453600724A1F /* CustomFieldsSpec.swift */; }; - 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */; }; - 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612B1F97453600724A1F /* TextFieldSpec.swift */; }; - 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */; }; - 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */; }; - 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; - 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */; }; - 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */; }; - 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; - 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */; }; - 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */; }; - 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; - 800640F72049BA25006D990F /* SEScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800640F62049BA25006D990F /* SEScene.swift */; }; - 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */; }; - 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */; }; - 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800F38EC2019492D0005CB78 /* DeepLink.swift */; }; - 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */; }; - 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */; }; - 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */; }; - 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */; }; - 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */; }; - 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */; }; - 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD491F728E6A00D9A692 /* MemberCell.swift */; }; - 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */; }; - 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */; }; - 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */; }; - 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */; }; - 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8661FD6B4F400EE1A4E /* Command.swift */; }; - 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; - 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; - 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; - 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */; }; - 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */; }; - 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; - 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */; }; - 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */; }; - 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */; }; - 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */; }; - 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */; }; - 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */; }; - 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */; }; - 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */; }; - 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */; }; - 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */; }; - 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */; }; - 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */; }; - 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */; }; - 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */; }; - 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */; }; - 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; - 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */; }; - 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */; }; - 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */; }; - 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */; }; - 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */; }; - 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498ED1F7A8380005477EC /* MeRequest.swift */; }; - 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */; }; - 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */; }; - 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */; }; - 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F12059B6F60067157B /* VideoInfo.swift */; }; - 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */; }; - 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E102049C7340072CD23 /* SENavigationController.swift */; }; - 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; - 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */; }; - 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */; }; - 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80307E431FD75DC0006AD9EF /* VoiceOver.strings */; }; - 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */; }; - 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 803782B61FB4751D00DED049 /* RealmTestCase.swift */; }; - 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */; }; - 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C0412028C7EF007E21FA /* ReactorListView.swift */; }; - 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8041C0432028C828007E21FA /* ReactorListView.xib */; }; - 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */; }; - 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */; }; - 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; - 804273DD204EBD51006DF420 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; - 804273DE204EBD51006DF420 /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; - 804273DF204EBD51006DF420 /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; - 804273E0204EBD51006DF420 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; - 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; - 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; - 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */; }; - 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */; }; - 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC341FFC03380033151B /* CustomEmojiManager.swift */; }; - 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC361FFC08870033151B /* CustomEmoji.swift */; }; - 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */; }; - 806401311FB09DE800990572 /* Permission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401301FB09DE800990572 /* Permission.swift */; }; - 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401321FB09EC400990572 /* PermissionModelMapping.swift */; }; - 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401341FB09F8A00990572 /* PermissionManager.swift */; }; - 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 806465EB1FED19B9001F27DB /* EmojiView.xib */; }; - 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806465ED1FED1AFE001F27DB /* EmojiView.swift */; }; - 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */; }; - 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FE20079734009FE94D /* DeleteMessageRequest.swift */; }; - 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */; }; - 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */; }; - 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */; }; - 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; - 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8069D26D1FFF876D00C75926 /* Emoji.swift */; }; - 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */; }; - 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */; }; - 806DB94320687697004ED8ED /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; - 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; - 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */; }; - 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */; }; - 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */; }; - 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */; }; - 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371991F94E83600D53ADF /* SocketError.swift */; }; - 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719B1F963FA400D53ADF /* APITestCase.swift */; }; - 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */; }; - 807371A01F96937100D53ADF /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719F1F96937100D53ADF /* LoginService.swift */; }; - 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */; }; - 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */; }; - 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9920484A6000114F28 /* SEStore.swift */; }; - 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; - 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; - 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; - 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */; }; - 8076FDA42048533000114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; - 8076FDA52048534200114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; - 8076FDA62048536800114F28 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; - 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA8204853DE00114F28 /* RealmExecute.swift */; }; - 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */; }; - 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */; }; - 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */; }; - 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */; }; - 8076FDB3204856E200114F28 /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; - 8076FDB52048571200114F28 /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; - 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; - 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */; }; - 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; - 8076FDBD2048598100114F28 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; - 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */; }; - 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; - 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC62048632300114F28 /* SubscriptionQueries.swift */; }; - 8076FDC82048639700114F28 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; - 8076FDC9204863AF00114F28 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; - 8076FDCA204863B900114F28 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; - 8076FDCB204863C500114F28 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; - 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; - 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; - 8076FDCE2048642400114F28 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; - 8076FDD12048646500114F28 /* MessageReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD02048646500114F28 /* MessageReply.swift */; }; - 8076FDD22048648D00114F28 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; - 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; - 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD5204864E700114F28 /* UserQueries.swift */; }; - 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD72048654F00114F28 /* UserUtils.swift */; }; - 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD920489F5900114F28 /* SEViewController.swift */; }; - 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */; }; - 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */; }; - 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; - 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; - 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDEC2049A5F600114F28 /* SECellModel.swift */; }; - 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */; }; - 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */; }; - 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */; }; - 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */; }; - 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0520751ED1006B600E /* SpotlightClient.swift */; }; - 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0720751EDB006B600E /* SpotlightRequest.swift */; }; - 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */; }; - 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */; }; - 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C11207522EF006B600E /* LoginServicesRequest.swift */; }; - 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53C2044B49800E21429 /* Emojione+Transform.swift */; }; - 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */; }; - 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */; }; - 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 807FB55C2046E7DD00E21429 /* Main.storyboard */; }; - 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB568204729E500E21429 /* SEServersViewController.swift */; }; - 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */; }; - 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 807FB57120472B6A00E21429 /* Localizable.strings */; }; - 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB581204837AF00E21429 /* SEServersViewModel.swift */; }; - 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */; }; - 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; - 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */; }; - 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792371FB14B3300EFE77F /* PermissionSpec.swift */; }; - 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; - 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; - 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; - 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; - 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; - 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB5204EEF1E00C41435 /* SelectServer.swift */; }; - 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB8204EFBCC00C41435 /* SENavigation.swift */; }; - 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */; }; - 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABE204F36F200C41435 /* SESearchState.swift */; }; - 80977AC2204F37C200C41435 /* SEState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC1204F37C200C41435 /* SEState.swift */; }; - 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */; }; - 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */; }; - 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */; }; - 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530F1FE2F17D00833DD2 /* ReactionView.swift */; }; - 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53111FE2F2F900833DD2 /* ReactionView.xib */; }; - 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53131FE3294400833DD2 /* ReactionListView.xib */; }; - 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; - 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; - 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; - 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */; }; - 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */; }; - 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */; }; - 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */; }; - 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */; }; - 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */; }; - 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */; }; - 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C561F71D2E400FE5AC4 /* APISpec.swift */; }; - 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */; }; - 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */; }; - 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */; }; - 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */; }; - 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */; }; - 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */; }; - 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80CFB5711F8D697100FC9715 /* ReplyView.xib */; }; - 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */; }; - 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */; }; - 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE5F205016B40056B17F /* SEServerCell.swift */; }; - 80D0CE62205023710056B17F /* SECell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE61205023710056B17F /* SECell.swift */; }; - 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE63205034280056B17F /* SEServerCellModel.swift */; }; - 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6520503C860056B17F /* SERoomCell.swift */; }; - 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE6720503C970056B17F /* SERoomCell.xib */; }; - 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */; }; - 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; - 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6E20509C100056B17F /* SEAvatarView.swift */; }; - 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE7020509C230056B17F /* SEAvatarView.xib */; }; - 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; - 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; - 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; - 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; - 80D5637220592D32008896D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80D5637120592D32008896D6 /* Assets.xcassets */; }; - 80D563752059325A008896D6 /* MimeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D563742059325A008896D6 /* MimeType.swift */; }; - 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5637620593533008896D6 /* ParseItemProviders.swift */; }; - 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D955C1202154A300E3F281 /* CASViewController.swift */; }; - 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; - 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; - 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */ = {isa = PBXBuildFile; fileRef = 80DC9A6F206BAC8B00032BE0 /* mimetype.json */; }; - 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */; }; - 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */; }; - 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */; }; - 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; - 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */; }; - 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */; }; - 80FA9066205313E20069038F /* SEContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9065205313E20069038F /* SEContent.swift */; }; - 80FA9068205314040069038F /* SEServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9067205314040069038F /* SEServer.swift */; }; - 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906920569F890069038F /* SEComposeFileCell.swift */; }; - 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA906B20569FA10069038F /* SEComposeFileCell.xib */; }; - 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */; }; - 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */; }; - 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90712056C1190069038F /* SEComposeTextCell.swift */; }; - 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA90732056C1350069038F /* SEComposeTextCell.xib */; }; - 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */; }; - 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */; }; - 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA907C2057F4650069038F /* SubmitContent.swift */; }; - 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FE8DED206584EA0099170E /* SEFileDetailView.xib */; }; - 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FE8DEF206587510099170E /* SEFileDetailView.swift */; }; - 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */; }; - 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */; }; - 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */; }; - 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */; }; - 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */; }; - 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D21F8CF08100233561 /* FormTableViewCell.swift */; }; - 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */; }; - 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */; }; - 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */; }; - 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */; }; - 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */; }; - 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */; }; - 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */; }; - 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */; }; - 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */; }; - 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */; }; - 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */; }; - 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */; }; - 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */; }; - 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */; }; - 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */; }; - 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */; }; - 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */; }; - 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */; }; - 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */; }; - 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */; }; - 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */; }; - 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */; }; - 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */; }; - 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */; }; - 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888FA204623A900E51306 /* UpdateUserRequest.swift */; }; - 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */; }; - 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */; }; - A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */; }; - AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */; }; - B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */; }; - B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */; }; - D10E9C1A1F643457007F1796 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; - D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */; }; - D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */; }; - D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C211F643616007F1796 /* MentionModelMapping.swift */; }; - D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */; }; - D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */; }; - D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */; }; - D15C83861F70991F001AB155 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; - D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */; }; - D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675EB1F716A0D00406FB4 /* LoginRequest.swift */; }; - D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */; }; - D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */; }; - D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */; }; - D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */; }; - D1D535EC1F7081FA006625D2 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; - D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; - D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535F01F70864C006625D2 /* InfoRequest.swift */; }; - D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */; }; - D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */; }; - D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28221DFD86C300D6019C /* LauncherProtocol.swift */; }; - D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */; }; - D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */; }; + 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; + 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; + 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; + 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; + 33A5C9CB206A565800FE1C8F /* travel.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C2206A565800FE1C8F /* travel.json */; }; + 33A5C9CC206A565800FE1C8F /* regional.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C3206A565800FE1C8F /* regional.json */; }; + 33A5C9CD206A565800FE1C8F /* flags.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C4206A565800FE1C8F /* flags.json */; }; + 33A5C9CE206A565800FE1C8F /* people.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C5206A565800FE1C8F /* people.json */; }; + 33A5C9CF206A565800FE1C8F /* objects.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C6206A565800FE1C8F /* objects.json */; }; + 33A5C9D0206A565800FE1C8F /* food.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C7206A565800FE1C8F /* food.json */; }; + 33A5C9D1206A565800FE1C8F /* activity.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C8206A565800FE1C8F /* activity.json */; }; + 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; + 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; + 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; + 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; + 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; + 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; + 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; + 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */; }; + 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */; }; + 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */; }; + 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */; }; + 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */; }; + 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */; }; + 4100B2842087779D00E2883A /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; + 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF001F8D0A1700F67E89 /* AppManager.swift */; }; + 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */; }; + 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B51F680DB00019854B /* NetworkCoordinator.swift */; }; + 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B71F6825C30019854B /* NetworkManagerSpec.swift */; }; + 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */; }; + 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; + 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */; }; + 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */; }; + 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4102E3A91E532323004BAA82 /* Preferences.storyboard */; }; + 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */; }; + 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */; }; + 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */; }; + 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */; }; + 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */; }; + 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */; }; + 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */; }; + 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */; }; + 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */; }; + 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */; }; + 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */; }; + 4129937E208E25C200E12C49 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4129937D208E25C100E12C49 /* PreferencesViewController.swift */; }; + 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */; }; + 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */; }; + 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */; }; + 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */; }; + 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; + 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */; }; + 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */; }; + 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412EF3C52050507C001689A3 /* ReusableViewText.xib */; }; + 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; + 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */; }; + 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */; }; + 413996171F3B44500075F96E /* UploadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 413996161F3B44500075F96E /* UploadHelper.swift */; }; + 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */; }; + 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */; }; + 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */; }; + 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */; }; + 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; + 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C8E1F2A116900790EA7 /* ServerManager.swift */; }; + 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */; }; + 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF51D46320F00093E10 /* ResponseMessage.swift */; }; + 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF91D46395400093E10 /* SocketManager.swift */; }; + 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FFB1D46395900093E10 /* SocketResponse.swift */; }; + 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */; }; + 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; + 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */; }; + 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */; }; + 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */; }; + 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */; }; + 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */; }; + 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */; }; + 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */; }; + 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */; }; + 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */; }; + 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */; }; + 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4153E80420504BE700FBC26B /* ReusableViewText.swift */; }; + 41552F661D30308C0081438D /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; + 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F671D3035D80081438D /* SocketManagerSpec.swift */; }; + 4159720C1D3DB854002258F4 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; + 4159720E1D3DB882002258F4 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; + 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */; }; + 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */; }; + 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */; }; + 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */; }; + 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */; }; + 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133391D46E0A200E09DA2 /* AuthSpec.swift */; }; + 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333B1D46E32F00E09DA2 /* UserSpec.swift */; }; + 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */; }; + 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */; }; + 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */; }; + 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; + 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */; }; + 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1521D651A8800AAAE49 /* UserManager.swift */; }; + 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */; }; + 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */; }; + 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */; }; + 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */; }; + 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB121D2D99960086DAC8 /* BaseViewController.swift */; }; + 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */; }; + 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */; }; + 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; + 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */; }; + 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */; }; + 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */; }; + 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 41833F4D1DEF16B600E54655 /* Keys.plist */; }; + 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */; }; + 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */; }; + 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */; }; + 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */; }; + 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */; }; + 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */; }; + 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */; }; + 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */; }; + 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */; }; + 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; + 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419205481D52EDE6004EEC5F /* UILabelExtension.swift */; }; + 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */; }; + 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; + 4199A9891DABCC570035F820 /* Emojione.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4199A9881DABCC570035F820 /* Emojione.swift */; }; + 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */; }; + 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */; }; + 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */; }; + 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */; }; + 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */; }; + 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA31F3CA21A005F224B /* DownloadManager.swift */; }; + 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */; }; + 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */; }; + 41A79C0F1D2F085F00A1968E /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; + 41A79C131D2F09F200A1968E /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; + 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; + 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */; }; + 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */; }; + 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */; }; + 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */; }; + 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD481E9DBB100007A458 /* LoaderView.swift */; }; + 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */; }; + 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */; }; + 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; + 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C61FBF0F9D000510B7 /* WindowManager.swift */; }; + 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */; }; + 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96361207E48260068F1A6 /* MessageTextValidator.swift */; }; + 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */; }; + 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */; }; + 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; + 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */; }; + 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */; }; + 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C275DE1D848005003C88CF /* AvatarView.swift */; }; + 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41C275E01D84815C003C88CF /* AvatarView.xib */; }; + 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */; }; + 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */; }; + 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */; }; + 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */; }; + 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */; }; + 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */; }; + 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */; }; + 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */; }; + 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */; }; + 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */; }; + 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D7CA861E644E47000F38EA /* MessageExtensions.swift */; }; + 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */; }; + 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */; }; + 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */; }; + 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; + 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; + 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1C1D38471700896FC0 /* MessageManager.swift */; }; + 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */; }; + 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */; }; + 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */; }; + 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */; }; + 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */; }; + 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */; }; + 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; + 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */; }; + 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */; }; + 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2F9FE1D414DE800238DFD /* Chat.storyboard */; }; + 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */; }; + 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */; }; + 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA061D41513C00238DFD /* ChatViewController.swift */; }; + 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */; }; + 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */; }; + 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */; }; + 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */; }; + 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */; }; + 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */; }; + 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 41EB22381E5F056600AA3AE7 /* Localizable.strings */; }; + 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */; }; + 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */; }; + 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */; }; + 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */; }; + 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */; }; + 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; + 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */; }; + 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */; }; + 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; + 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA31E3708B10041C5C5 /* PushManager.swift */; }; + 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */; }; + 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */; }; + 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4141F852B720074B2F4 /* SelectField.swift */; }; + 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4181F852D670074B2F4 /* CustomField.swift */; }; + 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77BA81501F87C4CB00F295F4 /* TextField.swift */; }; + 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261241F97445300724A1F /* AuthSettingsSpec.swift */; }; + 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */; }; + 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261291F97453600724A1F /* CustomFieldsSpec.swift */; }; + 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */; }; + 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612B1F97453600724A1F /* TextFieldSpec.swift */; }; + 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */; }; + 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */; }; + 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; + 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */; }; + 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */; }; + 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; + 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */; }; + 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */; }; + 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; + 800640F72049BA25006D990F /* SEScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800640F62049BA25006D990F /* SEScene.swift */; }; + 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */; }; + 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */; }; + 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800F38EC2019492D0005CB78 /* DeepLink.swift */; }; + 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */; }; + 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */; }; + 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */; }; + 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */; }; + 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */; }; + 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */; }; + 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD491F728E6A00D9A692 /* MemberCell.swift */; }; + 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */; }; + 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */; }; + 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */; }; + 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */; }; + 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8661FD6B4F400EE1A4E /* Command.swift */; }; + 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; + 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; + 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; + 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */; }; + 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */; }; + 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; + 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */; }; + 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */; }; + 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */; }; + 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */; }; + 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */; }; + 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */; }; + 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */; }; + 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */; }; + 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */; }; + 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */; }; + 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */; }; + 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */; }; + 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */; }; + 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */; }; + 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */; }; + 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; + 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */; }; + 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */; }; + 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */; }; + 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */; }; + 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */; }; + 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498ED1F7A8380005477EC /* MeRequest.swift */; }; + 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */; }; + 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */; }; + 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */; }; + 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F12059B6F60067157B /* VideoInfo.swift */; }; + 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */; }; + 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E102049C7340072CD23 /* SENavigationController.swift */; }; + 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; + 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */; }; + 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */; }; + 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80307E431FD75DC0006AD9EF /* VoiceOver.strings */; }; + 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */; }; + 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 803782B61FB4751D00DED049 /* RealmTestCase.swift */; }; + 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */; }; + 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C0412028C7EF007E21FA /* ReactorListView.swift */; }; + 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8041C0432028C828007E21FA /* ReactorListView.xib */; }; + 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */; }; + 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */; }; + 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; + 804273DD204EBD51006DF420 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; + 804273DE204EBD51006DF420 /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; + 804273DF204EBD51006DF420 /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; + 804273E0204EBD51006DF420 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; + 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; + 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; + 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */; }; + 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */; }; + 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC341FFC03380033151B /* CustomEmojiManager.swift */; }; + 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC361FFC08870033151B /* CustomEmoji.swift */; }; + 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */; }; + 806401311FB09DE800990572 /* Permission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401301FB09DE800990572 /* Permission.swift */; }; + 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401321FB09EC400990572 /* PermissionModelMapping.swift */; }; + 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401341FB09F8A00990572 /* PermissionManager.swift */; }; + 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 806465EB1FED19B9001F27DB /* EmojiView.xib */; }; + 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806465ED1FED1AFE001F27DB /* EmojiView.swift */; }; + 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */; }; + 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FE20079734009FE94D /* DeleteMessageRequest.swift */; }; + 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */; }; + 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */; }; + 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */; }; + 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; + 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8069D26D1FFF876D00C75926 /* Emoji.swift */; }; + 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */; }; + 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */; }; + 806DB94320687697004ED8ED /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; + 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; + 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */; }; + 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */; }; + 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */; }; + 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */; }; + 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371991F94E83600D53ADF /* SocketError.swift */; }; + 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719B1F963FA400D53ADF /* APITestCase.swift */; }; + 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */; }; + 807371A01F96937100D53ADF /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719F1F96937100D53ADF /* LoginService.swift */; }; + 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */; }; + 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */; }; + 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9920484A6000114F28 /* SEStore.swift */; }; + 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; + 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; + 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; + 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */; }; + 8076FDA42048533000114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; + 8076FDA52048534200114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; + 8076FDA62048536800114F28 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; + 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA8204853DE00114F28 /* RealmExecute.swift */; }; + 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */; }; + 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */; }; + 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */; }; + 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */; }; + 8076FDB3204856E200114F28 /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; + 8076FDB52048571200114F28 /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; + 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; + 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */; }; + 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; + 8076FDBD2048598100114F28 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; + 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */; }; + 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; + 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC62048632300114F28 /* SubscriptionQueries.swift */; }; + 8076FDC82048639700114F28 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; + 8076FDC9204863AF00114F28 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; + 8076FDCA204863B900114F28 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; + 8076FDCB204863C500114F28 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; + 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; + 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; + 8076FDCE2048642400114F28 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; + 8076FDD12048646500114F28 /* MessageReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD02048646500114F28 /* MessageReply.swift */; }; + 8076FDD22048648D00114F28 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; + 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; + 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD5204864E700114F28 /* UserQueries.swift */; }; + 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD72048654F00114F28 /* UserUtils.swift */; }; + 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD920489F5900114F28 /* SEViewController.swift */; }; + 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */; }; + 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */; }; + 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; + 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; + 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDEC2049A5F600114F28 /* SECellModel.swift */; }; + 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */; }; + 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */; }; + 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */; }; + 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */; }; + 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0520751ED1006B600E /* SpotlightClient.swift */; }; + 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0720751EDB006B600E /* SpotlightRequest.swift */; }; + 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */; }; + 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */; }; + 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C11207522EF006B600E /* LoginServicesRequest.swift */; }; + 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53C2044B49800E21429 /* Emojione+Transform.swift */; }; + 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */; }; + 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */; }; + 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 807FB55C2046E7DD00E21429 /* Main.storyboard */; }; + 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB568204729E500E21429 /* SEServersViewController.swift */; }; + 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */; }; + 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 807FB57120472B6A00E21429 /* Localizable.strings */; }; + 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB581204837AF00E21429 /* SEServersViewModel.swift */; }; + 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */; }; + 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; + 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */; }; + 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792371FB14B3300EFE77F /* PermissionSpec.swift */; }; + 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; + 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; + 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; + 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; + 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; + 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB5204EEF1E00C41435 /* SelectServer.swift */; }; + 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB8204EFBCC00C41435 /* SENavigation.swift */; }; + 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */; }; + 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABE204F36F200C41435 /* SESearchState.swift */; }; + 80977AC2204F37C200C41435 /* SEState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC1204F37C200C41435 /* SEState.swift */; }; + 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */; }; + 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */; }; + 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */; }; + 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530F1FE2F17D00833DD2 /* ReactionView.swift */; }; + 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53111FE2F2F900833DD2 /* ReactionView.xib */; }; + 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53131FE3294400833DD2 /* ReactionListView.xib */; }; + 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; + 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; + 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; + 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */; }; + 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */; }; + 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */; }; + 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */; }; + 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */; }; + 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */; }; + 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */; }; + 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C561F71D2E400FE5AC4 /* APISpec.swift */; }; + 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */; }; + 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */; }; + 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */; }; + 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */; }; + 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */; }; + 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */; }; + 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80CFB5711F8D697100FC9715 /* ReplyView.xib */; }; + 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */; }; + 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */; }; + 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE5F205016B40056B17F /* SEServerCell.swift */; }; + 80D0CE62205023710056B17F /* SECell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE61205023710056B17F /* SECell.swift */; }; + 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE63205034280056B17F /* SEServerCellModel.swift */; }; + 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6520503C860056B17F /* SERoomCell.swift */; }; + 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE6720503C970056B17F /* SERoomCell.xib */; }; + 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */; }; + 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; + 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6E20509C100056B17F /* SEAvatarView.swift */; }; + 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE7020509C230056B17F /* SEAvatarView.xib */; }; + 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; + 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; + 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; + 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; + 80D5637220592D32008896D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80D5637120592D32008896D6 /* Assets.xcassets */; }; + 80D563752059325A008896D6 /* MimeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D563742059325A008896D6 /* MimeType.swift */; }; + 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5637620593533008896D6 /* ParseItemProviders.swift */; }; + 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D955C1202154A300E3F281 /* CASViewController.swift */; }; + 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; + 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; + 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */ = {isa = PBXBuildFile; fileRef = 80DC9A6F206BAC8B00032BE0 /* mimetype.json */; }; + 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */; }; + 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */; }; + 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */; }; + 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; + 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */; }; + 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */; }; + 80FA9066205313E20069038F /* SEContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9065205313E20069038F /* SEContent.swift */; }; + 80FA9068205314040069038F /* SEServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9067205314040069038F /* SEServer.swift */; }; + 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906920569F890069038F /* SEComposeFileCell.swift */; }; + 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA906B20569FA10069038F /* SEComposeFileCell.xib */; }; + 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */; }; + 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */; }; + 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90712056C1190069038F /* SEComposeTextCell.swift */; }; + 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA90732056C1350069038F /* SEComposeTextCell.xib */; }; + 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */; }; + 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */; }; + 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA907C2057F4650069038F /* SubmitContent.swift */; }; + 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FE8DED206584EA0099170E /* SEFileDetailView.xib */; }; + 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FE8DEF206587510099170E /* SEFileDetailView.swift */; }; + 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */; }; + 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */; }; + 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */; }; + 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */; }; + 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */; }; + 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D21F8CF08100233561 /* FormTableViewCell.swift */; }; + 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */; }; + 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */; }; + 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */; }; + 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */; }; + 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */; }; + 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */; }; + 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */; }; + 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */; }; + 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */; }; + 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */; }; + 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */; }; + 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */; }; + 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */; }; + 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */; }; + 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */; }; + 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */; }; + 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */; }; + 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */; }; + 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */; }; + 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */; }; + 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */; }; + 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */; }; + 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */; }; + 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */; }; + 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888FA204623A900E51306 /* UpdateUserRequest.swift */; }; + 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */; }; + 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */; }; + A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */; }; + AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */; }; + B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */; }; + B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */; }; + D10E9C1A1F643457007F1796 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; + D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */; }; + D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */; }; + D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C211F643616007F1796 /* MentionModelMapping.swift */; }; + D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */; }; + D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */; }; + D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */; }; + D15C83861F70991F001AB155 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; + D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */; }; + D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675EB1F716A0D00406FB4 /* LoginRequest.swift */; }; + D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */; }; + D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */; }; + D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */; }; + D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */; }; + D1D535EC1F7081FA006625D2 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; + D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; + D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535F01F70864C006625D2 /* InfoRequest.swift */; }; + D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */; }; + D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */; }; + D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28221DFD86C300D6019C /* LauncherProtocol.swift */; }; + D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */; }; + D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; - remoteInfo = Rocket.Chat; - }; - 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; - remoteInfo = Rocket.Chat; - }; - 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 807FB5572046E7DD00E21429; - remoteInfo = Rocket.Chat.ShareExtension; - }; + 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; + remoteInfo = Rocket.Chat; + }; + 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; + remoteInfo = Rocket.Chat; + }; + 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 807FB5572046E7DD00E21429; + remoteInfo = Rocket.Chat.ShareExtension; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 807FB5672046E7DD00E21429 /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; + 807FB5672046E7DD00E21429 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewController.swift; sourceTree = ""; }; - 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModel.swift; sourceTree = ""; }; - 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconCell.swift; sourceTree = ""; }; - 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageResetCell.swift; sourceTree = ""; }; - 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewController.swift; sourceTree = ""; }; - 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModel.swift; sourceTree = ""; }; - 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewModel.swift; sourceTree = ""; }; - 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageCell.swift; sourceTree = ""; }; - 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModelSpec.swift; sourceTree = ""; }; - 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorSpec.swift; sourceTree = ""; }; - 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModel.swift; sourceTree = ""; }; - 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModelSpec.swift; sourceTree = ""; }; - 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModelSpec.swift; sourceTree = ""; }; - 140A95E0202F526C003FD564 /* Drawing.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Drawing.storyboard; sourceTree = ""; }; - 140A95E3202F536D003FD564 /* DrawingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewController.swift; sourceTree = ""; }; - 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingControllerDelegate.swift; sourceTree = ""; }; - 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCellSpec.swift; sourceTree = ""; }; - 1435BFA21F9B601600FB2768 /* RCTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTextView.swift; sourceTree = ""; }; - 1499781C1FA605CE007E013D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 14A6A83020421DF8008C210D /* ColorPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPickerView.swift; sourceTree = ""; }; - 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushWidthViewController.swift; sourceTree = ""; }; - 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushOpacityViewController.swift; sourceTree = ""; }; - 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewController.swift; sourceTree = ""; }; - 14F8A213202E5CBD00175FDC /* Black-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@3x.png"; sourceTree = ""; }; - 14F8A216202E5CBE00175FDC /* Black-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@2x.png"; sourceTree = ""; }; - 14F8A217202E5CBE00175FDC /* Black-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@3x.png"; sourceTree = ""; }; - 14F8A218202E5CBE00175FDC /* Black-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@2x.png"; sourceTree = ""; }; - 14F8A219202E5CBE00175FDC /* Black-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@2x.png"; sourceTree = ""; }; - 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-83.5@2x.png"; sourceTree = ""; }; - 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@3x.png"; sourceTree = ""; }; - 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@2x.png"; sourceTree = ""; }; - 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@3x.png"; sourceTree = ""; }; - 14F8A22F202E5D0400175FDC /* Red-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@3x.png"; sourceTree = ""; }; - 14F8A230202E5D0400175FDC /* Red-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@3x.png"; sourceTree = ""; }; - 14F8A232202E5D0400175FDC /* Red-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@2x.png"; sourceTree = ""; }; - 14F8A233202E5D0400175FDC /* Red-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@2x.png"; sourceTree = ""; }; - 14F8A234202E5D0400175FDC /* Red-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@2x.png"; sourceTree = ""; }; - 14F8A235202E5D0500175FDC /* Red-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@3x.png"; sourceTree = ""; }; - 14F8A236202E5D0500175FDC /* Red-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@2x.png"; sourceTree = ""; }; - 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-83.5@2x.png"; sourceTree = ""; }; - 14F8A238202E5D0600175FDC /* Red-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@3x.png"; sourceTree = ""; }; - 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-83.5@2x.png"; sourceTree = ""; }; - 14F8A24C202E64B100175FDC /* BnW-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@3x.png"; sourceTree = ""; }; - 14F8A24D202E64B100175FDC /* BnW-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@2x.png"; sourceTree = ""; }; - 14F8A24E202E64B100175FDC /* BnW-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@2x.png"; sourceTree = ""; }; - 14F8A24F202E64B100175FDC /* BnW-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@3x.png"; sourceTree = ""; }; - 14F8A250202E64B100175FDC /* BnW-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@3x.png"; sourceTree = ""; }; - 14F8A251202E64B100175FDC /* BnW-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@2x.png"; sourceTree = ""; }; - 14F8A252202E64B100175FDC /* BnW-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@2x.png"; sourceTree = ""; }; - 14F8A254202E64B200175FDC /* BnW-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@3x.png"; sourceTree = ""; }; - 14F8A263202E653D00175FDC /* Grey-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@2x.png"; sourceTree = ""; }; - 14F8A264202E653D00175FDC /* Grey-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@2x.png"; sourceTree = ""; }; - 14F8A265202E653D00175FDC /* Grey-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@3x.png"; sourceTree = ""; }; - 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-83.5@2x.png"; sourceTree = ""; }; - 14F8A267202E653D00175FDC /* Grey-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@2x.png"; sourceTree = ""; }; - 14F8A268202E653E00175FDC /* Grey-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@3x.png"; sourceTree = ""; }; - 14F8A269202E653E00175FDC /* Grey-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@3x.png"; sourceTree = ""; }; - 14F8A26A202E653E00175FDC /* Grey-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@3x.png"; sourceTree = ""; }; - 14F8A26B202E653E00175FDC /* Grey-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@2x.png"; sourceTree = ""; }; - 14F8A277202E658E00175FDC /* White-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@2x.png"; sourceTree = ""; }; - 14F8A278202E658E00175FDC /* White-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@3x.png"; sourceTree = ""; }; - 14F8A279202E658E00175FDC /* White-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@3x.png"; sourceTree = ""; }; - 14F8A27A202E658F00175FDC /* White-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-83.5@2x.png"; sourceTree = ""; }; - 14F8A27B202E658F00175FDC /* White-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@2x.png"; sourceTree = ""; }; - 14F8A27C202E658F00175FDC /* White-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@3x.png"; sourceTree = ""; }; - 14F8A27D202E658F00175FDC /* White-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@2x.png"; sourceTree = ""; }; - 14F8A27E202E658F00175FDC /* White-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@2x.png"; sourceTree = ""; }; - 14F8A27F202E658F00175FDC /* White-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@3x.png"; sourceTree = ""; }; - 14F8A289202E65C500175FDC /* Blue-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@3x.png"; sourceTree = ""; }; - 14F8A28A202E65C600175FDC /* Blue-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@2x.png"; sourceTree = ""; }; - 14F8A28B202E65C600175FDC /* Blue-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@3x.png"; sourceTree = ""; }; - 14F8A28C202E65C600175FDC /* Blue-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@3x.png"; sourceTree = ""; }; - 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-83.5@2x.png"; sourceTree = ""; }; - 14F8A28E202E65C600175FDC /* Blue-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@2x.png"; sourceTree = ""; }; - 14F8A28F202E65C700175FDC /* Blue-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@2x.png"; sourceTree = ""; }; - 14F8A290202E65C700175FDC /* Blue-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@3x.png"; sourceTree = ""; }; - 14F8A291202E65C700175FDC /* Blue-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@2x.png"; sourceTree = ""; }; - 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCell.swift; sourceTree = ""; }; - 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MentionsTextFieldTableViewCell.xib; sourceTree = ""; }; - 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatNotificationSpec.swift; sourceTree = ""; }; - 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerSpec.swift; sourceTree = ""; }; - 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewControllerSpec.swift; sourceTree = ""; }; - 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerMessages.swift; sourceTree = ""; }; - 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerRooms.swift; sourceTree = ""; }; - 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerSearch.swift; sourceTree = ""; }; - 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerTyping.swift; sourceTree = ""; }; - 333207FE20766E4F00AD3290 /* NotificationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotificationViewController.xib; sourceTree = ""; }; - 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentToTouchesWindow.swift; sourceTree = ""; }; - 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; + 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewController.swift; sourceTree = ""; }; + 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModel.swift; sourceTree = ""; }; + 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconCell.swift; sourceTree = ""; }; + 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageResetCell.swift; sourceTree = ""; }; + 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewController.swift; sourceTree = ""; }; + 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModel.swift; sourceTree = ""; }; + 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewModel.swift; sourceTree = ""; }; + 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageCell.swift; sourceTree = ""; }; + 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModelSpec.swift; sourceTree = ""; }; + 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorSpec.swift; sourceTree = ""; }; + 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModel.swift; sourceTree = ""; }; + 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModelSpec.swift; sourceTree = ""; }; + 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModelSpec.swift; sourceTree = ""; }; + 140A95E0202F526C003FD564 /* Drawing.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Drawing.storyboard; sourceTree = ""; }; + 140A95E3202F536D003FD564 /* DrawingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewController.swift; sourceTree = ""; }; + 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingControllerDelegate.swift; sourceTree = ""; }; + 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCellSpec.swift; sourceTree = ""; }; + 1435BFA21F9B601600FB2768 /* RCTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTextView.swift; sourceTree = ""; }; + 1499781C1FA605CE007E013D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + 14A6A83020421DF8008C210D /* ColorPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPickerView.swift; sourceTree = ""; }; + 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushWidthViewController.swift; sourceTree = ""; }; + 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushOpacityViewController.swift; sourceTree = ""; }; + 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewController.swift; sourceTree = ""; }; + 14F8A213202E5CBD00175FDC /* Black-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@3x.png"; sourceTree = ""; }; + 14F8A216202E5CBE00175FDC /* Black-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@2x.png"; sourceTree = ""; }; + 14F8A217202E5CBE00175FDC /* Black-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@3x.png"; sourceTree = ""; }; + 14F8A218202E5CBE00175FDC /* Black-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@2x.png"; sourceTree = ""; }; + 14F8A219202E5CBE00175FDC /* Black-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@2x.png"; sourceTree = ""; }; + 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-83.5@2x.png"; sourceTree = ""; }; + 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@3x.png"; sourceTree = ""; }; + 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@2x.png"; sourceTree = ""; }; + 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@3x.png"; sourceTree = ""; }; + 14F8A22F202E5D0400175FDC /* Red-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@3x.png"; sourceTree = ""; }; + 14F8A230202E5D0400175FDC /* Red-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@3x.png"; sourceTree = ""; }; + 14F8A232202E5D0400175FDC /* Red-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@2x.png"; sourceTree = ""; }; + 14F8A233202E5D0400175FDC /* Red-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@2x.png"; sourceTree = ""; }; + 14F8A234202E5D0400175FDC /* Red-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@2x.png"; sourceTree = ""; }; + 14F8A235202E5D0500175FDC /* Red-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@3x.png"; sourceTree = ""; }; + 14F8A236202E5D0500175FDC /* Red-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@2x.png"; sourceTree = ""; }; + 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-83.5@2x.png"; sourceTree = ""; }; + 14F8A238202E5D0600175FDC /* Red-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@3x.png"; sourceTree = ""; }; + 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-83.5@2x.png"; sourceTree = ""; }; + 14F8A24C202E64B100175FDC /* BnW-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@3x.png"; sourceTree = ""; }; + 14F8A24D202E64B100175FDC /* BnW-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@2x.png"; sourceTree = ""; }; + 14F8A24E202E64B100175FDC /* BnW-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@2x.png"; sourceTree = ""; }; + 14F8A24F202E64B100175FDC /* BnW-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@3x.png"; sourceTree = ""; }; + 14F8A250202E64B100175FDC /* BnW-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@3x.png"; sourceTree = ""; }; + 14F8A251202E64B100175FDC /* BnW-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@2x.png"; sourceTree = ""; }; + 14F8A252202E64B100175FDC /* BnW-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@2x.png"; sourceTree = ""; }; + 14F8A254202E64B200175FDC /* BnW-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@3x.png"; sourceTree = ""; }; + 14F8A263202E653D00175FDC /* Grey-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@2x.png"; sourceTree = ""; }; + 14F8A264202E653D00175FDC /* Grey-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@2x.png"; sourceTree = ""; }; + 14F8A265202E653D00175FDC /* Grey-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@3x.png"; sourceTree = ""; }; + 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-83.5@2x.png"; sourceTree = ""; }; + 14F8A267202E653D00175FDC /* Grey-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@2x.png"; sourceTree = ""; }; + 14F8A268202E653E00175FDC /* Grey-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@3x.png"; sourceTree = ""; }; + 14F8A269202E653E00175FDC /* Grey-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@3x.png"; sourceTree = ""; }; + 14F8A26A202E653E00175FDC /* Grey-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@3x.png"; sourceTree = ""; }; + 14F8A26B202E653E00175FDC /* Grey-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@2x.png"; sourceTree = ""; }; + 14F8A277202E658E00175FDC /* White-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@2x.png"; sourceTree = ""; }; + 14F8A278202E658E00175FDC /* White-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@3x.png"; sourceTree = ""; }; + 14F8A279202E658E00175FDC /* White-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@3x.png"; sourceTree = ""; }; + 14F8A27A202E658F00175FDC /* White-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-83.5@2x.png"; sourceTree = ""; }; + 14F8A27B202E658F00175FDC /* White-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@2x.png"; sourceTree = ""; }; + 14F8A27C202E658F00175FDC /* White-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@3x.png"; sourceTree = ""; }; + 14F8A27D202E658F00175FDC /* White-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@2x.png"; sourceTree = ""; }; + 14F8A27E202E658F00175FDC /* White-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@2x.png"; sourceTree = ""; }; + 14F8A27F202E658F00175FDC /* White-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@3x.png"; sourceTree = ""; }; + 14F8A289202E65C500175FDC /* Blue-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@3x.png"; sourceTree = ""; }; + 14F8A28A202E65C600175FDC /* Blue-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@2x.png"; sourceTree = ""; }; + 14F8A28B202E65C600175FDC /* Blue-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@3x.png"; sourceTree = ""; }; + 14F8A28C202E65C600175FDC /* Blue-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@3x.png"; sourceTree = ""; }; + 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-83.5@2x.png"; sourceTree = ""; }; + 14F8A28E202E65C600175FDC /* Blue-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@2x.png"; sourceTree = ""; }; + 14F8A28F202E65C700175FDC /* Blue-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@2x.png"; sourceTree = ""; }; + 14F8A290202E65C700175FDC /* Blue-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@3x.png"; sourceTree = ""; }; + 14F8A291202E65C700175FDC /* Blue-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@2x.png"; sourceTree = ""; }; + 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCell.swift; sourceTree = ""; }; + 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MentionsTextFieldTableViewCell.xib; sourceTree = ""; }; + 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatNotificationSpec.swift; sourceTree = ""; }; + 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerSpec.swift; sourceTree = ""; }; + 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewControllerSpec.swift; sourceTree = ""; }; + 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerMessages.swift; sourceTree = ""; }; + 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerRooms.swift; sourceTree = ""; }; + 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerSearch.swift; sourceTree = ""; }; + 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerTyping.swift; sourceTree = ""; }; + 333207FE20766E4F00AD3290 /* NotificationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotificationViewController.xib; sourceTree = ""; }; + 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentToTouchesWindow.swift; sourceTree = ""; }; + 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; 3353DBF7206787E500738D1C /* Themeable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Themeable.swift; sourceTree = ""; }; - 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; - 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; - 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; - 33A5C9C2206A565800FE1C8F /* travel.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = travel.json; sourceTree = ""; }; - 33A5C9C3206A565800FE1C8F /* regional.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = regional.json; sourceTree = ""; }; - 33A5C9C4206A565800FE1C8F /* flags.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = flags.json; sourceTree = ""; }; - 33A5C9C5206A565800FE1C8F /* people.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = people.json; sourceTree = ""; }; - 33A5C9C6206A565800FE1C8F /* objects.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = objects.json; sourceTree = ""; }; - 33A5C9C7206A565800FE1C8F /* food.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = food.json; sourceTree = ""; }; - 33A5C9C8206A565800FE1C8F /* activity.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = activity.json; sourceTree = ""; }; - 33A5C9C9206A565800FE1C8F /* nature.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = nature.json; sourceTree = ""; }; - 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatNotification.swift; sourceTree = ""; }; - 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; - 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; - 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; - 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; - 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; - 35BCD302201A9FB800B4BE5A /* AskSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AskSpec.swift; sourceTree = ""; }; - 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCDateFormatter.swift; sourceTree = ""; }; - 35D2F140200A45E800B4BE5A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertSpec.swift; sourceTree = ""; }; - 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OAuthManager.swift; sourceTree = ""; }; - 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewRoomViewController.swift; sourceTree = ""; }; - 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModel.swift; sourceTree = ""; }; - 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewControllerCustomFields.swift; sourceTree = ""; }; - 4101BF001F8D0A1700F67E89 /* AppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManager.swift; sourceTree = ""; }; - 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManagerSpec.swift; sourceTree = ""; }; - 4102E3A91E532323004BAA82 /* Preferences.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Preferences.storyboard; sourceTree = ""; }; - 4102E3AC1E53273E004BAA82 /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; - 411119B51F680DB00019854B /* NetworkCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkCoordinator.swift; sourceTree = ""; }; - 411119B71F6825C30019854B /* NetworkManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManagerSpec.swift; sourceTree = ""; }; - 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainChatViewController.swift; sourceTree = ""; }; - 4112DC551FFFB9B1005995E1 /* BaseModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModel.swift; sourceTree = ""; }; - 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelHandler.swift; sourceTree = ""; }; - 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelMappeable.swift; sourceTree = ""; }; - 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModelSpec.swift; sourceTree = ""; }; - 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModel.swift; sourceTree = ""; }; - 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentSpec.swift; sourceTree = ""; }; - 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManager.swift; sourceTree = ""; }; - 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManagerSpec.swift; sourceTree = ""; }; - 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadManager.swift; sourceTree = ""; }; - 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatChannelHeaderCell.swift; sourceTree = ""; }; - 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatChannelHeaderCell.xib; sourceTree = ""; }; - 412184A420472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 412184A520472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; - 412184A620472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/VoiceOver.strings; sourceTree = ""; }; - 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterUsernameViewController.swift; sourceTree = ""; }; - 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatPreviewModeView.xib; sourceTree = ""; }; - 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPreviewModeView.swift; sourceTree = ""; }; - 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageVideoView.swift; sourceTree = ""; }; - 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageVideoView.xib; sourceTree = ""; }; - 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageTextView.xib; sourceTree = ""; }; - 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextView.swift; sourceTree = ""; }; - 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorCSSColorsExtension.swift; sourceTree = ""; }; - 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageURLView.swift; sourceTree = ""; }; - 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageURLView.xib; sourceTree = ""; }; - 412EF3C52050507C001689A3 /* ReusableViewText.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReusableViewText.xib; sourceTree = ""; }; - 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = ""; }; - 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageImageView.swift; sourceTree = ""; }; - 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageImageView.xib; sourceTree = ""; }; - 413996161F3B44500075F96E /* UploadHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelper.swift; sourceTree = ""; }; - 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsPageViewController.swift; sourceTree = ""; }; - 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServersViewController.swift; sourceTree = ""; }; - 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCell.swift; sourceTree = ""; }; - 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddServerCell.swift; sourceTree = ""; }; - 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManagerSpec.swift; sourceTree = ""; }; - 41494B911D63C6280004F369 /* UIImageExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; - 41499C8E1F2A116900790EA7 /* ServerManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManager.swift; sourceTree = ""; }; - 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampCoordinator.swift; sourceTree = ""; }; - 414A1FF51D46320F00093E10 /* ResponseMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessage.swift; sourceTree = ""; }; - 414A1FF91D46395400093E10 /* SocketManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManager.swift; sourceTree = ""; }; - 414A1FFB1D46395900093E10 /* SocketResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketResponse.swift; sourceTree = ""; }; - 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewController.swift; sourceTree = ""; }; - 414EFF911E54FE69004F001F /* AuthExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthExtensions.swift; sourceTree = ""; }; - 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextCacheManager.swift; sourceTree = ""; }; - 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModelSpec.swift; sourceTree = ""; }; - 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelHandler.swift; sourceTree = ""; }; - 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelHandler.swift; sourceTree = ""; }; - 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelMapping.swift; sourceTree = ""; }; - 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageModelMapping.swift; sourceTree = ""; }; - 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttachmentModelMapping.swift; sourceTree = ""; }; - 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsModelMapping.swift; sourceTree = ""; }; - 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLModelMapping.swift; sourceTree = ""; }; - 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinatorSpec.swift; sourceTree = ""; }; - 4153E80420504BE700FBC26B /* ReusableViewText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReusableViewText.swift; sourceTree = ""; }; - 41552F651D30308C0081438D /* AuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManager.swift; sourceTree = ""; }; - 41552F671D3035D80081438D /* SocketManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManagerSpec.swift; sourceTree = ""; }; - 4159720B1D3DB854002258F4 /* Email.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Email.swift; sourceTree = ""; }; - 4159720D1D3DB882002258F4 /* Mention.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mention.swift; sourceTree = ""; }; - 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoFactorAuthenticationViewController.swift; sourceTree = ""; }; - 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; - 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCell.swift; sourceTree = ""; }; - 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageCell.xib; sourceTree = ""; }; - 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModelSpec.swift; sourceTree = ""; }; - 416133391D46E0A200E09DA2 /* AuthSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSpec.swift; sourceTree = ""; }; - 4161333B1D46E32F00E09DA2 /* UserSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserSpec.swift; sourceTree = ""; }; - 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSpec.swift; sourceTree = ""; }; - 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageSpec.swift; sourceTree = ""; }; - 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelperSpec.swift; sourceTree = ""; }; - 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManagerSpec.swift; sourceTree = ""; }; - 4162E1521D651A8800AAAE49 /* UserManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserManager.swift; sourceTree = ""; }; - 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketHandlers.swift; sourceTree = ""; }; - 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarViewSpec.swift; sourceTree = ""; }; - 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectServerViewController.swift; sourceTree = ""; }; - 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Auth.storyboard; sourceTree = ""; }; - 4174CB121D2D99960086DAC8 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; - 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseNavigationController.swift; sourceTree = ""; }; - 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthViewController.swift; sourceTree = ""; }; - 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; - 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; - 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Rocket.Chat-Bridge.h"; sourceTree = ""; }; - 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessageSpec.swift; sourceTree = ""; }; - 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoViewController.swift; sourceTree = ""; }; - 41833F4D1DEF16B600E54655 /* Keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Keys.plist; sourceTree = ""; }; - 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatControllerReplyHandler.swift; sourceTree = ""; }; - 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewControllerEmbedded.swift; sourceTree = ""; }; - 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WebViewControllerEmbedded.xib; sourceTree = ""; }; - 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageActions.swift; sourceTree = ""; }; - 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSectionView.swift; sourceTree = ""; }; - 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSectionView.xib; sourceTree = ""; }; - 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegateSpec.swift; sourceTree = ""; }; - 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegate.swift; sourceTree = ""; }; - 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegateSpec.swift; sourceTree = ""; }; - 41900C261D9FE35400308EF4 /* Attachment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Attachment.swift; sourceTree = ""; }; - 419205481D52EDE6004EEC5F /* UILabelExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UILabelExtension.swift; sourceTree = ""; }; - 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionCell.swift; sourceTree = ""; }; - 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; - 4199A9881DABCC570035F820 /* Emojione.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Emojione.swift; sourceTree = ""; }; - 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandler.swift; sourceTree = ""; }; - 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandlerSpec.swift; sourceTree = ""; }; - 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatHeaderViewStatus.xib; sourceTree = ""; }; - 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHeaderViewStatus.swift; sourceTree = ""; }; - 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerHeaderStatus.swift; sourceTree = ""; }; - 419ECCA31F3CA21A005F224B /* DownloadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; - 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerDocuments.swift; sourceTree = ""; }; - 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewControllerExtension.swift; sourceTree = ""; }; - 41A6191A1FA7065400CFFA69 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; - 41A79C0E1D2F085F00A1968E /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; - 41A79C121D2F09F200A1968E /* Auth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Auth.swift; sourceTree = ""; }; - 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettings.swift; sourceTree = ""; }; - 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionUserStatusView.xib; sourceTree = ""; }; - 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionUserStatusView.swift; sourceTree = ""; }; - 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AutocompleteCell.xib; sourceTree = ""; }; - 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutocompleteCell.swift; sourceTree = ""; }; - 41ADDD481E9DBB100007A458 /* LoaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderView.swift; sourceTree = ""; }; - 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderViewSpec.swift; sourceTree = ""; }; - 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerUploader.swift; sourceTree = ""; }; - 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIWindowExtensions.swift; sourceTree = ""; }; - 41B554C61FBF0F9D000510B7 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = ""; }; - 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewControllerTextViewDelegate.swift; sourceTree = ""; }; - 41B96361207E48260068F1A6 /* MessageTextValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidator.swift; sourceTree = ""; }; - 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidatorSpec.swift; sourceTree = ""; }; - 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManagerSpec.swift; sourceTree = ""; }; - 41BAE3E61D71B26C00C2445A /* URLExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtension.swift; sourceTree = ""; }; - 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtensionSpec.swift; sourceTree = ""; }; - 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelMapping.swift; sourceTree = ""; }; - 41C275DE1D848005003C88CF /* AvatarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarView.swift; sourceTree = ""; }; - 41C275E01D84815C003C88CF /* AvatarView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AvatarView.xib; sourceTree = ""; }; - 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataController.swift; sourceTree = ""; }; - 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatLoaderCell.xib; sourceTree = ""; }; - 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatLoaderCell.swift; sourceTree = ""; }; - 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayExtensions.swift; sourceTree = ""; }; - 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageDaySeparator.xib; sourceTree = ""; }; - 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageDaySeparator.swift; sourceTree = ""; }; - 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayout.swift; sourceTree = ""; }; - 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewExtentions.swift; sourceTree = ""; }; - 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextFontAttributes.swift; sourceTree = ""; }; - 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensions.swift; sourceTree = ""; }; - 41D7CA861E644E47000F38EA /* MessageExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageExtensions.swift; sourceTree = ""; }; - 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDirectMessageHeaderCell.swift; sourceTree = ""; }; - 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatDirectMessageHeaderCell.xib; sourceTree = ""; }; - 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionManager.swift; sourceTree = ""; }; - 41DAE93D1D318F350098E068 /* Subscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscription.swift; sourceTree = ""; }; - 41DC7A1A1D38454500896FC0 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; - 41DC7A1C1D38471700896FC0 /* MessageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManager.swift; sourceTree = ""; }; - 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManagerSpec.swift; sourceTree = ""; }; - 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensionSpec.swift; sourceTree = ""; }; - 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtensionsSpec.swift; sourceTree = ""; }; - 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSearchMoreView.xib; sourceTree = ""; }; - 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSearchMoreView.swift; sourceTree = ""; }; - 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 41DF76E91D2C50710028DBF8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 41DF76EC1D2C50720028DBF8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 41DF76EE1D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF76F91D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RocketChatUITests.swift; sourceTree = ""; }; - 41DF77041D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41E2F9FE1D414DE800238DFD /* Chat.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Chat.storyboard; sourceTree = ""; }; - 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Subscriptions.storyboard; sourceTree = ""; }; - 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsViewController.swift; sourceTree = ""; }; - 41E2FA061D41513C00238DFD /* ChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = ""; }; - 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensionSpec.swift; sourceTree = ""; }; - 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UINibExtensions.swift; sourceTree = ""; }; - 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = ""; }; - 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthInternalExtensions.swift; sourceTree = ""; }; - 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueriesSpec.swift; sourceTree = ""; }; - 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadVideoCompression.swift; sourceTree = ""; }; - 41EB22371E5F056600AA3AE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 41EB223A1E5F057F00AA3AE7 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - 41EB223B1E5F19EB00AA3AE7 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerAutocomplete.swift; sourceTree = ""; }; - 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageCellProtocol.swift; sourceTree = ""; }; - 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerSocketConnectionHandler.swift; sourceTree = ""; }; - 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTitleView.swift; sourceTree = ""; }; - 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatTitleView.xib; sourceTree = ""; }; - 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURL.swift; sourceTree = ""; }; - 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModelSpec.swift; sourceTree = ""; }; - 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManagerSpec.swift; sourceTree = ""; }; - 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.release.xcconfig"; sourceTree = ""; }; - 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.debug.xcconfig"; sourceTree = ""; }; - 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.entitlements; sourceTree = ""; }; - 597ECBA11E3708A50041C5C5 /* DataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataExtension.swift; sourceTree = ""; }; - 597ECBA31E3708B10041C5C5 /* PushManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushManager.swift; sourceTree = ""; }; - 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; sourceTree = ""; }; - 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat_ShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLSpec.swift; sourceTree = ""; }; - 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_ChatTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegate.swift; sourceTree = ""; }; - 7798B4141F852B720074B2F4 /* SelectField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectField.swift; sourceTree = ""; }; - 7798B4181F852D670074B2F4 /* CustomField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomField.swift; sourceTree = ""; }; - 77BA81501F87C4CB00F295F4 /* TextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextField.swift; sourceTree = ""; }; - 77C261241F97445300724A1F /* AuthSettingsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsSpec.swift; sourceTree = ""; }; - 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DictionaryExtensionsSpec.swift; sourceTree = ""; }; - 77C261291F97453600724A1F /* CustomFieldsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomFieldsSpec.swift; sourceTree = ""; }; - 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectFieldSpec.swift; sourceTree = ""; }; - 77C2612B1F97453600724A1F /* TextFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldSpec.swift; sourceTree = ""; }; - 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtensions.swift; sourceTree = ""; }; - 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendMessageRequest.swift; sourceTree = ""; }; - 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClient.swift; sourceTree = ""; }; - 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClientSpec.swift; sourceTree = ""; }; - 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequest.swift; sourceTree = ""; }; - 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushTokenDeleteRequest.swift; sourceTree = ""; }; - 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushClient.swift; sourceTree = ""; }; - 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = ""; }; - 800640F62049BA25006D990F /* SEScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEScene.swift; sourceTree = ""; }; - 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListViewController.swift; sourceTree = ""; }; - 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMessagesRequest.swift; sourceTree = ""; }; - 800F38EC2019492D0005CB78 /* DeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLink.swift; sourceTree = ""; }; - 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembersListViewController.swift; sourceTree = ""; }; - 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoBasicCell.swift; sourceTree = ""; }; - 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoCellProtocol.swift; sourceTree = ""; }; - 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDescriptionCell.swift; sourceTree = ""; }; - 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDetailCell.swift; sourceTree = ""; }; - 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoUserCell.swift; sourceTree = ""; }; - 800FCD491F728E6A00D9A692 /* MemberCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberCell.swift; sourceTree = ""; }; - 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MemberCell.xib; sourceTree = ""; }; - 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewController.swift; sourceTree = ""; }; - 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayoutSpec.swift; sourceTree = ""; }; - 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensions.swift; sourceTree = ""; }; - 8013F8661FD6B4F400EE1A4E /* Command.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Command.swift; sourceTree = ""; }; - 8013F8681FD6B59900EE1A4E /* Version.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Version.swift; sourceTree = ""; }; - 8013F8691FD6B59900EE1A4E /* APIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIError.swift; sourceTree = ""; }; - 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIClient.swift; sourceTree = ""; }; - 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClient.swift; sourceTree = ""; }; - 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClient.swift; sourceTree = ""; }; - 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddleware.swift; sourceTree = ""; }; - 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddlewareSpec.swift; sourceTree = ""; }; - 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockAPI.swift; sourceTree = ""; }; - 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionSpec.swift; sourceTree = ""; }; - 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClientSpec.swift; sourceTree = ""; }; - 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClientSpec.swift; sourceTree = ""; }; - 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsRequest.swift; sourceTree = ""; }; - 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequest.swift; sourceTree = ""; }; - 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequestSpec.swift; sourceTree = ""; }; - 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandModelMapping.swift; sourceTree = ""; }; - 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushManagerSpec.swift; sourceTree = ""; }; - 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUserView.swift; sourceTree = ""; }; - 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPicker.swift; sourceTree = ""; }; - 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiPicker.xib; sourceTree = ""; }; - 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerController.swift; sourceTree = ""; }; - 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequestSpec.swift; sourceTree = ""; }; - 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPMethod.swift; sourceTree = ""; }; - 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequest.swift; sourceTree = ""; }; - 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequestSpec.swift; sourceTree = ""; }; - 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoaderTableViewCell.swift; sourceTree = ""; }; - 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoaderTableViewCell.xib; sourceTree = ""; }; - 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactionSpec.swift; sourceTree = ""; }; - 802498ED1F7A8380005477EC /* MeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequest.swift; sourceTree = ""; }; - 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequestSpec.swift; sourceTree = ""; }; - 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageAudioView.xib; sourceTree = ""; }; - 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAudioView.swift; sourceTree = ""; }; - 8029B2F12059B6F60067157B /* VideoInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoInfo.swift; sourceTree = ""; }; - 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+StatusReport.swift"; sourceTree = ""; }; - 802A4E102049C7340072CD23 /* SENavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigationController.swift; sourceTree = ""; }; - 802A4E23204D730F0072CD23 /* AppGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppGroup.swift; sourceTree = ""; }; - 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOTextField.swift; sourceTree = ""; }; - 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOLocalized.swift; sourceTree = ""; }; - 80307E421FD75DC0006AD9EF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E441FD75DCB006AD9EF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/VoiceOver.strings"; sourceTree = ""; }; - 80307E451FD75DCF006AD9EF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E461FD75DD1006AD9EF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E471FD75DD2006AD9EF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E481FD75DD5006AD9EF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/VoiceOver.strings; sourceTree = ""; }; - 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateMessageRequest.swift; sourceTree = ""; }; - 803782B61FB4751D00DED049 /* RealmTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmTestCase.swift; sourceTree = ""; }; - 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListViewController.swift; sourceTree = ""; }; - 8041C0412028C7EF007E21FA /* ReactorListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListView.swift; sourceTree = ""; }; - 8041C0432028C828007E21FA /* ReactorListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactorListView.xib; sourceTree = ""; }; - 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCEmojiKitLocalizable.swift; sourceTree = ""; }; - 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = RCEmojiKit.xcassets; sourceTree = ""; }; - 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewController.swift; sourceTree = ""; }; - 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEXibInitializable.swift; sourceTree = ""; }; - 805DEC341FFC03380033151B /* CustomEmojiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiManager.swift; sourceTree = ""; }; - 805DEC361FFC08870033151B /* CustomEmoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmoji.swift; sourceTree = ""; }; - 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiSpec.swift; sourceTree = ""; }; - 806401301FB09DE800990572 /* Permission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Permission.swift; sourceTree = ""; }; - 806401321FB09EC400990572 /* PermissionModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionModelMapping.swift; sourceTree = ""; }; - 806401341FB09F8A00990572 /* PermissionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManager.swift; sourceTree = ""; }; - 806465EB1FED19B9001F27DB /* EmojiView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiView.xib; sourceTree = ""; }; - 806465ED1FED1AFE001F27DB /* EmojiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiView.swift; sourceTree = ""; }; - 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesNavigationController.swift; sourceTree = ""; }; - 806728FE20079734009FE94D /* DeleteMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequest.swift; sourceTree = ""; }; - 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequestSpec.swift; sourceTree = ""; }; - 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequest.swift; sourceTree = ""; }; - 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequestSpec.swift; sourceTree = ""; }; - 8067DAA5206D1883005E3369 /* APIResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResource.swift; sourceTree = ""; }; - 8069D26D1FFF876D00C75926 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; - 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostMessageRequest.swift; sourceTree = ""; }; - 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMessageRequestSpec.swift; sourceTree = ""; }; - 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerLoginServices.swift; sourceTree = ""; }; - 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerConnectionHandler.swift; sourceTree = ""; }; - 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerAuthenticationHandler.swift; sourceTree = ""; }; - 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageCellAccessibility.swift; sourceTree = ""; }; - 807371991F94E83600D53ADF /* SocketError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocketError.swift; sourceTree = ""; }; - 8073719B1F963FA400D53ADF /* APITestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APITestCase.swift; sourceTree = ""; }; - 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceManager.swift; sourceTree = ""; }; - 8073719F1F96937100D53ADF /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginService.swift; sourceTree = ""; }; - 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelMapping.swift; sourceTree = ""; }; - 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelHandler.swift; sourceTree = ""; }; - 8076FD9920484A6000114F28 /* SEStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEStore.swift; sourceTree = ""; }; - 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerSocket.swift; sourceTree = ""; }; - 8076FDA32048533000114F28 /* String+Random.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Random.swift"; sourceTree = ""; }; - 8076FDA8204853DE00114F28 /* RealmExecute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmExecute.swift; sourceTree = ""; }; - 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSettingsHiddenTypes.swift; sourceTree = ""; }; - 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanDeleteMessage.swift; sourceTree = ""; }; - 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanBlockMessage.swift; sourceTree = ""; }; - 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanEditMessage.swift; sourceTree = ""; }; - 8076FDB42048571200114F28 /* AuthUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthUser.swift; sourceTree = ""; }; - 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerCurrentUser.swift; sourceTree = ""; }; - 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerRecover.swift; sourceTree = ""; }; - 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUtils.swift; sourceTree = ""; }; - 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUser.swift; sourceTree = ""; }; - 8076FDC62048632300114F28 /* SubscriptionQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueries.swift; sourceTree = ""; }; - 8076FDD02048646500114F28 /* MessageReply.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReply.swift; sourceTree = ""; }; - 8076FDD5204864E700114F28 /* UserQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserQueries.swift; sourceTree = ""; }; - 8076FDD72048654F00114F28 /* UserUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserUtils.swift; sourceTree = ""; }; - 8076FDD920489F5900114F28 /* SEViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEViewController.swift; sourceTree = ""; }; - 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewController.swift; sourceTree = ""; }; - 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationCoordinator.swift; sourceTree = ""; }; - 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Group.swift"; sourceTree = ""; }; - 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.ShareExtension.entitlements; sourceTree = ""; }; - 8076FDEC2049A5F600114F28 /* SECellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECellModel.swift; sourceTree = ""; }; - 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceSpec.swift; sourceTree = ""; }; - 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthManagerSpec.swift; sourceTree = ""; }; - 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanPinMessage.swift; sourceTree = ""; }; - 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPlaceholderTextView.swift; sourceTree = ""; }; - 807C7C0520751ED1006B600E /* SpotlightClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClient.swift; sourceTree = ""; }; - 807C7C0720751EDB006B600E /* SpotlightRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequest.swift; sourceTree = ""; }; - 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequestSpec.swift; sourceTree = ""; }; - 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClientSpec.swift; sourceTree = ""; }; - 807C7C11207522EF006B600E /* LoginServicesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginServicesRequest.swift; sourceTree = ""; }; - 807FB53C2044B49800E21429 /* Emojione+Transform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Emojione+Transform.swift"; sourceTree = ""; }; - 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojioneSpec.swift; sourceTree = ""; }; - 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Rocket.Chat.ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewController.swift; sourceTree = ""; }; - 807FB55D2046E7DD00E21429 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 807FB55F2046E7DD00E21429 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 807FB568204729E500E21429 /* SEServersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewController.swift; sourceTree = ""; }; - 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewModel.swift; sourceTree = ""; }; - 807FB57020472B6A00E21429 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - 807FB57220472B6D00E21429 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57320472B6F00E21429 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57420472B7000E21429 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57520472B7200E21429 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57620472B7300E21429 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57720472B8200E21429 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 807FB581204837AF00E21429 /* SEServersViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewModel.swift; sourceTree = ""; }; - 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManagerSpec.swift; sourceTree = ""; }; - 808792371FB14B3300EFE77F /* PermissionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionSpec.swift; sourceTree = ""; }; - 80977AB5204EEF1E00C41435 /* SelectServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectServer.swift; sourceTree = ""; }; - 80977AB8204EFBCC00C41435 /* SENavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigation.swift; sourceTree = ""; }; - 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESceneTransition.swift; sourceTree = ""; }; - 80977ABE204F36F200C41435 /* SESearchState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESearchState.swift; sourceTree = ""; }; - 80977AC1204F37C200C41435 /* SEState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEState.swift; sourceTree = ""; }; - 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewModel.swift; sourceTree = ""; }; - 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadClient.swift; sourceTree = ""; }; - 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionListView.swift; sourceTree = ""; }; - 809B530F1FE2F17D00833DD2 /* ReactionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionView.swift; sourceTree = ""; }; - 809B53111FE2F2F900833DD2 /* ReactionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionView.xib; sourceTree = ""; }; - 809B53131FE3294400833DD2 /* ReactionListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionListView.xib; sourceTree = ""; }; - 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReaction.swift; sourceTree = ""; }; - 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RealmCurrent.swift; sourceTree = ""; }; - 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcher.swift; sourceTree = ""; }; - 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiAutocompleteCell.swift; sourceTree = ""; }; - 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiAutocompleteCell.xib; sourceTree = ""; }; - 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequest.swift; sourceTree = ""; }; - 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequestSpec.swift; sourceTree = ""; }; - 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequest.swift; sourceTree = ""; }; - 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequestSpec.swift; sourceTree = ""; }; - 80A63C561F71D2E400FE5AC4 /* APISpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APISpec.swift; sourceTree = ""; }; - 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcherSpec.swift; sourceTree = ""; }; - 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensionsSpec.swift; sourceTree = ""; }; - 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageUnreadSeparator.swift; sourceTree = ""; }; - 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageUnreadSeparator.xib; sourceTree = ""; }; - 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SAMLViewController.swift; sourceTree = ""; }; - 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewControllerSpec.swift; sourceTree = ""; }; - 80C7DD5F1FF46B8000E6647C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD611FF46B8300E6647C /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/RCEmojiKit.strings"; sourceTree = ""; }; - 80C7DD621FF46B8600E6647C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD631FF46B8700E6647C /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD641FF46B8800E6647C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD651FF46B8C00E6647C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80CFB5711F8D697100FC9715 /* ReplyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReplyView.xib; sourceTree = ""; }; - 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyView.swift; sourceTree = ""; }; - 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEServerCell.xib; sourceTree = ""; }; - 80D0CE5F205016B40056B17F /* SEServerCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCell.swift; sourceTree = ""; }; - 80D0CE61205023710056B17F /* SECell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECell.swift; sourceTree = ""; }; - 80D0CE63205034280056B17F /* SEServerCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCellModel.swift; sourceTree = ""; }; - 80D0CE6520503C860056B17F /* SERoomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCell.swift; sourceTree = ""; }; - 80D0CE6720503C970056B17F /* SERoomCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SERoomCell.xib; sourceTree = ""; }; - 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCellModel.swift; sourceTree = ""; }; - 80D0CE6E20509C100056B17F /* SEAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEAvatarView.swift; sourceTree = ""; }; - 80D0CE7020509C230056B17F /* SEAvatarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEAvatarView.xib; sourceTree = ""; }; - 80D5637120592D32008896D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 80D563742059325A008896D6 /* MimeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MimeType.swift; sourceTree = ""; }; - 80D5637620593533008896D6 /* ParseItemProviders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseItemProviders.swift; sourceTree = ""; }; - 80D955C1202154A300E3F281 /* CASViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CASViewController.swift; sourceTree = ""; }; - 80DC9A6B206BA95600032BE0 /* Localized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Localized.swift; sourceTree = ""; }; - 80DC9A6F206BAC8B00032BE0 /* mimetype.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = mimetype.json; sourceTree = ""; }; - 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensions.swift; sourceTree = ""; }; - 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensionsSpec.swift; sourceTree = ""; }; - 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensionsSpec.swift; sourceTree = ""; }; - 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+CustomEmojis.swift"; sourceTree = ""; }; - 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkdownManagerSpec.swift; sourceTree = ""; }; - 80FA9065205313E20069038F /* SEContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEContent.swift; sourceTree = ""; }; - 80FA9067205314040069038F /* SEServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServer.swift; sourceTree = ""; }; - 80FA906920569F890069038F /* SEComposeFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCell.swift; sourceTree = ""; }; - 80FA906B20569FA10069038F /* SEComposeFileCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeFileCell.xib; sourceTree = ""; }; - 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCellModel.swift; sourceTree = ""; }; - 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewModel.swift; sourceTree = ""; }; - 80FA90712056C1190069038F /* SEComposeTextCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCell.swift; sourceTree = ""; }; - 80FA90732056C1350069038F /* SEComposeTextCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeTextCell.xib; sourceTree = ""; }; - 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCellModel.swift; sourceTree = ""; }; - 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeCellModel.swift; sourceTree = ""; }; - 80FA907C2057F4650069038F /* SubmitContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubmitContent.swift; sourceTree = ""; }; - 80FE8DED206584EA0099170E /* SEFileDetailView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEFileDetailView.xib; sourceTree = ""; }; - 80FE8DEF206587510099170E /* SEFileDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEFileDetailView.swift; sourceTree = ""; }; - 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.release.xcconfig"; sourceTree = ""; }; - 848088BA204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 848088BB204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; - 848088BC204370E9005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/VoiceOver.strings; sourceTree = ""; }; - 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequestSpec.swift; sourceTree = ""; }; - 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheckTableViewCell.swift; sourceTree = ""; }; - 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CheckTableViewCell.xib; sourceTree = ""; }; - 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = ""; }; - 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextFieldTableViewCell.xib; sourceTree = ""; }; - 897083D21F8CF08100233561 /* FormTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormTableViewCell.swift; sourceTree = ""; }; - 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequest.swift; sourceTree = ""; }; - 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewRoomViewControllerSpec.swift; sourceTree = ""; }; - 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewControllerSpec.swift; sourceTree = ""; }; - 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequest.swift; sourceTree = ""; }; - 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequestSpec.swift; sourceTree = ""; }; - 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequestSpec.swift; sourceTree = ""; }; - 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModel.swift; sourceTree = ""; }; - 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManagerSpec.swift; sourceTree = ""; }; - 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UINavigationControllerExtension.swift; sourceTree = ""; }; - 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManagerSpec.swift; sourceTree = ""; }; - 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModelSpec.swift; sourceTree = ""; }; - 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordTableViewController.swift; sourceTree = ""; }; - 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManager.swift; sourceTree = ""; }; - 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserTableViewController.swift; sourceTree = ""; }; - 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModel.swift; sourceTree = ""; }; - 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequest.swift; sourceTree = ""; }; - 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequestSpec.swift; sourceTree = ""; }; - 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequest.swift; sourceTree = ""; }; - 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequestSpec.swift; sourceTree = ""; }; - 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequestSpec.swift; sourceTree = ""; }; - 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequest.swift; sourceTree = ""; }; - 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModel.swift; sourceTree = ""; }; - 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManager.swift; sourceTree = ""; }; - 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewController.swift; sourceTree = ""; }; - 99D888FA204623A900E51306 /* UpdateUserRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequest.swift; sourceTree = ""; }; - 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModelSpec.swift; sourceTree = ""; }; - 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModelSpec.swift; sourceTree = ""; }; - A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TintedTextField.swift; sourceTree = ""; }; - AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.beta.xcconfig"; sourceTree = ""; }; - B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserReviewManager.swift; sourceTree = ""; }; - B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserReviewManagerSpec.swift; sourceTree = ""; }; - BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.debug.xcconfig"; sourceTree = ""; }; - D10E9C191F643457007F1796 /* Channel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Channel.swift; sourceTree = ""; }; - D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelModelMapping.swift; sourceTree = ""; }; - D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSRangeExtensions.swift; sourceTree = ""; }; - D10E9C211F643616007F1796 /* MentionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionModelMapping.swift; sourceTree = ""; }; - D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensions.swift; sourceTree = ""; }; - D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelSpec.swift; sourceTree = ""; }; - D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionSpec.swift; sourceTree = ""; }; - D15C83851F70991F001AB155 /* APIResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResponse.swift; sourceTree = ""; }; - D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestSpec.swift; sourceTree = ""; }; - D18675EB1F716A0D00406FB4 /* LoginRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequest.swift; sourceTree = ""; }; - D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequestSpec.swift; sourceTree = ""; }; - D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensionsSpec.swift; sourceTree = ""; }; - D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkdownManager.swift; sourceTree = ""; }; - D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFontExtensions.swift; sourceTree = ""; }; - D1D535EB1F7081FA006625D2 /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; - D1D535ED1F708628006625D2 /* APIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIRequest.swift; sourceTree = ""; }; - D1D535F01F70864C006625D2 /* InfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequest.swift; sourceTree = ""; }; - D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataControllerSpec.swift; sourceTree = ""; }; - D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinator.swift; sourceTree = ""; }; - D32E28221DFD86C300D6019C /* LauncherProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LauncherProtocol.swift; sourceTree = ""; }; - D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistencyCoordinator.swift; sourceTree = ""; }; - D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModel.swift; sourceTree = ""; }; - F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; sourceTree = ""; }; - FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.beta.xcconfig"; sourceTree = ""; }; + 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; + 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; + 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; + 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; + 33A5C9C2206A565800FE1C8F /* travel.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = travel.json; sourceTree = ""; }; + 33A5C9C3206A565800FE1C8F /* regional.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = regional.json; sourceTree = ""; }; + 33A5C9C4206A565800FE1C8F /* flags.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = flags.json; sourceTree = ""; }; + 33A5C9C5206A565800FE1C8F /* people.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = people.json; sourceTree = ""; }; + 33A5C9C6206A565800FE1C8F /* objects.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = objects.json; sourceTree = ""; }; + 33A5C9C7206A565800FE1C8F /* food.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = food.json; sourceTree = ""; }; + 33A5C9C8206A565800FE1C8F /* activity.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = activity.json; sourceTree = ""; }; + 33A5C9C9206A565800FE1C8F /* nature.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = nature.json; sourceTree = ""; }; + 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatNotification.swift; sourceTree = ""; }; + 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; + 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; + 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; + 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; + 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; + 35BCD302201A9FB800B4BE5A /* AskSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AskSpec.swift; sourceTree = ""; }; + 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCDateFormatter.swift; sourceTree = ""; }; + 35D2F140200A45E800B4BE5A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertSpec.swift; sourceTree = ""; }; + 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OAuthManager.swift; sourceTree = ""; }; + 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewRoomViewController.swift; sourceTree = ""; }; + 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModel.swift; sourceTree = ""; }; + 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewControllerCustomFields.swift; sourceTree = ""; }; + 4101BF001F8D0A1700F67E89 /* AppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManager.swift; sourceTree = ""; }; + 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManagerSpec.swift; sourceTree = ""; }; + 4102E3A91E532323004BAA82 /* Preferences.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Preferences.storyboard; sourceTree = ""; }; + 4102E3AC1E53273E004BAA82 /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; + 411119B51F680DB00019854B /* NetworkCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkCoordinator.swift; sourceTree = ""; }; + 411119B71F6825C30019854B /* NetworkManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManagerSpec.swift; sourceTree = ""; }; + 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainChatViewController.swift; sourceTree = ""; }; + 4112DC551FFFB9B1005995E1 /* BaseModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModel.swift; sourceTree = ""; }; + 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelHandler.swift; sourceTree = ""; }; + 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelMappeable.swift; sourceTree = ""; }; + 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModelSpec.swift; sourceTree = ""; }; + 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModel.swift; sourceTree = ""; }; + 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentSpec.swift; sourceTree = ""; }; + 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManager.swift; sourceTree = ""; }; + 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManagerSpec.swift; sourceTree = ""; }; + 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadManager.swift; sourceTree = ""; }; + 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatChannelHeaderCell.swift; sourceTree = ""; }; + 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatChannelHeaderCell.xib; sourceTree = ""; }; + 412184A420472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 412184A520472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + 412184A620472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/VoiceOver.strings; sourceTree = ""; }; + 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterUsernameViewController.swift; sourceTree = ""; }; + 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatPreviewModeView.xib; sourceTree = ""; }; + 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPreviewModeView.swift; sourceTree = ""; }; + 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageVideoView.swift; sourceTree = ""; }; + 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageVideoView.xib; sourceTree = ""; }; + 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageTextView.xib; sourceTree = ""; }; + 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextView.swift; sourceTree = ""; }; + 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorCSSColorsExtension.swift; sourceTree = ""; }; + 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageURLView.swift; sourceTree = ""; }; + 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageURLView.xib; sourceTree = ""; }; + 412EF3C52050507C001689A3 /* ReusableViewText.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReusableViewText.xib; sourceTree = ""; }; + 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = ""; }; + 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageImageView.swift; sourceTree = ""; }; + 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageImageView.xib; sourceTree = ""; }; + 413996161F3B44500075F96E /* UploadHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelper.swift; sourceTree = ""; }; + 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsPageViewController.swift; sourceTree = ""; }; + 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServersViewController.swift; sourceTree = ""; }; + 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCell.swift; sourceTree = ""; }; + 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddServerCell.swift; sourceTree = ""; }; + 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManagerSpec.swift; sourceTree = ""; }; + 41494B911D63C6280004F369 /* UIImageExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; + 41499C8E1F2A116900790EA7 /* ServerManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManager.swift; sourceTree = ""; }; + 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampCoordinator.swift; sourceTree = ""; }; + 414A1FF51D46320F00093E10 /* ResponseMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessage.swift; sourceTree = ""; }; + 414A1FF91D46395400093E10 /* SocketManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManager.swift; sourceTree = ""; }; + 414A1FFB1D46395900093E10 /* SocketResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketResponse.swift; sourceTree = ""; }; + 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewController.swift; sourceTree = ""; }; + 414EFF911E54FE69004F001F /* AuthExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthExtensions.swift; sourceTree = ""; }; + 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextCacheManager.swift; sourceTree = ""; }; + 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModelSpec.swift; sourceTree = ""; }; + 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelHandler.swift; sourceTree = ""; }; + 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelHandler.swift; sourceTree = ""; }; + 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelMapping.swift; sourceTree = ""; }; + 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageModelMapping.swift; sourceTree = ""; }; + 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttachmentModelMapping.swift; sourceTree = ""; }; + 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsModelMapping.swift; sourceTree = ""; }; + 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLModelMapping.swift; sourceTree = ""; }; + 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinatorSpec.swift; sourceTree = ""; }; + 4153E80420504BE700FBC26B /* ReusableViewText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReusableViewText.swift; sourceTree = ""; }; + 41552F651D30308C0081438D /* AuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManager.swift; sourceTree = ""; }; + 41552F671D3035D80081438D /* SocketManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManagerSpec.swift; sourceTree = ""; }; + 4159720B1D3DB854002258F4 /* Email.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Email.swift; sourceTree = ""; }; + 4159720D1D3DB882002258F4 /* Mention.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mention.swift; sourceTree = ""; }; + 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoFactorAuthenticationViewController.swift; sourceTree = ""; }; + 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; + 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCell.swift; sourceTree = ""; }; + 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageCell.xib; sourceTree = ""; }; + 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModelSpec.swift; sourceTree = ""; }; + 416133391D46E0A200E09DA2 /* AuthSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSpec.swift; sourceTree = ""; }; + 4161333B1D46E32F00E09DA2 /* UserSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserSpec.swift; sourceTree = ""; }; + 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSpec.swift; sourceTree = ""; }; + 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageSpec.swift; sourceTree = ""; }; + 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelperSpec.swift; sourceTree = ""; }; + 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManagerSpec.swift; sourceTree = ""; }; + 4162E1521D651A8800AAAE49 /* UserManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserManager.swift; sourceTree = ""; }; + 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketHandlers.swift; sourceTree = ""; }; + 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarViewSpec.swift; sourceTree = ""; }; + 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectServerViewController.swift; sourceTree = ""; }; + 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Auth.storyboard; sourceTree = ""; }; + 4174CB121D2D99960086DAC8 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; + 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseNavigationController.swift; sourceTree = ""; }; + 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthViewController.swift; sourceTree = ""; }; + 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; + 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; + 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Rocket.Chat-Bridge.h"; sourceTree = ""; }; + 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessageSpec.swift; sourceTree = ""; }; + 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoViewController.swift; sourceTree = ""; }; + 41833F4D1DEF16B600E54655 /* Keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Keys.plist; sourceTree = ""; }; + 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatControllerReplyHandler.swift; sourceTree = ""; }; + 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewControllerEmbedded.swift; sourceTree = ""; }; + 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WebViewControllerEmbedded.xib; sourceTree = ""; }; + 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageActions.swift; sourceTree = ""; }; + 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSectionView.swift; sourceTree = ""; }; + 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSectionView.xib; sourceTree = ""; }; + 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegateSpec.swift; sourceTree = ""; }; + 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegate.swift; sourceTree = ""; }; + 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegateSpec.swift; sourceTree = ""; }; + 41900C261D9FE35400308EF4 /* Attachment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Attachment.swift; sourceTree = ""; }; + 419205481D52EDE6004EEC5F /* UILabelExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UILabelExtension.swift; sourceTree = ""; }; + 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionCell.swift; sourceTree = ""; }; + 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; + 4199A9881DABCC570035F820 /* Emojione.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Emojione.swift; sourceTree = ""; }; + 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandler.swift; sourceTree = ""; }; + 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandlerSpec.swift; sourceTree = ""; }; + 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatHeaderViewStatus.xib; sourceTree = ""; }; + 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHeaderViewStatus.swift; sourceTree = ""; }; + 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerHeaderStatus.swift; sourceTree = ""; }; + 419ECCA31F3CA21A005F224B /* DownloadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; + 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerDocuments.swift; sourceTree = ""; }; + 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewControllerExtension.swift; sourceTree = ""; }; + 41A6191A1FA7065400CFFA69 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + 41A79C0E1D2F085F00A1968E /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; + 41A79C121D2F09F200A1968E /* Auth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Auth.swift; sourceTree = ""; }; + 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettings.swift; sourceTree = ""; }; + 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionUserStatusView.xib; sourceTree = ""; }; + 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionUserStatusView.swift; sourceTree = ""; }; + 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AutocompleteCell.xib; sourceTree = ""; }; + 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutocompleteCell.swift; sourceTree = ""; }; + 41ADDD481E9DBB100007A458 /* LoaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderView.swift; sourceTree = ""; }; + 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderViewSpec.swift; sourceTree = ""; }; + 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerUploader.swift; sourceTree = ""; }; + 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIWindowExtensions.swift; sourceTree = ""; }; + 41B554C61FBF0F9D000510B7 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = ""; }; + 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewControllerTextViewDelegate.swift; sourceTree = ""; }; + 41B96361207E48260068F1A6 /* MessageTextValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidator.swift; sourceTree = ""; }; + 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidatorSpec.swift; sourceTree = ""; }; + 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManagerSpec.swift; sourceTree = ""; }; + 41BAE3E61D71B26C00C2445A /* URLExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtension.swift; sourceTree = ""; }; + 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtensionSpec.swift; sourceTree = ""; }; + 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelMapping.swift; sourceTree = ""; }; + 41C275DE1D848005003C88CF /* AvatarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarView.swift; sourceTree = ""; }; + 41C275E01D84815C003C88CF /* AvatarView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AvatarView.xib; sourceTree = ""; }; + 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataController.swift; sourceTree = ""; }; + 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatLoaderCell.xib; sourceTree = ""; }; + 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatLoaderCell.swift; sourceTree = ""; }; + 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayExtensions.swift; sourceTree = ""; }; + 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageDaySeparator.xib; sourceTree = ""; }; + 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageDaySeparator.swift; sourceTree = ""; }; + 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayout.swift; sourceTree = ""; }; + 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewExtentions.swift; sourceTree = ""; }; + 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextFontAttributes.swift; sourceTree = ""; }; + 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensions.swift; sourceTree = ""; }; + 41D7CA861E644E47000F38EA /* MessageExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageExtensions.swift; sourceTree = ""; }; + 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDirectMessageHeaderCell.swift; sourceTree = ""; }; + 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatDirectMessageHeaderCell.xib; sourceTree = ""; }; + 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionManager.swift; sourceTree = ""; }; + 41DAE93D1D318F350098E068 /* Subscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscription.swift; sourceTree = ""; }; + 41DC7A1A1D38454500896FC0 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; + 41DC7A1C1D38471700896FC0 /* MessageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManager.swift; sourceTree = ""; }; + 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManagerSpec.swift; sourceTree = ""; }; + 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensionSpec.swift; sourceTree = ""; }; + 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtensionsSpec.swift; sourceTree = ""; }; + 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSearchMoreView.xib; sourceTree = ""; }; + 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSearchMoreView.swift; sourceTree = ""; }; + 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 41DF76E91D2C50710028DBF8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 41DF76EC1D2C50720028DBF8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 41DF76EE1D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF76F91D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RocketChatUITests.swift; sourceTree = ""; }; + 41DF77041D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41E2F9FE1D414DE800238DFD /* Chat.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Chat.storyboard; sourceTree = ""; }; + 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Subscriptions.storyboard; sourceTree = ""; }; + 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsViewController.swift; sourceTree = ""; }; + 41E2FA061D41513C00238DFD /* ChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = ""; }; + 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensionSpec.swift; sourceTree = ""; }; + 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UINibExtensions.swift; sourceTree = ""; }; + 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = ""; }; + 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthInternalExtensions.swift; sourceTree = ""; }; + 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueriesSpec.swift; sourceTree = ""; }; + 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadVideoCompression.swift; sourceTree = ""; }; + 41EB22371E5F056600AA3AE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 41EB223A1E5F057F00AA3AE7 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + 41EB223B1E5F19EB00AA3AE7 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerAutocomplete.swift; sourceTree = ""; }; + 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageCellProtocol.swift; sourceTree = ""; }; + 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerSocketConnectionHandler.swift; sourceTree = ""; }; + 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTitleView.swift; sourceTree = ""; }; + 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatTitleView.xib; sourceTree = ""; }; + 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURL.swift; sourceTree = ""; }; + 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModelSpec.swift; sourceTree = ""; }; + 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManagerSpec.swift; sourceTree = ""; }; + 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.release.xcconfig"; sourceTree = ""; }; + 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.debug.xcconfig"; sourceTree = ""; }; + 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.entitlements; sourceTree = ""; }; + 597ECBA11E3708A50041C5C5 /* DataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataExtension.swift; sourceTree = ""; }; + 597ECBA31E3708B10041C5C5 /* PushManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushManager.swift; sourceTree = ""; }; + 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; sourceTree = ""; }; + 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat_ShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLSpec.swift; sourceTree = ""; }; + 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_ChatTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegate.swift; sourceTree = ""; }; + 7798B4141F852B720074B2F4 /* SelectField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectField.swift; sourceTree = ""; }; + 7798B4181F852D670074B2F4 /* CustomField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomField.swift; sourceTree = ""; }; + 77BA81501F87C4CB00F295F4 /* TextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextField.swift; sourceTree = ""; }; + 77C261241F97445300724A1F /* AuthSettingsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsSpec.swift; sourceTree = ""; }; + 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DictionaryExtensionsSpec.swift; sourceTree = ""; }; + 77C261291F97453600724A1F /* CustomFieldsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomFieldsSpec.swift; sourceTree = ""; }; + 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectFieldSpec.swift; sourceTree = ""; }; + 77C2612B1F97453600724A1F /* TextFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldSpec.swift; sourceTree = ""; }; + 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtensions.swift; sourceTree = ""; }; + 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendMessageRequest.swift; sourceTree = ""; }; + 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClient.swift; sourceTree = ""; }; + 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClientSpec.swift; sourceTree = ""; }; + 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequest.swift; sourceTree = ""; }; + 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushTokenDeleteRequest.swift; sourceTree = ""; }; + 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushClient.swift; sourceTree = ""; }; + 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = ""; }; + 800640F62049BA25006D990F /* SEScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEScene.swift; sourceTree = ""; }; + 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListViewController.swift; sourceTree = ""; }; + 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMessagesRequest.swift; sourceTree = ""; }; + 800F38EC2019492D0005CB78 /* DeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLink.swift; sourceTree = ""; }; + 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembersListViewController.swift; sourceTree = ""; }; + 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoBasicCell.swift; sourceTree = ""; }; + 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoCellProtocol.swift; sourceTree = ""; }; + 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDescriptionCell.swift; sourceTree = ""; }; + 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDetailCell.swift; sourceTree = ""; }; + 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoUserCell.swift; sourceTree = ""; }; + 800FCD491F728E6A00D9A692 /* MemberCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberCell.swift; sourceTree = ""; }; + 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MemberCell.xib; sourceTree = ""; }; + 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewController.swift; sourceTree = ""; }; + 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayoutSpec.swift; sourceTree = ""; }; + 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensions.swift; sourceTree = ""; }; + 8013F8661FD6B4F400EE1A4E /* Command.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Command.swift; sourceTree = ""; }; + 8013F8681FD6B59900EE1A4E /* Version.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Version.swift; sourceTree = ""; }; + 8013F8691FD6B59900EE1A4E /* APIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIError.swift; sourceTree = ""; }; + 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIClient.swift; sourceTree = ""; }; + 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClient.swift; sourceTree = ""; }; + 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClient.swift; sourceTree = ""; }; + 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddleware.swift; sourceTree = ""; }; + 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddlewareSpec.swift; sourceTree = ""; }; + 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockAPI.swift; sourceTree = ""; }; + 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionSpec.swift; sourceTree = ""; }; + 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClientSpec.swift; sourceTree = ""; }; + 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClientSpec.swift; sourceTree = ""; }; + 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsRequest.swift; sourceTree = ""; }; + 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequest.swift; sourceTree = ""; }; + 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequestSpec.swift; sourceTree = ""; }; + 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandModelMapping.swift; sourceTree = ""; }; + 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushManagerSpec.swift; sourceTree = ""; }; + 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUserView.swift; sourceTree = ""; }; + 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPicker.swift; sourceTree = ""; }; + 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiPicker.xib; sourceTree = ""; }; + 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerController.swift; sourceTree = ""; }; + 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequestSpec.swift; sourceTree = ""; }; + 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPMethod.swift; sourceTree = ""; }; + 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequest.swift; sourceTree = ""; }; + 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequestSpec.swift; sourceTree = ""; }; + 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoaderTableViewCell.swift; sourceTree = ""; }; + 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoaderTableViewCell.xib; sourceTree = ""; }; + 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactionSpec.swift; sourceTree = ""; }; + 802498ED1F7A8380005477EC /* MeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequest.swift; sourceTree = ""; }; + 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequestSpec.swift; sourceTree = ""; }; + 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageAudioView.xib; sourceTree = ""; }; + 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAudioView.swift; sourceTree = ""; }; + 8029B2F12059B6F60067157B /* VideoInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoInfo.swift; sourceTree = ""; }; + 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+StatusReport.swift"; sourceTree = ""; }; + 802A4E102049C7340072CD23 /* SENavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigationController.swift; sourceTree = ""; }; + 802A4E23204D730F0072CD23 /* AppGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppGroup.swift; sourceTree = ""; }; + 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOTextField.swift; sourceTree = ""; }; + 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOLocalized.swift; sourceTree = ""; }; + 80307E421FD75DC0006AD9EF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E441FD75DCB006AD9EF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/VoiceOver.strings"; sourceTree = ""; }; + 80307E451FD75DCF006AD9EF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E461FD75DD1006AD9EF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E471FD75DD2006AD9EF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E481FD75DD5006AD9EF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/VoiceOver.strings; sourceTree = ""; }; + 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateMessageRequest.swift; sourceTree = ""; }; + 803782B61FB4751D00DED049 /* RealmTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmTestCase.swift; sourceTree = ""; }; + 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListViewController.swift; sourceTree = ""; }; + 8041C0412028C7EF007E21FA /* ReactorListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListView.swift; sourceTree = ""; }; + 8041C0432028C828007E21FA /* ReactorListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactorListView.xib; sourceTree = ""; }; + 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCEmojiKitLocalizable.swift; sourceTree = ""; }; + 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = RCEmojiKit.xcassets; sourceTree = ""; }; + 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewController.swift; sourceTree = ""; }; + 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEXibInitializable.swift; sourceTree = ""; }; + 805DEC341FFC03380033151B /* CustomEmojiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiManager.swift; sourceTree = ""; }; + 805DEC361FFC08870033151B /* CustomEmoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmoji.swift; sourceTree = ""; }; + 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiSpec.swift; sourceTree = ""; }; + 806401301FB09DE800990572 /* Permission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Permission.swift; sourceTree = ""; }; + 806401321FB09EC400990572 /* PermissionModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionModelMapping.swift; sourceTree = ""; }; + 806401341FB09F8A00990572 /* PermissionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManager.swift; sourceTree = ""; }; + 806465EB1FED19B9001F27DB /* EmojiView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiView.xib; sourceTree = ""; }; + 806465ED1FED1AFE001F27DB /* EmojiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiView.swift; sourceTree = ""; }; + 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesNavigationController.swift; sourceTree = ""; }; + 806728FE20079734009FE94D /* DeleteMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequest.swift; sourceTree = ""; }; + 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequestSpec.swift; sourceTree = ""; }; + 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequest.swift; sourceTree = ""; }; + 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequestSpec.swift; sourceTree = ""; }; + 8067DAA5206D1883005E3369 /* APIResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResource.swift; sourceTree = ""; }; + 8069D26D1FFF876D00C75926 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; + 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostMessageRequest.swift; sourceTree = ""; }; + 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMessageRequestSpec.swift; sourceTree = ""; }; + 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerLoginServices.swift; sourceTree = ""; }; + 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerConnectionHandler.swift; sourceTree = ""; }; + 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerAuthenticationHandler.swift; sourceTree = ""; }; + 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageCellAccessibility.swift; sourceTree = ""; }; + 807371991F94E83600D53ADF /* SocketError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocketError.swift; sourceTree = ""; }; + 8073719B1F963FA400D53ADF /* APITestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APITestCase.swift; sourceTree = ""; }; + 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceManager.swift; sourceTree = ""; }; + 8073719F1F96937100D53ADF /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginService.swift; sourceTree = ""; }; + 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelMapping.swift; sourceTree = ""; }; + 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelHandler.swift; sourceTree = ""; }; + 8076FD9920484A6000114F28 /* SEStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEStore.swift; sourceTree = ""; }; + 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerSocket.swift; sourceTree = ""; }; + 8076FDA32048533000114F28 /* String+Random.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Random.swift"; sourceTree = ""; }; + 8076FDA8204853DE00114F28 /* RealmExecute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmExecute.swift; sourceTree = ""; }; + 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSettingsHiddenTypes.swift; sourceTree = ""; }; + 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanDeleteMessage.swift; sourceTree = ""; }; + 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanBlockMessage.swift; sourceTree = ""; }; + 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanEditMessage.swift; sourceTree = ""; }; + 8076FDB42048571200114F28 /* AuthUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthUser.swift; sourceTree = ""; }; + 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerCurrentUser.swift; sourceTree = ""; }; + 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerRecover.swift; sourceTree = ""; }; + 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUtils.swift; sourceTree = ""; }; + 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUser.swift; sourceTree = ""; }; + 8076FDC62048632300114F28 /* SubscriptionQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueries.swift; sourceTree = ""; }; + 8076FDD02048646500114F28 /* MessageReply.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReply.swift; sourceTree = ""; }; + 8076FDD5204864E700114F28 /* UserQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserQueries.swift; sourceTree = ""; }; + 8076FDD72048654F00114F28 /* UserUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserUtils.swift; sourceTree = ""; }; + 8076FDD920489F5900114F28 /* SEViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEViewController.swift; sourceTree = ""; }; + 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewController.swift; sourceTree = ""; }; + 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationCoordinator.swift; sourceTree = ""; }; + 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Group.swift"; sourceTree = ""; }; + 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.ShareExtension.entitlements; sourceTree = ""; }; + 8076FDEC2049A5F600114F28 /* SECellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECellModel.swift; sourceTree = ""; }; + 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceSpec.swift; sourceTree = ""; }; + 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthManagerSpec.swift; sourceTree = ""; }; + 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanPinMessage.swift; sourceTree = ""; }; + 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPlaceholderTextView.swift; sourceTree = ""; }; + 807C7C0520751ED1006B600E /* SpotlightClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClient.swift; sourceTree = ""; }; + 807C7C0720751EDB006B600E /* SpotlightRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequest.swift; sourceTree = ""; }; + 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequestSpec.swift; sourceTree = ""; }; + 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClientSpec.swift; sourceTree = ""; }; + 807C7C11207522EF006B600E /* LoginServicesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginServicesRequest.swift; sourceTree = ""; }; + 807FB53C2044B49800E21429 /* Emojione+Transform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Emojione+Transform.swift"; sourceTree = ""; }; + 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojioneSpec.swift; sourceTree = ""; }; + 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Rocket.Chat.ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewController.swift; sourceTree = ""; }; + 807FB55D2046E7DD00E21429 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 807FB55F2046E7DD00E21429 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 807FB568204729E500E21429 /* SEServersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewController.swift; sourceTree = ""; }; + 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewModel.swift; sourceTree = ""; }; + 807FB57020472B6A00E21429 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + 807FB57220472B6D00E21429 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57320472B6F00E21429 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57420472B7000E21429 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57520472B7200E21429 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57620472B7300E21429 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57720472B8200E21429 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 807FB581204837AF00E21429 /* SEServersViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewModel.swift; sourceTree = ""; }; + 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManagerSpec.swift; sourceTree = ""; }; + 808792371FB14B3300EFE77F /* PermissionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionSpec.swift; sourceTree = ""; }; + 80977AB5204EEF1E00C41435 /* SelectServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectServer.swift; sourceTree = ""; }; + 80977AB8204EFBCC00C41435 /* SENavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigation.swift; sourceTree = ""; }; + 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESceneTransition.swift; sourceTree = ""; }; + 80977ABE204F36F200C41435 /* SESearchState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESearchState.swift; sourceTree = ""; }; + 80977AC1204F37C200C41435 /* SEState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEState.swift; sourceTree = ""; }; + 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewModel.swift; sourceTree = ""; }; + 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadClient.swift; sourceTree = ""; }; + 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionListView.swift; sourceTree = ""; }; + 809B530F1FE2F17D00833DD2 /* ReactionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionView.swift; sourceTree = ""; }; + 809B53111FE2F2F900833DD2 /* ReactionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionView.xib; sourceTree = ""; }; + 809B53131FE3294400833DD2 /* ReactionListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionListView.xib; sourceTree = ""; }; + 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReaction.swift; sourceTree = ""; }; + 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RealmCurrent.swift; sourceTree = ""; }; + 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcher.swift; sourceTree = ""; }; + 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiAutocompleteCell.swift; sourceTree = ""; }; + 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiAutocompleteCell.xib; sourceTree = ""; }; + 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequest.swift; sourceTree = ""; }; + 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequestSpec.swift; sourceTree = ""; }; + 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequest.swift; sourceTree = ""; }; + 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequestSpec.swift; sourceTree = ""; }; + 80A63C561F71D2E400FE5AC4 /* APISpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APISpec.swift; sourceTree = ""; }; + 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcherSpec.swift; sourceTree = ""; }; + 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensionsSpec.swift; sourceTree = ""; }; + 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageUnreadSeparator.swift; sourceTree = ""; }; + 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageUnreadSeparator.xib; sourceTree = ""; }; + 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SAMLViewController.swift; sourceTree = ""; }; + 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewControllerSpec.swift; sourceTree = ""; }; + 80C7DD5F1FF46B8000E6647C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD611FF46B8300E6647C /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/RCEmojiKit.strings"; sourceTree = ""; }; + 80C7DD621FF46B8600E6647C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD631FF46B8700E6647C /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD641FF46B8800E6647C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD651FF46B8C00E6647C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80CFB5711F8D697100FC9715 /* ReplyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReplyView.xib; sourceTree = ""; }; + 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyView.swift; sourceTree = ""; }; + 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEServerCell.xib; sourceTree = ""; }; + 80D0CE5F205016B40056B17F /* SEServerCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCell.swift; sourceTree = ""; }; + 80D0CE61205023710056B17F /* SECell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECell.swift; sourceTree = ""; }; + 80D0CE63205034280056B17F /* SEServerCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCellModel.swift; sourceTree = ""; }; + 80D0CE6520503C860056B17F /* SERoomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCell.swift; sourceTree = ""; }; + 80D0CE6720503C970056B17F /* SERoomCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SERoomCell.xib; sourceTree = ""; }; + 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCellModel.swift; sourceTree = ""; }; + 80D0CE6E20509C100056B17F /* SEAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEAvatarView.swift; sourceTree = ""; }; + 80D0CE7020509C230056B17F /* SEAvatarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEAvatarView.xib; sourceTree = ""; }; + 80D5637120592D32008896D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 80D563742059325A008896D6 /* MimeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MimeType.swift; sourceTree = ""; }; + 80D5637620593533008896D6 /* ParseItemProviders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseItemProviders.swift; sourceTree = ""; }; + 80D955C1202154A300E3F281 /* CASViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CASViewController.swift; sourceTree = ""; }; + 80DC9A6B206BA95600032BE0 /* Localized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Localized.swift; sourceTree = ""; }; + 80DC9A6F206BAC8B00032BE0 /* mimetype.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = mimetype.json; sourceTree = ""; }; + 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensions.swift; sourceTree = ""; }; + 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensionsSpec.swift; sourceTree = ""; }; + 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensionsSpec.swift; sourceTree = ""; }; + 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+CustomEmojis.swift"; sourceTree = ""; }; + 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkdownManagerSpec.swift; sourceTree = ""; }; + 80FA9065205313E20069038F /* SEContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEContent.swift; sourceTree = ""; }; + 80FA9067205314040069038F /* SEServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServer.swift; sourceTree = ""; }; + 80FA906920569F890069038F /* SEComposeFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCell.swift; sourceTree = ""; }; + 80FA906B20569FA10069038F /* SEComposeFileCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeFileCell.xib; sourceTree = ""; }; + 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCellModel.swift; sourceTree = ""; }; + 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewModel.swift; sourceTree = ""; }; + 80FA90712056C1190069038F /* SEComposeTextCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCell.swift; sourceTree = ""; }; + 80FA90732056C1350069038F /* SEComposeTextCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeTextCell.xib; sourceTree = ""; }; + 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCellModel.swift; sourceTree = ""; }; + 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeCellModel.swift; sourceTree = ""; }; + 80FA907C2057F4650069038F /* SubmitContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubmitContent.swift; sourceTree = ""; }; + 80FE8DED206584EA0099170E /* SEFileDetailView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEFileDetailView.xib; sourceTree = ""; }; + 80FE8DEF206587510099170E /* SEFileDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEFileDetailView.swift; sourceTree = ""; }; + 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.release.xcconfig"; sourceTree = ""; }; + 848088BA204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 848088BB204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 848088BC204370E9005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/VoiceOver.strings; sourceTree = ""; }; + 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequestSpec.swift; sourceTree = ""; }; + 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheckTableViewCell.swift; sourceTree = ""; }; + 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CheckTableViewCell.xib; sourceTree = ""; }; + 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = ""; }; + 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextFieldTableViewCell.xib; sourceTree = ""; }; + 897083D21F8CF08100233561 /* FormTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormTableViewCell.swift; sourceTree = ""; }; + 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequest.swift; sourceTree = ""; }; + 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewRoomViewControllerSpec.swift; sourceTree = ""; }; + 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewControllerSpec.swift; sourceTree = ""; }; + 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequest.swift; sourceTree = ""; }; + 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequestSpec.swift; sourceTree = ""; }; + 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequestSpec.swift; sourceTree = ""; }; + 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModel.swift; sourceTree = ""; }; + 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManagerSpec.swift; sourceTree = ""; }; + 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UINavigationControllerExtension.swift; sourceTree = ""; }; + 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManagerSpec.swift; sourceTree = ""; }; + 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModelSpec.swift; sourceTree = ""; }; + 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordTableViewController.swift; sourceTree = ""; }; + 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManager.swift; sourceTree = ""; }; + 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserTableViewController.swift; sourceTree = ""; }; + 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModel.swift; sourceTree = ""; }; + 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequest.swift; sourceTree = ""; }; + 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequestSpec.swift; sourceTree = ""; }; + 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequest.swift; sourceTree = ""; }; + 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequestSpec.swift; sourceTree = ""; }; + 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequestSpec.swift; sourceTree = ""; }; + 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequest.swift; sourceTree = ""; }; + 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModel.swift; sourceTree = ""; }; + 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManager.swift; sourceTree = ""; }; + 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewController.swift; sourceTree = ""; }; + 99D888FA204623A900E51306 /* UpdateUserRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequest.swift; sourceTree = ""; }; + 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModelSpec.swift; sourceTree = ""; }; + 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModelSpec.swift; sourceTree = ""; }; + A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TintedTextField.swift; sourceTree = ""; }; + AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.beta.xcconfig"; sourceTree = ""; }; + B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserReviewManager.swift; sourceTree = ""; }; + B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserReviewManagerSpec.swift; sourceTree = ""; }; + BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.debug.xcconfig"; sourceTree = ""; }; + D10E9C191F643457007F1796 /* Channel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Channel.swift; sourceTree = ""; }; + D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelModelMapping.swift; sourceTree = ""; }; + D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSRangeExtensions.swift; sourceTree = ""; }; + D10E9C211F643616007F1796 /* MentionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionModelMapping.swift; sourceTree = ""; }; + D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensions.swift; sourceTree = ""; }; + D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelSpec.swift; sourceTree = ""; }; + D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionSpec.swift; sourceTree = ""; }; + D15C83851F70991F001AB155 /* APIResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResponse.swift; sourceTree = ""; }; + D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestSpec.swift; sourceTree = ""; }; + D18675EB1F716A0D00406FB4 /* LoginRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequest.swift; sourceTree = ""; }; + D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequestSpec.swift; sourceTree = ""; }; + D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensionsSpec.swift; sourceTree = ""; }; + D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkdownManager.swift; sourceTree = ""; }; + D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFontExtensions.swift; sourceTree = ""; }; + D1D535EB1F7081FA006625D2 /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; + D1D535ED1F708628006625D2 /* APIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIRequest.swift; sourceTree = ""; }; + D1D535F01F70864C006625D2 /* InfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequest.swift; sourceTree = ""; }; + D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataControllerSpec.swift; sourceTree = ""; }; + D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinator.swift; sourceTree = ""; }; + D32E28221DFD86C300D6019C /* LauncherProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LauncherProtocol.swift; sourceTree = ""; }; + D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistencyCoordinator.swift; sourceTree = ""; }; + D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModel.swift; sourceTree = ""; }; + F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; sourceTree = ""; }; + FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.beta.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 41DF76DC1D2C50710028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76F01D2C50720028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FB1D2C50720028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5552046E7DD00E21429 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 41DF76DC1D2C50710028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76F01D2C50720028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FB1D2C50720028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5552046E7DD00E21429 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0B3A9760202C4DE10019CA92 /* Resources */ = { - isa = PBXGroup; - children = ( - 14F8A210202E5B2A00175FDC /* AlternateIcons */, - 41DF76E91D2C50710028DBF8 /* Assets.xcassets */, - 41EB22381E5F056600AA3AE7 /* Localizable.strings */, - 80307E431FD75DC0006AD9EF /* VoiceOver.strings */, - ); - path = Resources; - sourceTree = ""; - }; - 0B3A9767202C75A60019CA92 /* ChangeAppIcon */ = { - isa = PBXGroup; - children = ( - 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */, - 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */, - 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */, - ); - path = ChangeAppIcon; - sourceTree = ""; - }; - 0B9AB2BF20444EB300ABEA05 /* Language */ = { - isa = PBXGroup; - children = ( - 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */, - 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */, - 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */, - 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */, - ); - path = Language; - sourceTree = ""; - }; - 0BBCC2C0204546BB001E3B6D /* Language */ = { - isa = PBXGroup; - children = ( - 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */, - ); - path = Language; - sourceTree = ""; - }; - 106DAA428B5BF7289FB70C65 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */, - 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */, - 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 140A95DC202F1E4D003FD564 /* AppIcon */ = { - isa = PBXGroup; - children = ( - 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */, - ); - path = AppIcon; - sourceTree = ""; - }; - 140A95E2202F5321003FD564 /* Drawing */ = { - isa = PBXGroup; - children = ( - 14A6A82F20421DED008C210D /* Color Picker */, - 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */, - 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */, - 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */, - 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */, - 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */, - 140A95E3202F536D003FD564 /* DrawingViewController.swift */, - 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */, - ); - path = Drawing; - sourceTree = ""; - }; - 140C84EA1FC9DB9600032A59 /* CreateChannel */ = { - isa = PBXGroup; - children = ( - 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */, - ); - path = CreateChannel; - sourceTree = ""; - }; - 14A6A82F20421DED008C210D /* Color Picker */ = { - isa = PBXGroup; - children = ( - 14A6A83020421DF8008C210D /* ColorPickerView.swift */, - ); - path = "Color Picker"; - sourceTree = ""; - }; - 14F8A210202E5B2A00175FDC /* AlternateIcons */ = { - isa = PBXGroup; - children = ( - 14F8A211202E5B3200175FDC /* Black */, - 14F8A276202E654900175FDC /* Blue */, - 14F8A247202E649F00175FDC /* BnW */, - 14F8A262202E653600175FDC /* Grey */, - 14F8A212202E5B3B00175FDC /* Red */, - 14F8A275202E654400175FDC /* White */, - ); - path = AlternateIcons; - sourceTree = ""; - }; - 14F8A211202E5B3200175FDC /* Black */ = { - isa = PBXGroup; - children = ( - 14F8A219202E5CBE00175FDC /* Black-29@2x.png */, - 14F8A213202E5CBD00175FDC /* Black-29@3x.png */, - 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */, - 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */, - 14F8A218202E5CBE00175FDC /* Black-60@2x.png */, - 14F8A217202E5CBE00175FDC /* Black-60@3x.png */, - 14F8A216202E5CBE00175FDC /* Black-76@2x.png */, - 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */, - 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */, - ); - path = Black; - sourceTree = ""; - }; - 14F8A212202E5B3B00175FDC /* Red */ = { - isa = PBXGroup; - children = ( - 14F8A232202E5D0400175FDC /* Red-29@2x.png */, - 14F8A230202E5D0400175FDC /* Red-29@3x.png */, - 14F8A236202E5D0500175FDC /* Red-40@2x.png */, - 14F8A235202E5D0500175FDC /* Red-40@3x.png */, - 14F8A234202E5D0400175FDC /* Red-60@2x.png */, - 14F8A22F202E5D0400175FDC /* Red-60@3x.png */, - 14F8A233202E5D0400175FDC /* Red-76@2x.png */, - 14F8A238202E5D0600175FDC /* Red-76@3x.png */, - 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */, - ); - path = Red; - sourceTree = ""; - }; - 14F8A247202E649F00175FDC /* BnW */ = { - isa = PBXGroup; - children = ( - 14F8A24D202E64B100175FDC /* BnW-29@2x.png */, - 14F8A250202E64B100175FDC /* BnW-29@3x.png */, - 14F8A252202E64B100175FDC /* BnW-40@2x.png */, - 14F8A24C202E64B100175FDC /* BnW-40@3x.png */, - 14F8A24E202E64B100175FDC /* BnW-60@2x.png */, - 14F8A24F202E64B100175FDC /* BnW-60@3x.png */, - 14F8A251202E64B100175FDC /* BnW-76@2x.png */, - 14F8A254202E64B200175FDC /* BnW-76@3x.png */, - 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */, - ); - path = BnW; - sourceTree = ""; - }; - 14F8A262202E653600175FDC /* Grey */ = { - isa = PBXGroup; - children = ( - 14F8A264202E653D00175FDC /* Grey-29@2x.png */, - 14F8A269202E653E00175FDC /* Grey-29@3x.png */, - 14F8A263202E653D00175FDC /* Grey-40@2x.png */, - 14F8A268202E653E00175FDC /* Grey-40@3x.png */, - 14F8A26B202E653E00175FDC /* Grey-60@2x.png */, - 14F8A26A202E653E00175FDC /* Grey-60@3x.png */, - 14F8A267202E653D00175FDC /* Grey-76@2x.png */, - 14F8A265202E653D00175FDC /* Grey-76@3x.png */, - 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */, - ); - path = Grey; - sourceTree = ""; - }; - 14F8A275202E654400175FDC /* White */ = { - isa = PBXGroup; - children = ( - 14F8A27D202E658F00175FDC /* White-29@2x.png */, - 14F8A27C202E658F00175FDC /* White-29@3x.png */, - 14F8A27E202E658F00175FDC /* White-40@2x.png */, - 14F8A278202E658E00175FDC /* White-40@3x.png */, - 14F8A27B202E658F00175FDC /* White-60@2x.png */, - 14F8A27F202E658F00175FDC /* White-60@3x.png */, - 14F8A277202E658E00175FDC /* White-76@2x.png */, - 14F8A279202E658E00175FDC /* White-76@3x.png */, - 14F8A27A202E658F00175FDC /* White-83.5@2x.png */, - ); - path = White; - sourceTree = ""; - }; - 14F8A276202E654900175FDC /* Blue */ = { - isa = PBXGroup; - children = ( - 14F8A28F202E65C700175FDC /* Blue-29@2x.png */, - 14F8A289202E65C500175FDC /* Blue-29@3x.png */, - 14F8A28E202E65C600175FDC /* Blue-40@2x.png */, - 14F8A290202E65C700175FDC /* Blue-40@3x.png */, - 14F8A28A202E65C600175FDC /* Blue-60@2x.png */, - 14F8A28B202E65C600175FDC /* Blue-60@3x.png */, - 14F8A291202E65C700175FDC /* Blue-76@2x.png */, - 14F8A28C202E65C600175FDC /* Blue-76@3x.png */, - 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */, - ); - path = Blue; - sourceTree = ""; - }; - 3330329F2073905900A9514D /* SubscriptionManager */ = { - isa = PBXGroup; - children = ( - 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */, - 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */, - 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */, - 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */, - 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */, - ); - path = SubscriptionManager; - sourceTree = ""; - }; - 33A5C9C0206A565800FE1C8F /* Emojis */ = { - isa = PBXGroup; - children = ( - 33A5C9C8206A565800FE1C8F /* activity.json */, - 33A5C9C4206A565800FE1C8F /* flags.json */, - 33A5C9C7206A565800FE1C8F /* food.json */, - 33A5C9C9206A565800FE1C8F /* nature.json */, - 33A5C9C6206A565800FE1C8F /* objects.json */, - 33A5C9C5206A565800FE1C8F /* people.json */, - 33A5C9C3206A565800FE1C8F /* regional.json */, - 33A5C9C1206A565800FE1C8F /* symbols.json */, - 33A5C9C2206A565800FE1C8F /* travel.json */, - ); - path = Emojis; - sourceTree = ""; - }; - 33F73B292073BDD800F03F29 /* Notification */ = { - isa = PBXGroup; - children = ( - 33F73B2B2073BDF400F03F29 /* NotificationView.swift */, - 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */, - ); - path = Notification; - sourceTree = ""; - }; - 33F73B2E2073F1FC00F03F29 /* Notification */ = { - isa = PBXGroup; - children = ( - 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */, - 333207FE20766E4F00AD3290 /* NotificationViewController.xib */, - ); - path = Notification; - sourceTree = ""; - }; - 4102E3AB1E53272C004BAA82 /* Preferences */ = { - isa = PBXGroup; - children = ( - 0B3A9767202C75A60019CA92 /* ChangeAppIcon */, - 0B9AB2BF20444EB300ABEA05 /* Language */, - 99282260204DE0AE005D2067 /* Profile */, - 9960C82E2063F091004A034C /* Web Browser */, - 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, - 4129937D208E25C100E12C49 /* PreferencesViewController.swift */, - 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */, - ); - path = Preferences; - sourceTree = ""; - }; - 411EDECE1E30F2D700BC7BE3 /* Uploader */ = { - isa = PBXGroup; - children = ( - 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */, - 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */, - ); - path = Uploader; - sourceTree = ""; - }; - 414A1FF41D4631F600093E10 /* Response */ = { - isa = PBXGroup; - children = ( - 414A1FF51D46320F00093E10 /* ResponseMessage.swift */, - 807371991F94E83600D53ADF /* SocketError.swift */, - 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */, - 414A1FFB1D46395900093E10 /* SocketResponse.swift */, - ); - path = Response; - sourceTree = ""; - }; - 414EFF901E54FE35004F001F /* Models */ = { - isa = PBXGroup; - children = ( - 414EFF911E54FE69004F001F /* AuthExtensions.swift */, - 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */, - 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */, - 41D7CA861E644E47000F38EA /* MessageExtensions.swift */, - D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */, - 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */, - ); - path = Models; - sourceTree = ""; - }; - 41534EE0208E43FF009C5A17 /* Launcher */ = { - isa = PBXGroup; - children = ( - 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */, - ); - path = Launcher; - sourceTree = ""; - }; - 4153E80320504BC800FBC26B /* Preferences */ = { - isa = PBXGroup; - children = ( - 4153E80420504BE700FBC26B /* ReusableViewText.swift */, - 412EF3C52050507C001689A3 /* ReusableViewText.xib */, - ); - path = Preferences; - sourceTree = ""; - }; - 41552F641D30307D0081438D /* Model */ = { - isa = PBXGroup; - children = ( - 8076FDB72048580A00114F28 /* AuthManager */, - 3330329F2073905900A9514D /* SubscriptionManager */, - 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */, - 805DEC341FFC03380033151B /* CustomEmojiManager.swift */, - 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */, - 41DC7A1C1D38471700896FC0 /* MessageManager.swift */, - 806401341FB09F8A00990572 /* PermissionManager.swift */, - 4162E1521D651A8800AAAE49 /* UserManager.swift */, - ); - path = Model; - sourceTree = ""; - }; - 41552F691D3035DB0081438D /* Managers */ = { - isa = PBXGroup; - children = ( - 41534EE0208E43FF009C5A17 /* Launcher */, - 419D78851FBDCF5A005FC7A2 /* Requests */, - 417A70011D47916C00FF46EE /* Socket */, - 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */, - 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */, - 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */, - 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */, - 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */, - 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */, - 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */, - 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */, - 411119B71F6825C30019854B /* NetworkManagerSpec.swift */, - 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */, - 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */, - 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */, - 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */, - 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */, - B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */, - 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */, - ); - path = Managers; - sourceTree = ""; - }; - 4161332F1D46CA2800E09DA2 /* Views */ = { - isa = PBXGroup; - children = ( - 41C275DD1D847FEE003C88CF /* Avatar */, - 416133301D46CA3100E09DA2 /* Cells */, - 41F167E51DAC450200775CCA /* Chat */, - 897083CC1F8CF08100233561 /* Form */, - 41ADDD471E9DBAE90007A458 /* Loader */, - 33F73B292073BDD800F03F29 /* Notification */, - 418C4DC41DC4C05000ABED4C /* Sections */, - 41A91AED1E51C4E5005C94B1 /* Subscriptions */, - 7758A7621F8FA34300FAA244 /* UIPickerView */, - ); - path = Views; - sourceTree = ""; - }; - 416133301D46CA3100E09DA2 /* Cells */ = { - isa = PBXGroup; - children = ( - 416133351D46CA7400E09DA2 /* Chat */, - 4153E80320504BC800FBC26B /* Preferences */, - 4192054A1D52F4E7004EEC5F /* Subscription */, - 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */, - 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 416133351D46CA7400E09DA2 /* Chat */ = { - isa = PBXGroup; - children = ( - 800FCD431F728E6A00D9A692 /* Info */, - 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */, - 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */, - 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */, - 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */, - 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */, - 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */, - 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */, - 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */, - 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */, - 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, - 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, - 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */, - 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */, - 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */, - 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, - 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, - 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */, - 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */, - 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, - 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, - 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, - 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, - 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, - 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, - D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, - 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, - 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, - D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, - 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, - 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, - 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */, - 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */, - 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, - 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, - ); - path = Chat; - sourceTree = ""; - }; - 416133361D46DB0900E09DA2 /* Models */ = { - isa = PBXGroup; - children = ( - 77C261281F97453600724A1F /* CustomFields */, - 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */, - 77C261241F97445300724A1F /* AuthSettingsSpec.swift */, - 416133391D46E0A200E09DA2 /* AuthSpec.swift */, - 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */, - D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */, - 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */, - 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */, - 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */, - 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */, - 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */, - D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */, - 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */, - 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */, - 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */, - 808792371FB14B3300EFE77F /* PermissionSpec.swift */, - 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */, - 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */, - 4161333B1D46E32F00E09DA2 /* UserSpec.swift */, - ); - path = Models; - sourceTree = ""; - }; - 416296F71F41B41100BCCEDD /* Helpers */ = { - isa = PBXGroup; - children = ( - 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */, - 35BCD302201A9FB800B4BE5A /* AskSpec.swift */, - 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */, - 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */, - 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - 4171ABA31E7C0556009FC3F0 /* Views */ = { - isa = PBXGroup; - children = ( - D3CFAFBE1E907FC100BADC0A /* Chat */, - 140C84EA1FC9DB9600032A59 /* CreateChannel */, - 418C743F1FA3626200499577 /* UIPickerView */, - 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */, - 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */, - ); - path = Views; - sourceTree = ""; - }; - 4174CB0A1D2D990F0086DAC8 /* Controllers */ = { - isa = PBXGroup; - children = ( - 4174CB101D2D997E0086DAC8 /* Auth */, - 4174CB111D2D99840086DAC8 /* Base */, - 41E2FA021D414ECC00238DFD /* Chat */, - 140A95E2202F5321003FD564 /* Drawing */, - 33F73B2E2073F1FC00F03F29 /* Notification */, - 4102E3AB1E53272C004BAA82 /* Preferences */, - 41E2FA031D414ED400238DFD /* Subscriptions */, - 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */, - ); - path = Controllers; - sourceTree = ""; - }; - 4174CB0B1D2D99170086DAC8 /* Storyboards */ = { - isa = PBXGroup; - children = ( - 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */, - 41E2F9FE1D414DE800238DFD /* Chat.storyboard */, - 140A95E0202F526C003FD564 /* Drawing.storyboard */, - 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */, - 4102E3A91E532323004BAA82 /* Preferences.storyboard */, - 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */, - ); - path = Storyboards; - sourceTree = ""; - }; - 4174CB101D2D997E0086DAC8 /* Auth */ = { - isa = PBXGroup; - children = ( - 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */, - 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */, - 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */, - 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */, - 80D955C1202154A300E3F281 /* CASViewController.swift */, - 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */, - 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */, - 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */, - 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */, - 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */, - 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */, - 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */, - ); - path = Auth; - sourceTree = ""; - }; - 4174CB111D2D99840086DAC8 /* Base */ = { - isa = PBXGroup; - children = ( - 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */, - 4174CB121D2D99960086DAC8 /* BaseViewController.swift */, - ); - path = Base; - sourceTree = ""; - }; - 4174CB181D2D9D940086DAC8 /* Managers */ = { - isa = PBXGroup; - children = ( - D32E28201DFD86AC00D6019C /* Launcher */, - 41552F641D30307D0081438D /* Model */, - 419D78811FBDB78D005FC7A2 /* Requests */, - 41F1702C1D425358007E6948 /* Socket */, - 411EDECE1E30F2D700BC7BE3 /* Uploader */, - 4101BF001F8D0A1700F67E89 /* AppManager.swift */, - 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */, - 419ECCA31F3CA21A005F224B /* DownloadManager.swift */, - 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */, - 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */, - D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */, - 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */, - 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */, - 335F4F02207A31D3005E14AF /* NotificationManager.swift */, - 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */, - 597ECBA31E3708B10041C5C5 /* PushManager.swift */, - 41499C8E1F2A116900790EA7 /* ServerManager.swift */, - B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */, - 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */, - 41B554C61FBF0F9D000510B7 /* WindowManager.swift */, - ); - path = Managers; - sourceTree = ""; - }; - 4174CB1D1D2DB3270086DAC8 /* Extensions */ = { - isa = PBXGroup; - children = ( - 8013F8631FD5E11100EE1A4E /* API */, - 414EFF901E54FE35004F001F /* Models */, - 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */, - 597ECBA11E3708A50041C5C5 /* DataExtension.swift */, - 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */, - 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */, - 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */, - D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */, - 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */, - 8076FDA8204853DE00114F28 /* RealmExecute.swift */, - 8076FDA32048533000114F28 /* String+Random.swift */, - 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */, - 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */, - 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */, - D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */, - 41494B911D63C6280004F369 /* UIImageExtension.swift */, - 419205481D52EDE6004EEC5F /* UILabelExtension.swift */, - 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */, - 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */, - 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */, - 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */, - 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */, - 41BAE3E61D71B26C00C2445A /* URLExtension.swift */, - 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - 417A70011D47916C00FF46EE /* Socket */ = { - isa = PBXGroup; - children = ( - 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */, - 41552F671D3035D80081438D /* SocketManagerSpec.swift */, - ); - path = Socket; - sourceTree = ""; - }; - 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */ = { - isa = PBXGroup; - children = ( - 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */, - 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */, - ); - path = WebViewEmbedded; - sourceTree = ""; - }; - 418C4DC41DC4C05000ABED4C /* Sections */ = { - isa = PBXGroup; - children = ( - 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */, - 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */, - 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */, - 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */, - ); - path = Sections; - sourceTree = ""; - }; - 418C743F1FA3626200499577 /* UIPickerView */ = { - isa = PBXGroup; - children = ( - 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */, - 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */, - ); - path = UIPickerView; - sourceTree = ""; - }; - 4192054A1D52F4E7004EEC5F /* Subscription */ = { - isa = PBXGroup; - children = ( - 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */, - 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */, - 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */, - 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */, - 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 4199A9861DABCC2E0035F820 /* External */ = { - isa = PBXGroup; - children = ( - 4199A9871DABCC570035F820 /* RCEmojiKit */, - ); - path = External; - sourceTree = ""; - }; - 4199A9871DABCC570035F820 /* RCEmojiKit */ = { - isa = PBXGroup; - children = ( - 33A5C9C0206A565800FE1C8F /* Emojis */, - 80A97EFD200628A300A2774C /* Views */, - 8069D26D1FFF876D00C75926 /* Emoji.swift */, - 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */, - 807FB53C2044B49800E21429 /* Emojione+Transform.swift */, - 4199A9881DABCC570035F820 /* Emojione.swift */, - 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */, - 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */, - 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */, - 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */, - 33A5C9BD206A561400FE1C8F /* emojiNames.json */, - ); - path = RCEmojiKit; - sourceTree = ""; - }; - 419D78811FBDB78D005FC7A2 /* Requests */ = { - isa = PBXGroup; - children = ( - 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */, - ); - path = Requests; - sourceTree = ""; - }; - 419D78851FBDCF5A005FC7A2 /* Requests */ = { - isa = PBXGroup; - children = ( - 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */, - ); - path = Requests; - sourceTree = ""; - }; - 41A79C0D1D2F084F00A1968E /* Models */ = { - isa = PBXGroup; - children = ( - 8076FDAC2048566100114F28 /* Auth */, - 41BD37D71E290D7400CBC4C2 /* Base */, - 7798B4131F852AE30074B2F4 /* CustomFields */, - 41BD37DF1E290F1500CBC4C2 /* Handler */, - 41BD37DE1E290F1000CBC4C2 /* Mapping */, - 8076FDCF2048644300114F28 /* Message */, - 8076FDC120485A0B00114F28 /* Subscription */, - 8076FDD4204864D400114F28 /* User */, - 41900C261D9FE35400308EF4 /* Attachment.swift */, - 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */, - 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */, - 8013F8661FD6B4F400EE1A4E /* Command.swift */, - 805DEC361FFC08870033151B /* CustomEmoji.swift */, - 8073719F1F96937100D53ADF /* LoginService.swift */, - 806401301FB09DE800990572 /* Permission.swift */, - ); - path = Models; - sourceTree = ""; - }; - 41A91AED1E51C4E5005C94B1 /* Subscriptions */ = { - isa = PBXGroup; - children = ( - 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */, - 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */, - 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */, - A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */, - ); - path = Subscriptions; - sourceTree = ""; - }; - 41ADDD471E9DBAE90007A458 /* Loader */ = { - isa = PBXGroup; - children = ( - 41ADDD481E9DBB100007A458 /* LoaderView.swift */, - ); - path = Loader; - sourceTree = ""; - }; - 41B96363207E48690068F1A6 /* Validators */ = { - isa = PBXGroup; - children = ( - 41B96361207E48260068F1A6 /* MessageTextValidator.swift */, - ); - path = Validators; - sourceTree = ""; - }; - 41BD37D71E290D7400CBC4C2 /* Base */ = { - isa = PBXGroup; - children = ( - 4112DC551FFFB9B1005995E1 /* BaseModel.swift */, - 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */, - 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */, - ); - path = Base; - sourceTree = ""; - }; - 41BD37DE1E290F1000CBC4C2 /* Mapping */ = { - isa = PBXGroup; - children = ( - 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */, - 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */, - D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */, - 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */, - 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */, - D10E9C211F643616007F1796 /* MentionModelMapping.swift */, - 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */, - 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */, - 806401321FB09EC400990572 /* PermissionModelMapping.swift */, - 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */, - 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */, - ); - path = Mapping; - sourceTree = ""; - }; - 41BD37DF1E290F1500CBC4C2 /* Handler */ = { - isa = PBXGroup; - children = ( - 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */, - 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */, - 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */, - ); - path = Handler; - sourceTree = ""; - }; - 41C275DD1D847FEE003C88CF /* Avatar */ = { - isa = PBXGroup; - children = ( - 41C275DE1D848005003C88CF /* AvatarView.swift */, - 41C275E01D84815C003C88CF /* AvatarView.xib */, - ); - path = Avatar; - sourceTree = ""; - }; - 41D701D41E67103C00FED2EE /* Helpers */ = { - isa = PBXGroup; - children = ( - 41B96363207E48690068F1A6 /* Validators */, - 80307E3A1FD75BD3006AD9EF /* VoiceOver */, - 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */, - 802A4E23204D730F0072CD23 /* AppGroup.swift */, - 35BCD300201A57EA00B4BE5A /* Ask.swift */, - 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */, - 800F38EC2019492D0005CB78 /* DeepLink.swift */, - 80DC9A6B206BA95600032BE0 /* Localized.swift */, - 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */, - 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */, - 413996161F3B44500075F96E /* UploadHelper.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - 41DC7A201D386B2C00896FC0 /* Extensions */ = { - isa = PBXGroup; - children = ( - 80E99F2A1FD8B4AC00B70B59 /* API */, - 80E99F2D1FD8B4E200B70B59 /* Models */, - 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */, - 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */, - D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */, - 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */, - 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */, - 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - 41DF76D61D2C50710028DBF8 = { - isa = PBXGroup; - children = ( - 106DAA428B5BF7289FB70C65 /* Frameworks */, - EE693BBD0CC2727847214E2D /* Pods */, - 41DF76E01D2C50710028DBF8 /* Products */, - 41DF76E11D2C50710028DBF8 /* Rocket.Chat */, - 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */, - 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */, - 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */, - ); - sourceTree = ""; - }; - 41DF76E01D2C50710028DBF8 /* Products */ = { - isa = PBXGroup; - children = ( - 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */, - 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */, - 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */, - 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */, - ); - name = Products; - sourceTree = ""; - }; - 41DF76E11D2C50710028DBF8 /* Rocket.Chat */ = { - isa = PBXGroup; - children = ( - D1D535EA1F7081E6006625D2 /* API */, - 4174CB0A1D2D990F0086DAC8 /* Controllers */, - 4174CB1D1D2DB3270086DAC8 /* Extensions */, - 4199A9861DABCC2E0035F820 /* External */, - 41D701D41E67103C00FED2EE /* Helpers */, - 4174CB181D2D9D940086DAC8 /* Managers */, - 41A79C0D1D2F084F00A1968E /* Models */, - 0B3A9760202C4DE10019CA92 /* Resources */, - 4174CB0B1D2D99170086DAC8 /* Storyboards */, - 4161332F1D46CA2800E09DA2 /* Views */, - 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */, - 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, - 3353DBF7206787E500738D1C /* Themeable.swift */, - 41DF76EE1D2C50720028DBF8 /* Info.plist */, - 41833F4D1DEF16B600E54655 /* Keys.plist */, - 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, - 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */, - ); - path = Rocket.Chat; - sourceTree = ""; - }; - 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */ = { - isa = PBXGroup; - children = ( - D18675E71F70A55D00406FB4 /* API */, - D1DA25261F695AC700DB6ABB /* Controllers */, - 41DC7A201D386B2C00896FC0 /* Extensions */, - 80A97EFE2006291E00A2774C /* External */, - 416296F71F41B41100BCCEDD /* Helpers */, - 41552F691D3035DB0081438D /* Managers */, - 416133361D46DB0900E09DA2 /* Models */, - 925FF74F1E8EFC9200982043 /* Preferences */, - 4171ABA31E7C0556009FC3F0 /* Views */, - 41DF76F91D2C50720028DBF8 /* Info.plist */, - 803782B61FB4751D00DED049 /* RealmTestCase.swift */, - ); - path = Rocket.ChatTests; - sourceTree = ""; - }; - 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */ = { - isa = PBXGroup; - children = ( - 41DF77041D2C50720028DBF8 /* Info.plist */, - 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */, - ); - path = Rocket.ChatUITests; - sourceTree = ""; - }; - 41E2FA021D414ECC00238DFD /* Chat */ = { - isa = PBXGroup; - children = ( - 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */, - 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */, - 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */, - 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */, - 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */, - 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */, - 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */, - 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */, - 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */, - 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */, - 41E2FA061D41513C00238DFD /* ChatViewController.swift */, - 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */, - 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */, - 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */, - 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */, - ); - path = Chat; - sourceTree = ""; - }; - 41E2FA031D414ED400238DFD /* Subscriptions */ = { - isa = PBXGroup; - children = ( - 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */, - 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */, - 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */, - 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */, - ); - path = Subscriptions; - sourceTree = ""; - }; - 41F167E51DAC450200775CCA /* Chat */ = { - isa = PBXGroup; - children = ( - 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */, - 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */, - 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */, - 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */, - 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */, - 339B6929205042D300F97392 /* KeyboardFrameView.swift */, - 1435BFA21F9B601600FB2768 /* RCTextView.swift */, - 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */, - 80CFB5711F8D697100FC9715 /* ReplyView.xib */, - ); - path = Chat; - sourceTree = ""; - }; - 41F1702C1D425358007E6948 /* Socket */ = { - isa = PBXGroup; - children = ( - 414A1FF41D4631F600093E10 /* Response */, - 414A1FF91D46395400093E10 /* SocketManager.swift */, - ); - path = Socket; - sourceTree = ""; - }; - 7758A7621F8FA34300FAA244 /* UIPickerView */ = { - isa = PBXGroup; - children = ( - 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */, - 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */, - ); - path = UIPickerView; - sourceTree = ""; - }; - 7798B4131F852AE30074B2F4 /* CustomFields */ = { - isa = PBXGroup; - children = ( - 7798B4181F852D670074B2F4 /* CustomField.swift */, - 7798B4141F852B720074B2F4 /* SelectField.swift */, - 77BA81501F87C4CB00F295F4 /* TextField.swift */, - ); - path = CustomFields; - sourceTree = ""; - }; - 77C261281F97453600724A1F /* CustomFields */ = { - isa = PBXGroup; - children = ( - 77C261291F97453600724A1F /* CustomFieldsSpec.swift */, - 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */, - 77C2612B1F97453600724A1F /* TextFieldSpec.swift */, - ); - path = CustomFields; - sourceTree = ""; - }; - 80054CFA1FDAFD3A00F5ECF9 /* General */ = { - isa = PBXGroup; - children = ( - D1D535F01F70864C006625D2 /* InfoRequest.swift */, - 807C7C11207522EF006B600E /* LoginServicesRequest.swift */, - 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */, - 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */, - 807C7C0720751EDB006B600E /* SpotlightRequest.swift */, - ); - path = General; - sourceTree = ""; - }; - 800FCD431F728E6A00D9A692 /* Info */ = { - isa = PBXGroup; - children = ( - 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */, - 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */, - 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */, - 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */, - 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */, - 800FCD491F728E6A00D9A692 /* MemberCell.swift */, - 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */, - ); - path = Info; - sourceTree = ""; - }; - 8013F8631FD5E11100EE1A4E /* API */ = { - isa = PBXGroup; - children = ( - 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */, - ); - path = API; - sourceTree = ""; - }; - 8013F86E1FD6B59D00EE1A4E /* Clients */ = { - isa = PBXGroup; - children = ( - 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */, - 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */, - 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */, - 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */, - 807C7C0520751ED1006B600E /* SpotlightClient.swift */, - 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */, - ); - path = Clients; - sourceTree = ""; - }; - 8013F8741FD6B5D100EE1A4E /* Middlewares */ = { - isa = PBXGroup; - children = ( - 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */, - ); - path = Middlewares; - sourceTree = ""; - }; - 8013F8771FD6B61400EE1A4E /* Middlewares */ = { - isa = PBXGroup; - children = ( - 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */, - ); - path = Middlewares; - sourceTree = ""; - }; - 8013F87E1FD6B66900EE1A4E /* Clients */ = { - isa = PBXGroup; - children = ( - 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */, - 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */, - 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */, - 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */, - ); - path = Clients; - sourceTree = ""; - }; - 8013F8831FD6B74800EE1A4E /* Command */ = { - isa = PBXGroup; - children = ( - 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */, - 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */, - ); - path = Command; - sourceTree = ""; - }; - 8013F88A1FD6B79900EE1A4E /* Command */ = { - isa = PBXGroup; - children = ( - 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */, - ); - path = Command; - sourceTree = ""; - }; - 8020CCF31FEAD8AA003424F4 /* EmojiPicker */ = { - isa = PBXGroup; - children = ( - 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */, - 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */, - 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */, - 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */, - ); - path = EmojiPicker; - sourceTree = ""; - }; - 80213C0F1FE063B200809E14 /* HTTP */ = { - isa = PBXGroup; - children = ( - 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */, - ); - path = HTTP; - sourceTree = ""; - }; - 80235D1C1F740AAC00A56CA5 /* Subscription */ = { - isa = PBXGroup; - children = ( - 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */, - 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */, - 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */, - 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */, - 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 80235D201F7442C100A56CA5 /* Subscription */ = { - isa = PBXGroup; - children = ( - 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */, - 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */, - 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */, - 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 802498EC1F7A82CD005477EC /* Authentication */ = { - isa = PBXGroup; - children = ( - D18675EB1F716A0D00406FB4 /* LoginRequest.swift */, - 802498ED1F7A8380005477EC /* MeRequest.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 802498EF1F7A9B92005477EC /* Authentication */ = { - isa = PBXGroup; - children = ( - D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */, - 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 80307E3A1FD75BD3006AD9EF /* VoiceOver */ = { - isa = PBXGroup; - children = ( - 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */, - 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */, - ); - path = VoiceOver; - sourceTree = ""; - }; - 806C2ACE206BBAF200EE5F67 /* External */ = { - isa = PBXGroup; - children = ( - 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */, - ); - path = External; - sourceTree = ""; - }; - 806C59A01FBB0BA700C32D0A /* Message */ = { - isa = PBXGroup; - children = ( - 806728FE20079734009FE94D /* DeleteMessageRequest.swift */, - 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */, - 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */, - 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */, - 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */, - 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */, - ); - path = Message; - sourceTree = ""; - }; - 806C59A31FBB2F3700C32D0A /* Message */ = { - isa = PBXGroup; - children = ( - 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */, - 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */, - 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */, - 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */, - ); - path = Message; - sourceTree = ""; - }; - 8076FDAC2048566100114F28 /* Auth */ = { - isa = PBXGroup; - children = ( - 41A79C121D2F09F200A1968E /* Auth.swift */, - 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */, - 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */, - 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */, - 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */, - 8076FDB42048571200114F28 /* AuthUser.swift */, - ); - path = Auth; - sourceTree = ""; - }; - 8076FDB72048580A00114F28 /* AuthManager */ = { - isa = PBXGroup; - children = ( - 41552F651D30308C0081438D /* AuthManager.swift */, - 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */, - 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */, - 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */, - ); - path = AuthManager; - sourceTree = ""; - }; - 8076FDC120485A0B00114F28 /* Subscription */ = { - isa = PBXGroup; - children = ( - 41DAE93D1D318F350098E068 /* Subscription.swift */, - 8076FDC62048632300114F28 /* SubscriptionQueries.swift */, - 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */, - 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 8076FDCF2048644300114F28 /* Message */ = { - isa = PBXGroup; - children = ( - D10E9C191F643457007F1796 /* Channel.swift */, - 4159720B1D3DB854002258F4 /* Email.swift */, - 4159720D1D3DB882002258F4 /* Mention.swift */, - 41DC7A1A1D38454500896FC0 /* Message.swift */, - 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */, - 8076FDD02048646500114F28 /* MessageReply.swift */, - 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */, - ); - path = Message; - sourceTree = ""; - }; - 8076FDD4204864D400114F28 /* User */ = { - isa = PBXGroup; - children = ( - 41A79C0E1D2F085F00A1968E /* User.swift */, - 8076FDD5204864E700114F28 /* UserQueries.swift */, - 8076FDD72048654F00114F28 /* UserUtils.swift */, - ); - path = User; - sourceTree = ""; - }; - 8076FDE02048A69200114F28 /* Compose */ = { - isa = PBXGroup; - children = ( - 80D563702058A8A7008896D6 /* Cells */, - 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */, - 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */, - 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */, - 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */, - 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */, - ); - path = Compose; - sourceTree = ""; - }; - 8076FDEB2049A5CB00114F28 /* Base */ = { - isa = PBXGroup; - children = ( - 80D0CE6E20509C100056B17F /* SEAvatarView.swift */, - 80D0CE7020509C230056B17F /* SEAvatarView.xib */, - 80D0CE61205023710056B17F /* SECell.swift */, - 8076FDEC2049A5F600114F28 /* SECellModel.swift */, - 802A4E102049C7340072CD23 /* SENavigationController.swift */, - 8076FDD920489F5900114F28 /* SEViewController.swift */, - 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */, - ); - path = Base; - sourceTree = ""; - }; - 807C7C0A20751F06006B600E /* General */ = { - isa = PBXGroup; - children = ( - D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */, - 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */, - 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */, - ); - path = General; - sourceTree = ""; - }; - 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { - isa = PBXGroup; - children = ( - 8076FDEB2049A5CB00114F28 /* Base */, - 8076FDE02048A69200114F28 /* Compose */, - 806C2ACE206BBAF200EE5F67 /* External */, - 80D5637320593245008896D6 /* Helpers */, - 807FB56C20472B2700E21429 /* Resources */, - 807FB57E2048376900E21429 /* Rooms */, - 807FB5802048378500E21429 /* Servers */, - 80977AC0204F374100C41435 /* State */, - 807FB55F2046E7DD00E21429 /* Info.plist */, - 807FB55C2046E7DD00E21429 /* Main.storyboard */, - 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */, - ); - path = Rocket.Chat.ShareExtension; - sourceTree = ""; - }; - 807FB56C20472B2700E21429 /* Resources */ = { - isa = PBXGroup; - children = ( - 80D5637120592D32008896D6 /* Assets.xcassets */, - 807FB57120472B6A00E21429 /* Localizable.strings */, - ); - path = Resources; - sourceTree = ""; - }; - 807FB57E2048376900E21429 /* Rooms */ = { - isa = PBXGroup; - children = ( - 80D0CE6520503C860056B17F /* SERoomCell.swift */, - 80D0CE6720503C970056B17F /* SERoomCell.xib */, - 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */, - 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */, - 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */, - ); - path = Rooms; - sourceTree = ""; - }; - 807FB5802048378500E21429 /* Servers */ = { - isa = PBXGroup; - children = ( - 80D0CE5F205016B40056B17F /* SEServerCell.swift */, - 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */, - 80D0CE63205034280056B17F /* SEServerCellModel.swift */, - 807FB568204729E500E21429 /* SEServersViewController.swift */, - 807FB581204837AF00E21429 /* SEServersViewModel.swift */, - ); - path = Servers; - sourceTree = ""; - }; - 80977AB7204EFBBB00C41435 /* Navigation */ = { - isa = PBXGroup; - children = ( - 80977AB8204EFBCC00C41435 /* SENavigation.swift */, - 800640F62049BA25006D990F /* SEScene.swift */, - 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */, - ); - path = Navigation; - sourceTree = ""; - }; - 80977AC0204F374100C41435 /* State */ = { - isa = PBXGroup; - children = ( - 80FA907B2057F43F0069038F /* ActionCreators */, - 80977AB7204EFBBB00C41435 /* Navigation */, - 80FA9064205313D10069038F /* Resources */, - 80977ABE204F36F200C41435 /* SESearchState.swift */, - 80977AC1204F37C200C41435 /* SEState.swift */, - 8076FD9920484A6000114F28 /* SEStore.swift */, - ); - path = State; - sourceTree = ""; - }; - 809B530C1FE2EF7C00833DD2 /* Reaction */ = { - isa = PBXGroup; - children = ( - 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */, - 809B53131FE3294400833DD2 /* ReactionListView.xib */, - 809B530F1FE2F17D00833DD2 /* ReactionView.swift */, - 809B53111FE2F2F900833DD2 /* ReactionView.xib */, - 8041C0412028C7EF007E21FA /* ReactorListView.swift */, - 8041C0432028C828007E21FA /* ReactorListView.xib */, - 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */, - ); - path = Reaction; - sourceTree = ""; - }; - 80A97EFD200628A300A2774C /* Views */ = { - isa = PBXGroup; - children = ( - 8020CCF31FEAD8AA003424F4 /* EmojiPicker */, - 809B530C1FE2EF7C00833DD2 /* Reaction */, - 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */, - 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */, - 806465ED1FED1AFE001F27DB /* EmojiView.swift */, - 806465EB1FED19B9001F27DB /* EmojiView.xib */, - ); - path = Views; - sourceTree = ""; - }; - 80A97EFE2006291E00A2774C /* External */ = { - isa = PBXGroup; - children = ( - 80A97EFF2006292500A2774C /* RCEmojiKit */, - ); - path = External; - sourceTree = ""; - }; - 80A97EFF2006292500A2774C /* RCEmojiKit */ = { - isa = PBXGroup; - children = ( - 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */, - 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */, - ); - path = RCEmojiKit; - sourceTree = ""; - }; - 80D563702058A8A7008896D6 /* Cells */ = { - isa = PBXGroup; - children = ( - 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */, - 80FA906920569F890069038F /* SEComposeFileCell.swift */, - 80FA906B20569FA10069038F /* SEComposeFileCell.xib */, - 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */, - 80FA90712056C1190069038F /* SEComposeTextCell.swift */, - 80FA90732056C1350069038F /* SEComposeTextCell.xib */, - 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */, - 80FE8DEF206587510099170E /* SEFileDetailView.swift */, - 80FE8DED206584EA0099170E /* SEFileDetailView.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 80D5637320593245008896D6 /* Helpers */ = { - isa = PBXGroup; - children = ( - 80D563742059325A008896D6 /* MimeType.swift */, - 8029B2F12059B6F60067157B /* VideoInfo.swift */, - 80DC9A6F206BAC8B00032BE0 /* mimetype.json */, - ); - path = Helpers; - sourceTree = ""; - }; - 80E99F2A1FD8B4AC00B70B59 /* API */ = { - isa = PBXGroup; - children = ( - 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */, - ); - path = API; - sourceTree = ""; - }; - 80E99F2D1FD8B4E200B70B59 /* Models */ = { - isa = PBXGroup; - children = ( - 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */, - 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */, - ); - path = Models; - sourceTree = ""; - }; - 80FA9064205313D10069038F /* Resources */ = { - isa = PBXGroup; - children = ( - 80FA9065205313E20069038F /* SEContent.swift */, - 80FA9067205314040069038F /* SEServer.swift */, - ); - path = Resources; - sourceTree = ""; - }; - 80FA907B2057F43F0069038F /* ActionCreators */ = { - isa = PBXGroup; - children = ( - 80D5637620593533008896D6 /* ParseItemProviders.swift */, - 80977AB5204EEF1E00C41435 /* SelectServer.swift */, - 80FA907C2057F4650069038F /* SubmitContent.swift */, - ); - path = ActionCreators; - sourceTree = ""; - }; - 897083CC1F8CF08100233561 /* Form */ = { - isa = PBXGroup; - children = ( - 897083CD1F8CF08100233561 /* Cells */, - 897083D21F8CF08100233561 /* FormTableViewCell.swift */, - ); - path = Form; - sourceTree = ""; - }; - 897083CD1F8CF08100233561 /* Cells */ = { - isa = PBXGroup; - children = ( - 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */, - 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */, - 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */, - 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */, - 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */, - 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 925FF74F1E8EFC9200982043 /* Preferences */ = { - isa = PBXGroup; - children = ( - 140A95DC202F1E4D003FD564 /* AppIcon */, - 0BBCC2C0204546BB001E3B6D /* Language */, - 99F41BCC20658AD900B240FC /* Profile */, - 994DA2B12065480300083FB8 /* Web Browser */, - 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */, - ); - path = Preferences; - sourceTree = ""; - }; - 99282260204DE0AE005D2067 /* Profile */ = { - isa = PBXGroup; - children = ( - 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */, - 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */, - 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */, - 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */, - ); - path = Profile; - sourceTree = ""; - }; - 994DA2B12065480300083FB8 /* Web Browser */ = { - isa = PBXGroup; - children = ( - 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */, - ); - path = "Web Browser"; - sourceTree = ""; - }; - 9960C82E2063F091004A034C /* Web Browser */ = { - isa = PBXGroup; - children = ( - 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */, - 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */, - ); - path = "Web Browser"; - sourceTree = ""; - }; - 9977302520725B3A009AF465 /* Emoji */ = { - isa = PBXGroup; - children = ( - 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */, - ); - path = Emoji; - sourceTree = ""; - }; - 9977302820727DA0009AF465 /* Emoji */ = { - isa = PBXGroup; - children = ( - 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */, - ); - path = Emoji; - sourceTree = ""; - }; - 998165C8204EBB5E0059D346 /* User */ = { - isa = PBXGroup; - children = ( - 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */, - 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */, - 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */, - ); - path = User; - sourceTree = ""; - }; - 99D888F92046239100E51306 /* User */ = { - isa = PBXGroup; - children = ( - 99D888FA204623A900E51306 /* UpdateUserRequest.swift */, - 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */, - 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */, - ); - path = User; - sourceTree = ""; - }; - 99F41BCC20658AD900B240FC /* Profile */ = { - isa = PBXGroup; - children = ( - 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */, - 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */, - ); - path = Profile; - sourceTree = ""; - }; - D18675E71F70A55D00406FB4 /* API */ = { - isa = PBXGroup; - children = ( - 8013F87E1FD6B66900EE1A4E /* Clients */, - 8013F8771FD6B61400EE1A4E /* Middlewares */, - D18675E81F70A56800406FB4 /* Requests */, - 80A63C561F71D2E400FE5AC4 /* APISpec.swift */, - 8073719B1F963FA400D53ADF /* APITestCase.swift */, - 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */, - 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */, - ); - path = API; - sourceTree = ""; - }; - D18675E81F70A56800406FB4 /* Requests */ = { - isa = PBXGroup; - children = ( - 802498EF1F7A9B92005477EC /* Authentication */, - 8013F88A1FD6B79900EE1A4E /* Command */, - 9977302820727DA0009AF465 /* Emoji */, - 807C7C0A20751F06006B600E /* General */, - 806C59A31FBB2F3700C32D0A /* Message */, - 80235D201F7442C100A56CA5 /* Subscription */, - 998165C8204EBB5E0059D346 /* User */, - ); - path = Requests; - sourceTree = ""; - }; - D1D535EA1F7081E6006625D2 /* API */ = { - isa = PBXGroup; - children = ( - 8013F86E1FD6B59D00EE1A4E /* Clients */, - 80213C0F1FE063B200809E14 /* HTTP */, - 8013F8741FD6B5D100EE1A4E /* Middlewares */, - D1D535EF1F70863C006625D2 /* Requests */, - D1D535EB1F7081FA006625D2 /* API.swift */, - 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */, - 8013F8691FD6B59900EE1A4E /* APIError.swift */, - D1D535ED1F708628006625D2 /* APIRequest.swift */, - 8067DAA5206D1883005E3369 /* APIResource.swift */, - D15C83851F70991F001AB155 /* APIResponse.swift */, - 8013F8681FD6B59900EE1A4E /* Version.swift */, - ); - path = API; - sourceTree = ""; - }; - D1D535EF1F70863C006625D2 /* Requests */ = { - isa = PBXGroup; - children = ( - 802498EC1F7A82CD005477EC /* Authentication */, - 8013F8831FD6B74800EE1A4E /* Command */, - 9977302520725B3A009AF465 /* Emoji */, - 80054CFA1FDAFD3A00F5ECF9 /* General */, - 806C59A01FBB0BA700C32D0A /* Message */, - 80235D1C1F740AAC00A56CA5 /* Subscription */, - 99D888F92046239100E51306 /* User */, - ); - path = Requests; - sourceTree = ""; - }; - D1DA25261F695AC700DB6ABB /* Controllers */ = { - isa = PBXGroup; - children = ( - D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */, - 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */, - 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */, - 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */, - 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */, - ); - path = Controllers; - sourceTree = ""; - }; - D32E28201DFD86AC00D6019C /* Launcher */ = { - isa = PBXGroup; - children = ( - D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */, - D32E28221DFD86C300D6019C /* LauncherProtocol.swift */, - 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */, - 411119B51F680DB00019854B /* NetworkCoordinator.swift */, - D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */, - 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */, - ); - path = Launcher; - sourceTree = ""; - }; - D3CFAFBE1E907FC100BADC0A /* Chat */ = { - isa = PBXGroup; - children = ( - 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */, - 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */, - ); - path = Chat; - sourceTree = ""; - }; - EE693BBD0CC2727847214E2D /* Pods */ = { - isa = PBXGroup; - children = ( - BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */, - 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */, - 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */, - 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */, - AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */, - FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */, - 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */, - 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */, - F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; + 0B3A9760202C4DE10019CA92 /* Resources */ = { + isa = PBXGroup; + children = ( + 14F8A210202E5B2A00175FDC /* AlternateIcons */, + 41DF76E91D2C50710028DBF8 /* Assets.xcassets */, + 41EB22381E5F056600AA3AE7 /* Localizable.strings */, + 80307E431FD75DC0006AD9EF /* VoiceOver.strings */, + ); + path = Resources; + sourceTree = ""; + }; + 0B3A9767202C75A60019CA92 /* ChangeAppIcon */ = { + isa = PBXGroup; + children = ( + 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */, + 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */, + 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */, + ); + path = ChangeAppIcon; + sourceTree = ""; + }; + 0B9AB2BF20444EB300ABEA05 /* Language */ = { + isa = PBXGroup; + children = ( + 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */, + 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */, + 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */, + 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */, + ); + path = Language; + sourceTree = ""; + }; + 0BBCC2C0204546BB001E3B6D /* Language */ = { + isa = PBXGroup; + children = ( + 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */, + ); + path = Language; + sourceTree = ""; + }; + 106DAA428B5BF7289FB70C65 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */, + 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */, + 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 140A95DC202F1E4D003FD564 /* AppIcon */ = { + isa = PBXGroup; + children = ( + 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */, + ); + path = AppIcon; + sourceTree = ""; + }; + 140A95E2202F5321003FD564 /* Drawing */ = { + isa = PBXGroup; + children = ( + 14A6A82F20421DED008C210D /* Color Picker */, + 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */, + 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */, + 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */, + 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */, + 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */, + 140A95E3202F536D003FD564 /* DrawingViewController.swift */, + 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */, + ); + path = Drawing; + sourceTree = ""; + }; + 140C84EA1FC9DB9600032A59 /* CreateChannel */ = { + isa = PBXGroup; + children = ( + 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */, + ); + path = CreateChannel; + sourceTree = ""; + }; + 14A6A82F20421DED008C210D /* Color Picker */ = { + isa = PBXGroup; + children = ( + 14A6A83020421DF8008C210D /* ColorPickerView.swift */, + ); + path = "Color Picker"; + sourceTree = ""; + }; + 14F8A210202E5B2A00175FDC /* AlternateIcons */ = { + isa = PBXGroup; + children = ( + 14F8A211202E5B3200175FDC /* Black */, + 14F8A276202E654900175FDC /* Blue */, + 14F8A247202E649F00175FDC /* BnW */, + 14F8A262202E653600175FDC /* Grey */, + 14F8A212202E5B3B00175FDC /* Red */, + 14F8A275202E654400175FDC /* White */, + ); + path = AlternateIcons; + sourceTree = ""; + }; + 14F8A211202E5B3200175FDC /* Black */ = { + isa = PBXGroup; + children = ( + 14F8A219202E5CBE00175FDC /* Black-29@2x.png */, + 14F8A213202E5CBD00175FDC /* Black-29@3x.png */, + 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */, + 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */, + 14F8A218202E5CBE00175FDC /* Black-60@2x.png */, + 14F8A217202E5CBE00175FDC /* Black-60@3x.png */, + 14F8A216202E5CBE00175FDC /* Black-76@2x.png */, + 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */, + 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */, + ); + path = Black; + sourceTree = ""; + }; + 14F8A212202E5B3B00175FDC /* Red */ = { + isa = PBXGroup; + children = ( + 14F8A232202E5D0400175FDC /* Red-29@2x.png */, + 14F8A230202E5D0400175FDC /* Red-29@3x.png */, + 14F8A236202E5D0500175FDC /* Red-40@2x.png */, + 14F8A235202E5D0500175FDC /* Red-40@3x.png */, + 14F8A234202E5D0400175FDC /* Red-60@2x.png */, + 14F8A22F202E5D0400175FDC /* Red-60@3x.png */, + 14F8A233202E5D0400175FDC /* Red-76@2x.png */, + 14F8A238202E5D0600175FDC /* Red-76@3x.png */, + 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */, + ); + path = Red; + sourceTree = ""; + }; + 14F8A247202E649F00175FDC /* BnW */ = { + isa = PBXGroup; + children = ( + 14F8A24D202E64B100175FDC /* BnW-29@2x.png */, + 14F8A250202E64B100175FDC /* BnW-29@3x.png */, + 14F8A252202E64B100175FDC /* BnW-40@2x.png */, + 14F8A24C202E64B100175FDC /* BnW-40@3x.png */, + 14F8A24E202E64B100175FDC /* BnW-60@2x.png */, + 14F8A24F202E64B100175FDC /* BnW-60@3x.png */, + 14F8A251202E64B100175FDC /* BnW-76@2x.png */, + 14F8A254202E64B200175FDC /* BnW-76@3x.png */, + 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */, + ); + path = BnW; + sourceTree = ""; + }; + 14F8A262202E653600175FDC /* Grey */ = { + isa = PBXGroup; + children = ( + 14F8A264202E653D00175FDC /* Grey-29@2x.png */, + 14F8A269202E653E00175FDC /* Grey-29@3x.png */, + 14F8A263202E653D00175FDC /* Grey-40@2x.png */, + 14F8A268202E653E00175FDC /* Grey-40@3x.png */, + 14F8A26B202E653E00175FDC /* Grey-60@2x.png */, + 14F8A26A202E653E00175FDC /* Grey-60@3x.png */, + 14F8A267202E653D00175FDC /* Grey-76@2x.png */, + 14F8A265202E653D00175FDC /* Grey-76@3x.png */, + 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */, + ); + path = Grey; + sourceTree = ""; + }; + 14F8A275202E654400175FDC /* White */ = { + isa = PBXGroup; + children = ( + 14F8A27D202E658F00175FDC /* White-29@2x.png */, + 14F8A27C202E658F00175FDC /* White-29@3x.png */, + 14F8A27E202E658F00175FDC /* White-40@2x.png */, + 14F8A278202E658E00175FDC /* White-40@3x.png */, + 14F8A27B202E658F00175FDC /* White-60@2x.png */, + 14F8A27F202E658F00175FDC /* White-60@3x.png */, + 14F8A277202E658E00175FDC /* White-76@2x.png */, + 14F8A279202E658E00175FDC /* White-76@3x.png */, + 14F8A27A202E658F00175FDC /* White-83.5@2x.png */, + ); + path = White; + sourceTree = ""; + }; + 14F8A276202E654900175FDC /* Blue */ = { + isa = PBXGroup; + children = ( + 14F8A28F202E65C700175FDC /* Blue-29@2x.png */, + 14F8A289202E65C500175FDC /* Blue-29@3x.png */, + 14F8A28E202E65C600175FDC /* Blue-40@2x.png */, + 14F8A290202E65C700175FDC /* Blue-40@3x.png */, + 14F8A28A202E65C600175FDC /* Blue-60@2x.png */, + 14F8A28B202E65C600175FDC /* Blue-60@3x.png */, + 14F8A291202E65C700175FDC /* Blue-76@2x.png */, + 14F8A28C202E65C600175FDC /* Blue-76@3x.png */, + 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */, + ); + path = Blue; + sourceTree = ""; + }; + 3330329F2073905900A9514D /* SubscriptionManager */ = { + isa = PBXGroup; + children = ( + 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */, + 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */, + 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */, + 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */, + 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */, + ); + path = SubscriptionManager; + sourceTree = ""; + }; + 33A5C9C0206A565800FE1C8F /* Emojis */ = { + isa = PBXGroup; + children = ( + 33A5C9C8206A565800FE1C8F /* activity.json */, + 33A5C9C4206A565800FE1C8F /* flags.json */, + 33A5C9C7206A565800FE1C8F /* food.json */, + 33A5C9C9206A565800FE1C8F /* nature.json */, + 33A5C9C6206A565800FE1C8F /* objects.json */, + 33A5C9C5206A565800FE1C8F /* people.json */, + 33A5C9C3206A565800FE1C8F /* regional.json */, + 33A5C9C1206A565800FE1C8F /* symbols.json */, + 33A5C9C2206A565800FE1C8F /* travel.json */, + ); + path = Emojis; + sourceTree = ""; + }; + 33F73B292073BDD800F03F29 /* Notification */ = { + isa = PBXGroup; + children = ( + 33F73B2B2073BDF400F03F29 /* NotificationView.swift */, + 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */, + ); + path = Notification; + sourceTree = ""; + }; + 33F73B2E2073F1FC00F03F29 /* Notification */ = { + isa = PBXGroup; + children = ( + 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */, + 333207FE20766E4F00AD3290 /* NotificationViewController.xib */, + ); + path = Notification; + sourceTree = ""; + }; + 4102E3AB1E53272C004BAA82 /* Preferences */ = { + isa = PBXGroup; + children = ( + 0B3A9767202C75A60019CA92 /* ChangeAppIcon */, + 0B9AB2BF20444EB300ABEA05 /* Language */, + 99282260204DE0AE005D2067 /* Profile */, + 9960C82E2063F091004A034C /* Web Browser */, + 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, + 4129937D208E25C100E12C49 /* PreferencesViewController.swift */, + 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */, + ); + path = Preferences; + sourceTree = ""; + }; + 411EDECE1E30F2D700BC7BE3 /* Uploader */ = { + isa = PBXGroup; + children = ( + 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */, + 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */, + ); + path = Uploader; + sourceTree = ""; + }; + 414A1FF41D4631F600093E10 /* Response */ = { + isa = PBXGroup; + children = ( + 414A1FF51D46320F00093E10 /* ResponseMessage.swift */, + 807371991F94E83600D53ADF /* SocketError.swift */, + 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */, + 414A1FFB1D46395900093E10 /* SocketResponse.swift */, + ); + path = Response; + sourceTree = ""; + }; + 414EFF901E54FE35004F001F /* Models */ = { + isa = PBXGroup; + children = ( + 414EFF911E54FE69004F001F /* AuthExtensions.swift */, + 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */, + 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */, + 41D7CA861E644E47000F38EA /* MessageExtensions.swift */, + D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */, + 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */, + ); + path = Models; + sourceTree = ""; + }; + 41534EE0208E43FF009C5A17 /* Launcher */ = { + isa = PBXGroup; + children = ( + 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */, + ); + path = Launcher; + sourceTree = ""; + }; + 4153E80320504BC800FBC26B /* Preferences */ = { + isa = PBXGroup; + children = ( + 4153E80420504BE700FBC26B /* ReusableViewText.swift */, + 412EF3C52050507C001689A3 /* ReusableViewText.xib */, + ); + path = Preferences; + sourceTree = ""; + }; + 41552F641D30307D0081438D /* Model */ = { + isa = PBXGroup; + children = ( + 8076FDB72048580A00114F28 /* AuthManager */, + 3330329F2073905900A9514D /* SubscriptionManager */, + 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */, + 805DEC341FFC03380033151B /* CustomEmojiManager.swift */, + 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */, + 41DC7A1C1D38471700896FC0 /* MessageManager.swift */, + 806401341FB09F8A00990572 /* PermissionManager.swift */, + 4162E1521D651A8800AAAE49 /* UserManager.swift */, + ); + path = Model; + sourceTree = ""; + }; + 41552F691D3035DB0081438D /* Managers */ = { + isa = PBXGroup; + children = ( + 41534EE0208E43FF009C5A17 /* Launcher */, + 419D78851FBDCF5A005FC7A2 /* Requests */, + 417A70011D47916C00FF46EE /* Socket */, + 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */, + 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */, + 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */, + 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */, + 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */, + 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */, + 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */, + 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */, + 411119B71F6825C30019854B /* NetworkManagerSpec.swift */, + 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */, + 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */, + 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */, + 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */, + 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */, + B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */, + 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */, + ); + path = Managers; + sourceTree = ""; + }; + 4161332F1D46CA2800E09DA2 /* Views */ = { + isa = PBXGroup; + children = ( + 41C275DD1D847FEE003C88CF /* Avatar */, + 416133301D46CA3100E09DA2 /* Cells */, + 41F167E51DAC450200775CCA /* Chat */, + 897083CC1F8CF08100233561 /* Form */, + 41ADDD471E9DBAE90007A458 /* Loader */, + 33F73B292073BDD800F03F29 /* Notification */, + 418C4DC41DC4C05000ABED4C /* Sections */, + 41A91AED1E51C4E5005C94B1 /* Subscriptions */, + 7758A7621F8FA34300FAA244 /* UIPickerView */, + ); + path = Views; + sourceTree = ""; + }; + 416133301D46CA3100E09DA2 /* Cells */ = { + isa = PBXGroup; + children = ( + 416133351D46CA7400E09DA2 /* Chat */, + 4153E80320504BC800FBC26B /* Preferences */, + 4192054A1D52F4E7004EEC5F /* Subscription */, + 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */, + 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 416133351D46CA7400E09DA2 /* Chat */ = { + isa = PBXGroup; + children = ( + 800FCD431F728E6A00D9A692 /* Info */, + 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */, + 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */, + 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */, + 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */, + 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, + 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, + 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, + 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, + 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, + 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, + D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, + 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, + 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, + 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, + 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, + 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */, + 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */, + 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */, + 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */, + 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */, + 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */, + 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */, + 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */, + 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */, + 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */, + 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */, + 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, + 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, + 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */, + 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */, + 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */, + 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, + 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, + 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */, + 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */, + 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, + 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, + D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, + 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, + 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, + 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */, + 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */, + 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, + 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, + ); + path = Chat; + sourceTree = ""; + }; + 416133361D46DB0900E09DA2 /* Models */ = { + isa = PBXGroup; + children = ( + 77C261281F97453600724A1F /* CustomFields */, + 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */, + 77C261241F97445300724A1F /* AuthSettingsSpec.swift */, + 416133391D46E0A200E09DA2 /* AuthSpec.swift */, + 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */, + D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */, + 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */, + 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */, + 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */, + 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */, + 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */, + D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */, + 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */, + 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */, + 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */, + 808792371FB14B3300EFE77F /* PermissionSpec.swift */, + 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */, + 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */, + 4161333B1D46E32F00E09DA2 /* UserSpec.swift */, + ); + path = Models; + sourceTree = ""; + }; + 416296F71F41B41100BCCEDD /* Helpers */ = { + isa = PBXGroup; + children = ( + 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */, + 35BCD302201A9FB800B4BE5A /* AskSpec.swift */, + 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */, + 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */, + 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */, + ); + path = Helpers; + sourceTree = ""; + }; + 4171ABA31E7C0556009FC3F0 /* Views */ = { + isa = PBXGroup; + children = ( + D3CFAFBE1E907FC100BADC0A /* Chat */, + 140C84EA1FC9DB9600032A59 /* CreateChannel */, + 418C743F1FA3626200499577 /* UIPickerView */, + 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */, + 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */, + ); + path = Views; + sourceTree = ""; + }; + 4174CB0A1D2D990F0086DAC8 /* Controllers */ = { + isa = PBXGroup; + children = ( + 4174CB101D2D997E0086DAC8 /* Auth */, + 4174CB111D2D99840086DAC8 /* Base */, + 41E2FA021D414ECC00238DFD /* Chat */, + 140A95E2202F5321003FD564 /* Drawing */, + 33F73B2E2073F1FC00F03F29 /* Notification */, + 4102E3AB1E53272C004BAA82 /* Preferences */, + 41E2FA031D414ED400238DFD /* Subscriptions */, + 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */, + ); + path = Controllers; + sourceTree = ""; + }; + 4174CB0B1D2D99170086DAC8 /* Storyboards */ = { + isa = PBXGroup; + children = ( + 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */, + 41E2F9FE1D414DE800238DFD /* Chat.storyboard */, + 140A95E0202F526C003FD564 /* Drawing.storyboard */, + 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */, + 4102E3A91E532323004BAA82 /* Preferences.storyboard */, + 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */, + ); + path = Storyboards; + sourceTree = ""; + }; + 4174CB101D2D997E0086DAC8 /* Auth */ = { + isa = PBXGroup; + children = ( + 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */, + 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */, + 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */, + 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */, + 80D955C1202154A300E3F281 /* CASViewController.swift */, + 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */, + 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */, + 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */, + 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */, + 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */, + 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */, + 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */, + ); + path = Auth; + sourceTree = ""; + }; + 4174CB111D2D99840086DAC8 /* Base */ = { + isa = PBXGroup; + children = ( + 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */, + 4174CB121D2D99960086DAC8 /* BaseViewController.swift */, + ); + path = Base; + sourceTree = ""; + }; + 4174CB181D2D9D940086DAC8 /* Managers */ = { + isa = PBXGroup; + children = ( + D32E28201DFD86AC00D6019C /* Launcher */, + 41552F641D30307D0081438D /* Model */, + 419D78811FBDB78D005FC7A2 /* Requests */, + 41F1702C1D425358007E6948 /* Socket */, + 411EDECE1E30F2D700BC7BE3 /* Uploader */, + 4101BF001F8D0A1700F67E89 /* AppManager.swift */, + 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */, + 419ECCA31F3CA21A005F224B /* DownloadManager.swift */, + 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */, + 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */, + D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */, + 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */, + 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */, + 335F4F02207A31D3005E14AF /* NotificationManager.swift */, + 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */, + 597ECBA31E3708B10041C5C5 /* PushManager.swift */, + 41499C8E1F2A116900790EA7 /* ServerManager.swift */, + B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */, + 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */, + 41B554C61FBF0F9D000510B7 /* WindowManager.swift */, + ); + path = Managers; + sourceTree = ""; + }; + 4174CB1D1D2DB3270086DAC8 /* Extensions */ = { + isa = PBXGroup; + children = ( + 8013F8631FD5E11100EE1A4E /* API */, + 414EFF901E54FE35004F001F /* Models */, + 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */, + 597ECBA11E3708A50041C5C5 /* DataExtension.swift */, + 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */, + 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */, + 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */, + D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */, + 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */, + 8076FDA8204853DE00114F28 /* RealmExecute.swift */, + 8076FDA32048533000114F28 /* String+Random.swift */, + 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */, + 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */, + 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */, + D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */, + 41494B911D63C6280004F369 /* UIImageExtension.swift */, + 419205481D52EDE6004EEC5F /* UILabelExtension.swift */, + 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */, + 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */, + 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */, + 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */, + 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */, + 41BAE3E61D71B26C00C2445A /* URLExtension.swift */, + 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 417A70011D47916C00FF46EE /* Socket */ = { + isa = PBXGroup; + children = ( + 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */, + 41552F671D3035D80081438D /* SocketManagerSpec.swift */, + ); + path = Socket; + sourceTree = ""; + }; + 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */ = { + isa = PBXGroup; + children = ( + 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */, + 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */, + ); + path = WebViewEmbedded; + sourceTree = ""; + }; + 418C4DC41DC4C05000ABED4C /* Sections */ = { + isa = PBXGroup; + children = ( + 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */, + 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */, + 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */, + 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */, + ); + path = Sections; + sourceTree = ""; + }; + 418C743F1FA3626200499577 /* UIPickerView */ = { + isa = PBXGroup; + children = ( + 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */, + 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */, + ); + path = UIPickerView; + sourceTree = ""; + }; + 4192054A1D52F4E7004EEC5F /* Subscription */ = { + isa = PBXGroup; + children = ( + 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */, + 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */, + 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */, + 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */, + 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 4199A9861DABCC2E0035F820 /* External */ = { + isa = PBXGroup; + children = ( + 4199A9871DABCC570035F820 /* RCEmojiKit */, + ); + path = External; + sourceTree = ""; + }; + 4199A9871DABCC570035F820 /* RCEmojiKit */ = { + isa = PBXGroup; + children = ( + 33A5C9C0206A565800FE1C8F /* Emojis */, + 80A97EFD200628A300A2774C /* Views */, + 8069D26D1FFF876D00C75926 /* Emoji.swift */, + 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */, + 807FB53C2044B49800E21429 /* Emojione+Transform.swift */, + 4199A9881DABCC570035F820 /* Emojione.swift */, + 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */, + 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */, + 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */, + 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */, + 33A5C9BD206A561400FE1C8F /* emojiNames.json */, + ); + path = RCEmojiKit; + sourceTree = ""; + }; + 419D78811FBDB78D005FC7A2 /* Requests */ = { + isa = PBXGroup; + children = ( + 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */, + ); + path = Requests; + sourceTree = ""; + }; + 419D78851FBDCF5A005FC7A2 /* Requests */ = { + isa = PBXGroup; + children = ( + 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */, + ); + path = Requests; + sourceTree = ""; + }; + 41A79C0D1D2F084F00A1968E /* Models */ = { + isa = PBXGroup; + children = ( + 8076FDAC2048566100114F28 /* Auth */, + 41BD37D71E290D7400CBC4C2 /* Base */, + 7798B4131F852AE30074B2F4 /* CustomFields */, + 41BD37DF1E290F1500CBC4C2 /* Handler */, + 41BD37DE1E290F1000CBC4C2 /* Mapping */, + 8076FDCF2048644300114F28 /* Message */, + 8076FDC120485A0B00114F28 /* Subscription */, + 8076FDD4204864D400114F28 /* User */, + 41900C261D9FE35400308EF4 /* Attachment.swift */, + 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */, + 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */, + 8013F8661FD6B4F400EE1A4E /* Command.swift */, + 805DEC361FFC08870033151B /* CustomEmoji.swift */, + 8073719F1F96937100D53ADF /* LoginService.swift */, + 806401301FB09DE800990572 /* Permission.swift */, + ); + path = Models; + sourceTree = ""; + }; + 41A91AED1E51C4E5005C94B1 /* Subscriptions */ = { + isa = PBXGroup; + children = ( + 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */, + 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */, + 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */, + A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */, + ); + path = Subscriptions; + sourceTree = ""; + }; + 41ADDD471E9DBAE90007A458 /* Loader */ = { + isa = PBXGroup; + children = ( + 41ADDD481E9DBB100007A458 /* LoaderView.swift */, + ); + path = Loader; + sourceTree = ""; + }; + 41B96363207E48690068F1A6 /* Validators */ = { + isa = PBXGroup; + children = ( + 41B96361207E48260068F1A6 /* MessageTextValidator.swift */, + ); + path = Validators; + sourceTree = ""; + }; + 41BD37D71E290D7400CBC4C2 /* Base */ = { + isa = PBXGroup; + children = ( + 4112DC551FFFB9B1005995E1 /* BaseModel.swift */, + 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */, + 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */, + ); + path = Base; + sourceTree = ""; + }; + 41BD37DE1E290F1000CBC4C2 /* Mapping */ = { + isa = PBXGroup; + children = ( + 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */, + 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */, + D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */, + 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */, + 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */, + D10E9C211F643616007F1796 /* MentionModelMapping.swift */, + 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */, + 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */, + 806401321FB09EC400990572 /* PermissionModelMapping.swift */, + 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */, + 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */, + ); + path = Mapping; + sourceTree = ""; + }; + 41BD37DF1E290F1500CBC4C2 /* Handler */ = { + isa = PBXGroup; + children = ( + 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */, + 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */, + 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */, + ); + path = Handler; + sourceTree = ""; + }; + 41C275DD1D847FEE003C88CF /* Avatar */ = { + isa = PBXGroup; + children = ( + 41C275DE1D848005003C88CF /* AvatarView.swift */, + 41C275E01D84815C003C88CF /* AvatarView.xib */, + ); + path = Avatar; + sourceTree = ""; + }; + 41D701D41E67103C00FED2EE /* Helpers */ = { + isa = PBXGroup; + children = ( + 41B96363207E48690068F1A6 /* Validators */, + 80307E3A1FD75BD3006AD9EF /* VoiceOver */, + 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */, + 802A4E23204D730F0072CD23 /* AppGroup.swift */, + 35BCD300201A57EA00B4BE5A /* Ask.swift */, + 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */, + 800F38EC2019492D0005CB78 /* DeepLink.swift */, + 80DC9A6B206BA95600032BE0 /* Localized.swift */, + 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */, + 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */, + 413996161F3B44500075F96E /* UploadHelper.swift */, + ); + path = Helpers; + sourceTree = ""; + }; + 41DC7A201D386B2C00896FC0 /* Extensions */ = { + isa = PBXGroup; + children = ( + 80E99F2A1FD8B4AC00B70B59 /* API */, + 80E99F2D1FD8B4E200B70B59 /* Models */, + 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */, + 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */, + D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */, + 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */, + 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */, + 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 41DF76D61D2C50710028DBF8 = { + isa = PBXGroup; + children = ( + 106DAA428B5BF7289FB70C65 /* Frameworks */, + EE693BBD0CC2727847214E2D /* Pods */, + 41DF76E01D2C50710028DBF8 /* Products */, + 41DF76E11D2C50710028DBF8 /* Rocket.Chat */, + 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */, + 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */, + 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */, + ); + sourceTree = ""; + }; + 41DF76E01D2C50710028DBF8 /* Products */ = { + isa = PBXGroup; + children = ( + 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */, + 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */, + 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */, + 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */, + ); + name = Products; + sourceTree = ""; + }; + 41DF76E11D2C50710028DBF8 /* Rocket.Chat */ = { + isa = PBXGroup; + children = ( + D1D535EA1F7081E6006625D2 /* API */, + 4174CB0A1D2D990F0086DAC8 /* Controllers */, + 4174CB1D1D2DB3270086DAC8 /* Extensions */, + 4199A9861DABCC2E0035F820 /* External */, + 41D701D41E67103C00FED2EE /* Helpers */, + 4174CB181D2D9D940086DAC8 /* Managers */, + 41A79C0D1D2F084F00A1968E /* Models */, + 0B3A9760202C4DE10019CA92 /* Resources */, + 4174CB0B1D2D99170086DAC8 /* Storyboards */, + 4161332F1D46CA2800E09DA2 /* Views */, + 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */, + 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, + 3353DBF7206787E500738D1C /* Themeable.swift */, + 41DF76EE1D2C50720028DBF8 /* Info.plist */, + 41833F4D1DEF16B600E54655 /* Keys.plist */, + 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, + 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */, + ); + path = Rocket.Chat; + sourceTree = ""; + }; + 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */ = { + isa = PBXGroup; + children = ( + D18675E71F70A55D00406FB4 /* API */, + D1DA25261F695AC700DB6ABB /* Controllers */, + 41DC7A201D386B2C00896FC0 /* Extensions */, + 80A97EFE2006291E00A2774C /* External */, + 416296F71F41B41100BCCEDD /* Helpers */, + 41552F691D3035DB0081438D /* Managers */, + 416133361D46DB0900E09DA2 /* Models */, + 925FF74F1E8EFC9200982043 /* Preferences */, + 4171ABA31E7C0556009FC3F0 /* Views */, + 41DF76F91D2C50720028DBF8 /* Info.plist */, + 803782B61FB4751D00DED049 /* RealmTestCase.swift */, + ); + path = Rocket.ChatTests; + sourceTree = ""; + }; + 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */ = { + isa = PBXGroup; + children = ( + 41DF77041D2C50720028DBF8 /* Info.plist */, + 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */, + ); + path = Rocket.ChatUITests; + sourceTree = ""; + }; + 41E2FA021D414ECC00238DFD /* Chat */ = { + isa = PBXGroup; + children = ( + 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */, + 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */, + 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */, + 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */, + 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */, + 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */, + 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */, + 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */, + 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */, + 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */, + 41E2FA061D41513C00238DFD /* ChatViewController.swift */, + 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */, + 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */, + 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */, + 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */, + ); + path = Chat; + sourceTree = ""; + }; + 41E2FA031D414ED400238DFD /* Subscriptions */ = { + isa = PBXGroup; + children = ( + 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */, + 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */, + 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */, + 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */, + ); + path = Subscriptions; + sourceTree = ""; + }; + 41F167E51DAC450200775CCA /* Chat */ = { + isa = PBXGroup; + children = ( + 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */, + 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */, + 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */, + 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */, + 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */, + 339B6929205042D300F97392 /* KeyboardFrameView.swift */, + 1435BFA21F9B601600FB2768 /* RCTextView.swift */, + 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */, + 80CFB5711F8D697100FC9715 /* ReplyView.xib */, + ); + path = Chat; + sourceTree = ""; + }; + 41F1702C1D425358007E6948 /* Socket */ = { + isa = PBXGroup; + children = ( + 414A1FF41D4631F600093E10 /* Response */, + 414A1FF91D46395400093E10 /* SocketManager.swift */, + ); + path = Socket; + sourceTree = ""; + }; + 7758A7621F8FA34300FAA244 /* UIPickerView */ = { + isa = PBXGroup; + children = ( + 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */, + 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */, + ); + path = UIPickerView; + sourceTree = ""; + }; + 7798B4131F852AE30074B2F4 /* CustomFields */ = { + isa = PBXGroup; + children = ( + 7798B4181F852D670074B2F4 /* CustomField.swift */, + 7798B4141F852B720074B2F4 /* SelectField.swift */, + 77BA81501F87C4CB00F295F4 /* TextField.swift */, + ); + path = CustomFields; + sourceTree = ""; + }; + 77C261281F97453600724A1F /* CustomFields */ = { + isa = PBXGroup; + children = ( + 77C261291F97453600724A1F /* CustomFieldsSpec.swift */, + 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */, + 77C2612B1F97453600724A1F /* TextFieldSpec.swift */, + ); + path = CustomFields; + sourceTree = ""; + }; + 80054CFA1FDAFD3A00F5ECF9 /* General */ = { + isa = PBXGroup; + children = ( + D1D535F01F70864C006625D2 /* InfoRequest.swift */, + 807C7C11207522EF006B600E /* LoginServicesRequest.swift */, + 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */, + 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */, + 807C7C0720751EDB006B600E /* SpotlightRequest.swift */, + ); + path = General; + sourceTree = ""; + }; + 800FCD431F728E6A00D9A692 /* Info */ = { + isa = PBXGroup; + children = ( + 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */, + 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */, + 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */, + 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */, + 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */, + 800FCD491F728E6A00D9A692 /* MemberCell.swift */, + 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */, + ); + path = Info; + sourceTree = ""; + }; + 8013F8631FD5E11100EE1A4E /* API */ = { + isa = PBXGroup; + children = ( + 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */, + ); + path = API; + sourceTree = ""; + }; + 8013F86E1FD6B59D00EE1A4E /* Clients */ = { + isa = PBXGroup; + children = ( + 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */, + 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */, + 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */, + 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */, + 807C7C0520751ED1006B600E /* SpotlightClient.swift */, + 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */, + ); + path = Clients; + sourceTree = ""; + }; + 8013F8741FD6B5D100EE1A4E /* Middlewares */ = { + isa = PBXGroup; + children = ( + 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */, + ); + path = Middlewares; + sourceTree = ""; + }; + 8013F8771FD6B61400EE1A4E /* Middlewares */ = { + isa = PBXGroup; + children = ( + 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */, + ); + path = Middlewares; + sourceTree = ""; + }; + 8013F87E1FD6B66900EE1A4E /* Clients */ = { + isa = PBXGroup; + children = ( + 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */, + 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */, + 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */, + 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */, + ); + path = Clients; + sourceTree = ""; + }; + 8013F8831FD6B74800EE1A4E /* Command */ = { + isa = PBXGroup; + children = ( + 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */, + 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */, + ); + path = Command; + sourceTree = ""; + }; + 8013F88A1FD6B79900EE1A4E /* Command */ = { + isa = PBXGroup; + children = ( + 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */, + ); + path = Command; + sourceTree = ""; + }; + 8020CCF31FEAD8AA003424F4 /* EmojiPicker */ = { + isa = PBXGroup; + children = ( + 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */, + 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */, + 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */, + 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */, + ); + path = EmojiPicker; + sourceTree = ""; + }; + 80213C0F1FE063B200809E14 /* HTTP */ = { + isa = PBXGroup; + children = ( + 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */, + ); + path = HTTP; + sourceTree = ""; + }; + 80235D1C1F740AAC00A56CA5 /* Subscription */ = { + isa = PBXGroup; + children = ( + 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */, + 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */, + 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */, + 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */, + 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 80235D201F7442C100A56CA5 /* Subscription */ = { + isa = PBXGroup; + children = ( + 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */, + 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */, + 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */, + 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 802498EC1F7A82CD005477EC /* Authentication */ = { + isa = PBXGroup; + children = ( + D18675EB1F716A0D00406FB4 /* LoginRequest.swift */, + 802498ED1F7A8380005477EC /* MeRequest.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 802498EF1F7A9B92005477EC /* Authentication */ = { + isa = PBXGroup; + children = ( + D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */, + 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 80307E3A1FD75BD3006AD9EF /* VoiceOver */ = { + isa = PBXGroup; + children = ( + 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */, + 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */, + ); + path = VoiceOver; + sourceTree = ""; + }; + 806C2ACE206BBAF200EE5F67 /* External */ = { + isa = PBXGroup; + children = ( + 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */, + ); + path = External; + sourceTree = ""; + }; + 806C59A01FBB0BA700C32D0A /* Message */ = { + isa = PBXGroup; + children = ( + 806728FE20079734009FE94D /* DeleteMessageRequest.swift */, + 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */, + 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */, + 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */, + 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */, + 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */, + ); + path = Message; + sourceTree = ""; + }; + 806C59A31FBB2F3700C32D0A /* Message */ = { + isa = PBXGroup; + children = ( + 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */, + 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */, + 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */, + 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */, + ); + path = Message; + sourceTree = ""; + }; + 8076FDAC2048566100114F28 /* Auth */ = { + isa = PBXGroup; + children = ( + 41A79C121D2F09F200A1968E /* Auth.swift */, + 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */, + 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */, + 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */, + 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */, + 8076FDB42048571200114F28 /* AuthUser.swift */, + ); + path = Auth; + sourceTree = ""; + }; + 8076FDB72048580A00114F28 /* AuthManager */ = { + isa = PBXGroup; + children = ( + 41552F651D30308C0081438D /* AuthManager.swift */, + 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */, + 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */, + 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */, + ); + path = AuthManager; + sourceTree = ""; + }; + 8076FDC120485A0B00114F28 /* Subscription */ = { + isa = PBXGroup; + children = ( + 41DAE93D1D318F350098E068 /* Subscription.swift */, + 8076FDC62048632300114F28 /* SubscriptionQueries.swift */, + 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */, + 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 8076FDCF2048644300114F28 /* Message */ = { + isa = PBXGroup; + children = ( + D10E9C191F643457007F1796 /* Channel.swift */, + 4159720B1D3DB854002258F4 /* Email.swift */, + 4159720D1D3DB882002258F4 /* Mention.swift */, + 41DC7A1A1D38454500896FC0 /* Message.swift */, + 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */, + 8076FDD02048646500114F28 /* MessageReply.swift */, + 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */, + ); + path = Message; + sourceTree = ""; + }; + 8076FDD4204864D400114F28 /* User */ = { + isa = PBXGroup; + children = ( + 41A79C0E1D2F085F00A1968E /* User.swift */, + 8076FDD5204864E700114F28 /* UserQueries.swift */, + 8076FDD72048654F00114F28 /* UserUtils.swift */, + ); + path = User; + sourceTree = ""; + }; + 8076FDE02048A69200114F28 /* Compose */ = { + isa = PBXGroup; + children = ( + 80D563702058A8A7008896D6 /* Cells */, + 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */, + 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */, + 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */, + 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */, + 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */, + ); + path = Compose; + sourceTree = ""; + }; + 8076FDEB2049A5CB00114F28 /* Base */ = { + isa = PBXGroup; + children = ( + 80D0CE6E20509C100056B17F /* SEAvatarView.swift */, + 80D0CE7020509C230056B17F /* SEAvatarView.xib */, + 80D0CE61205023710056B17F /* SECell.swift */, + 8076FDEC2049A5F600114F28 /* SECellModel.swift */, + 802A4E102049C7340072CD23 /* SENavigationController.swift */, + 8076FDD920489F5900114F28 /* SEViewController.swift */, + 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */, + ); + path = Base; + sourceTree = ""; + }; + 807C7C0A20751F06006B600E /* General */ = { + isa = PBXGroup; + children = ( + D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */, + 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */, + 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */, + ); + path = General; + sourceTree = ""; + }; + 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { + isa = PBXGroup; + children = ( + 8076FDEB2049A5CB00114F28 /* Base */, + 8076FDE02048A69200114F28 /* Compose */, + 806C2ACE206BBAF200EE5F67 /* External */, + 80D5637320593245008896D6 /* Helpers */, + 807FB56C20472B2700E21429 /* Resources */, + 807FB57E2048376900E21429 /* Rooms */, + 807FB5802048378500E21429 /* Servers */, + 80977AC0204F374100C41435 /* State */, + 807FB55F2046E7DD00E21429 /* Info.plist */, + 807FB55C2046E7DD00E21429 /* Main.storyboard */, + 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */, + ); + path = Rocket.Chat.ShareExtension; + sourceTree = ""; + }; + 807FB56C20472B2700E21429 /* Resources */ = { + isa = PBXGroup; + children = ( + 80D5637120592D32008896D6 /* Assets.xcassets */, + 807FB57120472B6A00E21429 /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; + 807FB57E2048376900E21429 /* Rooms */ = { + isa = PBXGroup; + children = ( + 80D0CE6520503C860056B17F /* SERoomCell.swift */, + 80D0CE6720503C970056B17F /* SERoomCell.xib */, + 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */, + 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */, + 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */, + ); + path = Rooms; + sourceTree = ""; + }; + 807FB5802048378500E21429 /* Servers */ = { + isa = PBXGroup; + children = ( + 80D0CE5F205016B40056B17F /* SEServerCell.swift */, + 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */, + 80D0CE63205034280056B17F /* SEServerCellModel.swift */, + 807FB568204729E500E21429 /* SEServersViewController.swift */, + 807FB581204837AF00E21429 /* SEServersViewModel.swift */, + ); + path = Servers; + sourceTree = ""; + }; + 80977AB7204EFBBB00C41435 /* Navigation */ = { + isa = PBXGroup; + children = ( + 80977AB8204EFBCC00C41435 /* SENavigation.swift */, + 800640F62049BA25006D990F /* SEScene.swift */, + 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */, + ); + path = Navigation; + sourceTree = ""; + }; + 80977AC0204F374100C41435 /* State */ = { + isa = PBXGroup; + children = ( + 80FA907B2057F43F0069038F /* ActionCreators */, + 80977AB7204EFBBB00C41435 /* Navigation */, + 80FA9064205313D10069038F /* Resources */, + 80977ABE204F36F200C41435 /* SESearchState.swift */, + 80977AC1204F37C200C41435 /* SEState.swift */, + 8076FD9920484A6000114F28 /* SEStore.swift */, + ); + path = State; + sourceTree = ""; + }; + 809B530C1FE2EF7C00833DD2 /* Reaction */ = { + isa = PBXGroup; + children = ( + 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */, + 809B53131FE3294400833DD2 /* ReactionListView.xib */, + 809B530F1FE2F17D00833DD2 /* ReactionView.swift */, + 809B53111FE2F2F900833DD2 /* ReactionView.xib */, + 8041C0412028C7EF007E21FA /* ReactorListView.swift */, + 8041C0432028C828007E21FA /* ReactorListView.xib */, + 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */, + ); + path = Reaction; + sourceTree = ""; + }; + 80A97EFD200628A300A2774C /* Views */ = { + isa = PBXGroup; + children = ( + 8020CCF31FEAD8AA003424F4 /* EmojiPicker */, + 809B530C1FE2EF7C00833DD2 /* Reaction */, + 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */, + 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */, + 806465ED1FED1AFE001F27DB /* EmojiView.swift */, + 806465EB1FED19B9001F27DB /* EmojiView.xib */, + ); + path = Views; + sourceTree = ""; + }; + 80A97EFE2006291E00A2774C /* External */ = { + isa = PBXGroup; + children = ( + 80A97EFF2006292500A2774C /* RCEmojiKit */, + ); + path = External; + sourceTree = ""; + }; + 80A97EFF2006292500A2774C /* RCEmojiKit */ = { + isa = PBXGroup; + children = ( + 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */, + 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */, + ); + path = RCEmojiKit; + sourceTree = ""; + }; + 80D563702058A8A7008896D6 /* Cells */ = { + isa = PBXGroup; + children = ( + 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */, + 80FA906920569F890069038F /* SEComposeFileCell.swift */, + 80FA906B20569FA10069038F /* SEComposeFileCell.xib */, + 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */, + 80FA90712056C1190069038F /* SEComposeTextCell.swift */, + 80FA90732056C1350069038F /* SEComposeTextCell.xib */, + 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */, + 80FE8DEF206587510099170E /* SEFileDetailView.swift */, + 80FE8DED206584EA0099170E /* SEFileDetailView.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 80D5637320593245008896D6 /* Helpers */ = { + isa = PBXGroup; + children = ( + 80D563742059325A008896D6 /* MimeType.swift */, + 8029B2F12059B6F60067157B /* VideoInfo.swift */, + 80DC9A6F206BAC8B00032BE0 /* mimetype.json */, + ); + path = Helpers; + sourceTree = ""; + }; + 80E99F2A1FD8B4AC00B70B59 /* API */ = { + isa = PBXGroup; + children = ( + 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */, + ); + path = API; + sourceTree = ""; + }; + 80E99F2D1FD8B4E200B70B59 /* Models */ = { + isa = PBXGroup; + children = ( + 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */, + 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */, + ); + path = Models; + sourceTree = ""; + }; + 80FA9064205313D10069038F /* Resources */ = { + isa = PBXGroup; + children = ( + 80FA9065205313E20069038F /* SEContent.swift */, + 80FA9067205314040069038F /* SEServer.swift */, + ); + path = Resources; + sourceTree = ""; + }; + 80FA907B2057F43F0069038F /* ActionCreators */ = { + isa = PBXGroup; + children = ( + 80D5637620593533008896D6 /* ParseItemProviders.swift */, + 80977AB5204EEF1E00C41435 /* SelectServer.swift */, + 80FA907C2057F4650069038F /* SubmitContent.swift */, + ); + path = ActionCreators; + sourceTree = ""; + }; + 897083CC1F8CF08100233561 /* Form */ = { + isa = PBXGroup; + children = ( + 897083CD1F8CF08100233561 /* Cells */, + 897083D21F8CF08100233561 /* FormTableViewCell.swift */, + ); + path = Form; + sourceTree = ""; + }; + 897083CD1F8CF08100233561 /* Cells */ = { + isa = PBXGroup; + children = ( + 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */, + 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */, + 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */, + 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */, + 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */, + 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 925FF74F1E8EFC9200982043 /* Preferences */ = { + isa = PBXGroup; + children = ( + 140A95DC202F1E4D003FD564 /* AppIcon */, + 0BBCC2C0204546BB001E3B6D /* Language */, + 99F41BCC20658AD900B240FC /* Profile */, + 994DA2B12065480300083FB8 /* Web Browser */, + 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */, + ); + path = Preferences; + sourceTree = ""; + }; + 99282260204DE0AE005D2067 /* Profile */ = { + isa = PBXGroup; + children = ( + 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */, + 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */, + 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */, + 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */, + ); + path = Profile; + sourceTree = ""; + }; + 994DA2B12065480300083FB8 /* Web Browser */ = { + isa = PBXGroup; + children = ( + 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */, + ); + path = "Web Browser"; + sourceTree = ""; + }; + 9960C82E2063F091004A034C /* Web Browser */ = { + isa = PBXGroup; + children = ( + 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */, + 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */, + ); + path = "Web Browser"; + sourceTree = ""; + }; + 9977302520725B3A009AF465 /* Emoji */ = { + isa = PBXGroup; + children = ( + 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */, + ); + path = Emoji; + sourceTree = ""; + }; + 9977302820727DA0009AF465 /* Emoji */ = { + isa = PBXGroup; + children = ( + 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */, + ); + path = Emoji; + sourceTree = ""; + }; + 998165C8204EBB5E0059D346 /* User */ = { + isa = PBXGroup; + children = ( + 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */, + 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */, + 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */, + ); + path = User; + sourceTree = ""; + }; + 99D888F92046239100E51306 /* User */ = { + isa = PBXGroup; + children = ( + 99D888FA204623A900E51306 /* UpdateUserRequest.swift */, + 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */, + 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */, + ); + path = User; + sourceTree = ""; + }; + 99F41BCC20658AD900B240FC /* Profile */ = { + isa = PBXGroup; + children = ( + 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */, + 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */, + ); + path = Profile; + sourceTree = ""; + }; + D18675E71F70A55D00406FB4 /* API */ = { + isa = PBXGroup; + children = ( + 8013F87E1FD6B66900EE1A4E /* Clients */, + 8013F8771FD6B61400EE1A4E /* Middlewares */, + D18675E81F70A56800406FB4 /* Requests */, + 80A63C561F71D2E400FE5AC4 /* APISpec.swift */, + 8073719B1F963FA400D53ADF /* APITestCase.swift */, + 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */, + 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */, + ); + path = API; + sourceTree = ""; + }; + D18675E81F70A56800406FB4 /* Requests */ = { + isa = PBXGroup; + children = ( + 802498EF1F7A9B92005477EC /* Authentication */, + 8013F88A1FD6B79900EE1A4E /* Command */, + 9977302820727DA0009AF465 /* Emoji */, + 807C7C0A20751F06006B600E /* General */, + 806C59A31FBB2F3700C32D0A /* Message */, + 80235D201F7442C100A56CA5 /* Subscription */, + 998165C8204EBB5E0059D346 /* User */, + ); + path = Requests; + sourceTree = ""; + }; + D1D535EA1F7081E6006625D2 /* API */ = { + isa = PBXGroup; + children = ( + 8013F86E1FD6B59D00EE1A4E /* Clients */, + 80213C0F1FE063B200809E14 /* HTTP */, + 8013F8741FD6B5D100EE1A4E /* Middlewares */, + D1D535EF1F70863C006625D2 /* Requests */, + D1D535EB1F7081FA006625D2 /* API.swift */, + 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */, + 8013F8691FD6B59900EE1A4E /* APIError.swift */, + D1D535ED1F708628006625D2 /* APIRequest.swift */, + 8067DAA5206D1883005E3369 /* APIResource.swift */, + D15C83851F70991F001AB155 /* APIResponse.swift */, + 8013F8681FD6B59900EE1A4E /* Version.swift */, + ); + path = API; + sourceTree = ""; + }; + D1D535EF1F70863C006625D2 /* Requests */ = { + isa = PBXGroup; + children = ( + 802498EC1F7A82CD005477EC /* Authentication */, + 8013F8831FD6B74800EE1A4E /* Command */, + 9977302520725B3A009AF465 /* Emoji */, + 80054CFA1FDAFD3A00F5ECF9 /* General */, + 806C59A01FBB0BA700C32D0A /* Message */, + 80235D1C1F740AAC00A56CA5 /* Subscription */, + 99D888F92046239100E51306 /* User */, + ); + path = Requests; + sourceTree = ""; + }; + D1DA25261F695AC700DB6ABB /* Controllers */ = { + isa = PBXGroup; + children = ( + D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */, + 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */, + 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */, + 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */, + 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */, + ); + path = Controllers; + sourceTree = ""; + }; + D32E28201DFD86AC00D6019C /* Launcher */ = { + isa = PBXGroup; + children = ( + D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */, + D32E28221DFD86C300D6019C /* LauncherProtocol.swift */, + 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */, + 411119B51F680DB00019854B /* NetworkCoordinator.swift */, + D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */, + 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */, + ); + path = Launcher; + sourceTree = ""; + }; + D3CFAFBE1E907FC100BADC0A /* Chat */ = { + isa = PBXGroup; + children = ( + 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */, + 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */, + ); + path = Chat; + sourceTree = ""; + }; + EE693BBD0CC2727847214E2D /* Pods */ = { + isa = PBXGroup; + children = ( + BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */, + 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */, + 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */, + 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */, + AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */, + FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */, + 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */, + 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */, + F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */; - buildPhases = ( - 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */, - D37272A11E13E60E00A25E1A /* SwiftLint */, - 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */, - 41DF76DB1D2C50710028DBF8 /* Sources */, - 41DF76DC1D2C50710028DBF8 /* Frameworks */, - 41DF76DD1D2C50710028DBF8 /* Resources */, - FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */, - FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */, - 807FB5672046E7DD00E21429 /* Embed App Extensions */, - ); - buildRules = ( - ); - dependencies = ( - 807FB5612046E7DD00E21429 /* PBXTargetDependency */, - ); - name = Rocket.Chat; - productName = Rocket.Chat; - productReference = 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */; - productType = "com.apple.product-type.application"; - }; - 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */; - buildPhases = ( - 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */, - F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */, - 41DF76EF1D2C50720028DBF8 /* Sources */, - 41DF76F01D2C50720028DBF8 /* Frameworks */, - 41DF76F11D2C50720028DBF8 /* Resources */, - DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */, - DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */, - ); - name = Rocket.ChatTests; - productName = Rocket.ChatTests; - productReference = 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */; - buildPhases = ( - 41DF76FA1D2C50720028DBF8 /* Sources */, - 41DF76FB1D2C50720028DBF8 /* Frameworks */, - 41DF76FC1D2C50720028DBF8 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 41DF77001D2C50720028DBF8 /* PBXTargetDependency */, - ); - name = Rocket.ChatUITests; - productName = Rocket.ChatUITests; - productReference = 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; - 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */; - buildPhases = ( - EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */, - 807FB5542046E7DD00E21429 /* Sources */, - 807FB5552046E7DD00E21429 /* Frameworks */, - 807FB5562046E7DD00E21429 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Rocket.Chat.ShareExtension; - productName = Rocket.Chat.ShareExtension; - productReference = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; - productType = "com.apple.product-type.app-extension"; - }; + 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */; + buildPhases = ( + 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */, + D37272A11E13E60E00A25E1A /* SwiftLint */, + 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */, + 41DF76DB1D2C50710028DBF8 /* Sources */, + 41DF76DC1D2C50710028DBF8 /* Frameworks */, + 41DF76DD1D2C50710028DBF8 /* Resources */, + FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */, + FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */, + 807FB5672046E7DD00E21429 /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + 807FB5612046E7DD00E21429 /* PBXTargetDependency */, + ); + name = Rocket.Chat; + productName = Rocket.Chat; + productReference = 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */; + productType = "com.apple.product-type.application"; + }; + 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */; + buildPhases = ( + 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */, + F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */, + 41DF76EF1D2C50720028DBF8 /* Sources */, + 41DF76F01D2C50720028DBF8 /* Frameworks */, + 41DF76F11D2C50720028DBF8 /* Resources */, + DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */, + DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */, + ); + name = Rocket.ChatTests; + productName = Rocket.ChatTests; + productReference = 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */; + buildPhases = ( + 41DF76FA1D2C50720028DBF8 /* Sources */, + 41DF76FB1D2C50720028DBF8 /* Frameworks */, + 41DF76FC1D2C50720028DBF8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 41DF77001D2C50720028DBF8 /* PBXTargetDependency */, + ); + name = Rocket.ChatUITests; + productName = Rocket.ChatUITests; + productReference = 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */; + buildPhases = ( + EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */, + 807FB5542046E7DD00E21429 /* Sources */, + 807FB5552046E7DD00E21429 /* Frameworks */, + 807FB5562046E7DD00E21429 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Rocket.Chat.ShareExtension; + productName = Rocket.Chat.ShareExtension; + productReference = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 41DF76D71D2C50710028DBF8 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0930; - ORGANIZATIONNAME = Rocket.Chat; - TargetAttributes = { - 41DF76DE1D2C50710028DBF8 = { - CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = 8M5NP3VM5V; - LastSwiftMigration = 0900; - SystemCapabilities = { - com.apple.ApplicationGroups.iOS = { - enabled = 1; - }; - com.apple.BackgroundModes = { - enabled = 1; - }; - com.apple.Push = { - enabled = 1; - }; - com.apple.SafariKeychain = { - enabled = 1; - }; - com.apple.iCloud = { - enabled = 1; - }; - }; - }; - 41DF76F21D2C50720028DBF8 = { - CreatedOnToolsVersion = 7.3.1; + 41DF76D71D2C50710028DBF8 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = Rocket.Chat; + TargetAttributes = { + 41DF76DE1D2C50710028DBF8 = { + CreatedOnToolsVersion = 7.3.1; DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - TestTargetID = 41DF76DE1D2C50710028DBF8; - }; - 41DF76FD1D2C50720028DBF8 = { - CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - TestTargetID = 41DF76DE1D2C50710028DBF8; - }; - 807FB5572046E7DD00E21429 = { - CreatedOnToolsVersion = 9.2; - DevelopmentTeam = S6UPZG7ZR3; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.ApplicationGroups.iOS = { - enabled = 1; - }; - }; - }; - }; - }; - buildConfigurationList = 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - "pt-BR", - de, - pl, - cs, - fr, - el, - es, - ); - mainGroup = 41DF76D61D2C50710028DBF8; - productRefGroup = 41DF76E01D2C50710028DBF8 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */, - 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */, - 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */, - 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */, - ); - }; + LastSwiftMigration = 0900; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + com.apple.BackgroundModes = { + enabled = 1; + }; + com.apple.Push = { + enabled = 1; + }; + com.apple.SafariKeychain = { + enabled = 1; + }; + com.apple.iCloud = { + enabled = 1; + }; + }; + }; + 41DF76F21D2C50720028DBF8 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = S6UPZG7ZR3; + LastSwiftMigration = 0900; + TestTargetID = 41DF76DE1D2C50710028DBF8; + }; + 41DF76FD1D2C50720028DBF8 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = S6UPZG7ZR3; + LastSwiftMigration = 0900; + TestTargetID = 41DF76DE1D2C50710028DBF8; + }; + 807FB5572046E7DD00E21429 = { + CreatedOnToolsVersion = 9.2; + DevelopmentTeam = S6UPZG7ZR3; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + }; + }; + }; + }; + buildConfigurationList = 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + "pt-BR", + de, + pl, + cs, + fr, + el, + es, + ); + mainGroup = 41DF76D61D2C50710028DBF8; + productRefGroup = 41DF76E01D2C50710028DBF8 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */, + 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */, + 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */, + 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */, + ); + }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 41DF76DD1D2C50710028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */, - 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */, - 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */, - 33A5C9CC206A565800FE1C8F /* regional.json in Resources */, - 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */, - 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */, - 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */, - 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */, - 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */, - 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */, - 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */, - 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */, - 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */, - 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */, - 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */, - 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */, - 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */, - 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */, - 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */, - 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */, - 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */, - 33A5C9CE206A565800FE1C8F /* people.json in Resources */, - 33A5C9D1206A565800FE1C8F /* activity.json in Resources */, - 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */, - 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */, - 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */, - 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */, - 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */, - 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */, - 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */, - 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */, - 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */, - 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */, - 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */, - 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */, - 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */, - 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */, - 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */, - 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */, - 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */, - 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */, - 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */, - 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */, - 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */, - 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */, - 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */, - 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */, - 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */, - 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */, - 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */, - 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */, - 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */, - 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */, - 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */, - 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */, - 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */, - 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */, - 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */, - 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */, - 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */, - 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */, - 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */, - 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */, - 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */, - 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */, - 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */, - 14F8A281202E659000175FDC /* White-40@3x.png in Resources */, - 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */, - 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */, - 33A5C9CB206A565800FE1C8F /* travel.json in Resources */, - 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */, - 14F8A287202E659000175FDC /* White-40@2x.png in Resources */, - 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */, - 14F8A288202E659000175FDC /* White-60@3x.png in Resources */, - 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */, - 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */, - 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */, - 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */, - 14F8A280202E659000175FDC /* White-76@2x.png in Resources */, - 33A5C9CD206A565800FE1C8F /* flags.json in Resources */, - 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */, - 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */, - 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */, - 14F8A284202E659000175FDC /* White-60@2x.png in Resources */, - 14F8A286202E659000175FDC /* White-29@2x.png in Resources */, - 14F8A282202E659000175FDC /* White-76@3x.png in Resources */, - 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */, - 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */, - 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */, - 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */, - 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */, - 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */, - 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */, - 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */, - 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */, - 33A5C9D2206A565800FE1C8F /* nature.json in Resources */, - 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */, - 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */, - 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */, - 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */, - 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */, - 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */, - 14F8A285202E659000175FDC /* White-29@3x.png in Resources */, - 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */, - 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */, - 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */, - 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */, - 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */, - 33A5C9D0206A565800FE1C8F /* food.json in Resources */, - 33A5C9CF206A565800FE1C8F /* objects.json in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76F11D2C50720028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FC1D2C50720028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5562046E7DD00E21429 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */, - 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */, - 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */, - 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */, - 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */, - 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */, - 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */, - 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */, - 80D5637220592D32008896D6 /* Assets.xcassets in Resources */, - 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 41DF76DD1D2C50710028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */, + 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */, + 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */, + 33A5C9CC206A565800FE1C8F /* regional.json in Resources */, + 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */, + 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */, + 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */, + 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */, + 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */, + 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */, + 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */, + 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */, + 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */, + 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */, + 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */, + 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */, + 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */, + 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */, + 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */, + 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */, + 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */, + 33A5C9CE206A565800FE1C8F /* people.json in Resources */, + 33A5C9D1206A565800FE1C8F /* activity.json in Resources */, + 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */, + 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */, + 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */, + 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */, + 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */, + 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */, + 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */, + 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */, + 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */, + 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */, + 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */, + 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */, + 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */, + 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */, + 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */, + 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */, + 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */, + 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */, + 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */, + 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */, + 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */, + 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */, + 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */, + 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */, + 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */, + 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */, + 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */, + 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */, + 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */, + 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */, + 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */, + 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */, + 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */, + 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */, + 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */, + 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */, + 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */, + 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */, + 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */, + 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */, + 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */, + 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */, + 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */, + 14F8A281202E659000175FDC /* White-40@3x.png in Resources */, + 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */, + 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */, + 33A5C9CB206A565800FE1C8F /* travel.json in Resources */, + 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */, + 14F8A287202E659000175FDC /* White-40@2x.png in Resources */, + 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */, + 14F8A288202E659000175FDC /* White-60@3x.png in Resources */, + 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */, + 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */, + 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */, + 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */, + 14F8A280202E659000175FDC /* White-76@2x.png in Resources */, + 33A5C9CD206A565800FE1C8F /* flags.json in Resources */, + 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */, + 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */, + 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */, + 14F8A284202E659000175FDC /* White-60@2x.png in Resources */, + 14F8A286202E659000175FDC /* White-29@2x.png in Resources */, + 14F8A282202E659000175FDC /* White-76@3x.png in Resources */, + 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */, + 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */, + 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */, + 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */, + 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */, + 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */, + 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */, + 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */, + 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */, + 33A5C9D2206A565800FE1C8F /* nature.json in Resources */, + 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */, + 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */, + 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */, + 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */, + 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */, + 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */, + 14F8A285202E659000175FDC /* White-29@3x.png in Resources */, + 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */, + 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */, + 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */, + 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */, + 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */, + 33A5C9D0206A565800FE1C8F /* food.json in Resources */, + 33A5C9CF206A565800FE1C8F /* objects.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76F11D2C50720028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FC1D2C50720028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5562046E7DD00E21429 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */, + 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */, + 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */, + 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */, + 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */, + 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */, + 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */, + 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */, + 80D5637220592D32008896D6 /* Assets.xcassets in Resources */, + 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.ChatTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - D37272A11E13E60E00A25E1A /* SwiftLint */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 12; - files = ( - ); - inputPaths = ( - ); - name = SwiftLint; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n \"${PODS_ROOT}/SwiftLint/swiftlint\"\nfi"; - }; - DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", - "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", - "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", - "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", - "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", - "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", - "${PODS_ROOT}/Instabug/Instabug.framework", - "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", - "${PODS_ROOT}/Instabug/InstabugCore.framework", - "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", - "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", - "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", - "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", - "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", - "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", - "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", - "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", - "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", - "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", - "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", - "${BUILT_PRODUCTS_DIR}/semver/semver.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", - "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", - "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "📦 Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat.ShareExtension-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", - "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", - "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", - "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", - "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", - "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", - "${PODS_ROOT}/Instabug/Instabug.framework", - "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", - "${PODS_ROOT}/Instabug/InstabugCore.framework", - "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", - "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", - "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", - "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", - "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", - "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", - "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", - "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", - "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", - "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", - "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", - "${BUILT_PRODUCTS_DIR}/semver/semver.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", - "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", - "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "📦 Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; + 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.ChatTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + D37272A11E13E60E00A25E1A /* SwiftLint */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 12; + files = ( + ); + inputPaths = ( + ); + name = SwiftLint; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n \"${PODS_ROOT}/SwiftLint/swiftlint\"\nfi"; + }; + DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", + "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", + "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", + "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", + "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", + "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", + "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", + "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", + "${PODS_ROOT}/Instabug/Instabug.framework", + "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", + "${PODS_ROOT}/Instabug/InstabugCore.framework", + "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", + "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", + "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", + "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", + "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", + "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", + "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", + "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", + "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", + "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", + "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", + "${BUILT_PRODUCTS_DIR}/semver/semver.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", + "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", + "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "📦 Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat.ShareExtension-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", + "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", + "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", + "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", + "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", + "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", + "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", + "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", + "${PODS_ROOT}/Instabug/Instabug.framework", + "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", + "${PODS_ROOT}/Instabug/InstabugCore.framework", + "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", + "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", + "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", + "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", + "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", + "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", + "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", + "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", + "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", + "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", + "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", + "${BUILT_PRODUCTS_DIR}/semver/semver.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", + "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", + "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "📦 Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 41DF76DB1D2C50710028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */, - 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */, - 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */, - 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */, - 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */, - 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */, - 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */, - 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */, - D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */, - 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */, - 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */, - 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */, - 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */, - 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */, - 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */, - 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */, - 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */, - 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */, - 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */, - 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */, - 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */, - 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */, - 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */, - 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */, - 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */, - 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */, - 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */, - 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */, - 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */, - 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */, - B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */, - 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */, - 41552F661D30308C0081438D /* AuthManager.swift in Sources */, - 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */, - 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */, - D10E9C1A1F643457007F1796 /* Channel.swift in Sources */, - 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */, - 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */, - 413996171F3B44500075F96E /* UploadHelper.swift in Sources */, - 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */, - 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */, - 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */, - 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */, - 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */, - 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */, - 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */, - 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */, - 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */, - 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */, - 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */, - 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */, - 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */, - 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */, - 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */, - 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */, - 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */, - 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */, - D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */, - D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */, - 8076FDA42048533000114F28 /* String+Random.swift in Sources */, - 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */, - 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */, - 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */, - 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */, - 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */, - 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */, - D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */, - 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */, - 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */, - 8076FDB52048571200114F28 /* AuthUser.swift in Sources */, - 4159720E1D3DB882002258F4 /* Mention.swift in Sources */, - 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */, - 806401311FB09DE800990572 /* Permission.swift in Sources */, - 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */, - 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */, - 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */, - 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */, - 4159720C1D3DB854002258F4 /* Email.swift in Sources */, - 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */, - 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */, - 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */, - 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */, - 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */, - 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, - 4199A9891DABCC570035F820 /* Emojione.swift in Sources */, - 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */, - 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */, - 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */, - 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */, - 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */, - 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */, - D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */, - 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */, - 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, - 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, - A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, - 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */, - 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */, - 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */, - 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */, - 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */, - 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */, - 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */, - 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */, - 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */, - 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */, - 41A79C131D2F09F200A1968E /* Auth.swift in Sources */, - 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */, - 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */, - 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */, - 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */, - 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */, - D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */, - D1D535EC1F7081FA006625D2 /* API.swift in Sources */, - 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */, - 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */, - 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */, - 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */, - 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */, - 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */, - 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */, - 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */, - 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */, - 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */, - 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */, - 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */, - 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */, - 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */, - 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */, - 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */, - 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */, - 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */, - 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */, - 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */, - 41A79C0F1D2F085F00A1968E /* User.swift in Sources */, - 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */, - 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */, - 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */, - 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */, - 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */, - 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */, - 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */, - 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */, - 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */, - 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */, - 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */, - 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */, - 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */, - 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */, - 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */, - 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */, - 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */, - 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */, - 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */, - 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */, - 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */, - 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */, - 8076FDD12048646500114F28 /* MessageReply.swift in Sources */, - D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */, - 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */, - 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */, - 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */, - 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */, - 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */, - 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */, - 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */, - 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */, - 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */, - 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */, - 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */, - 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */, - 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */, - 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */, - 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */, - 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */, - 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */, - 807371A01F96937100D53ADF /* LoginService.swift in Sources */, - 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */, - 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */, - 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */, - 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */, - 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */, - D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */, - 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */, - 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */, - 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */, - 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */, - 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */, - D15C83861F70991F001AB155 /* APIResponse.swift in Sources */, - 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */, - 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */, - 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */, - 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */, - 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */, - 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */, - 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */, - 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */, - 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */, - 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */, - 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */, - 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */, - 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */, - 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */, - 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */, - 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */, - 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */, - 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */, - 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */, - 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */, - 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */, - 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */, - 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */, - 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */, - 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */, - 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */, - 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */, - 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */, - 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */, - 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */, - 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */, - 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */, - 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */, - 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */, - 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */, - 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */, - 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */, - D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */, - 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */, - 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */, - 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */, - 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */, - 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */, - 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */, - 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */, - 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */, - 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */, - 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */, - 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */, - 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */, - 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */, - 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */, - 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */, - 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */, - 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */, - 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */, - D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */, - D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */, - 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */, - D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */, - 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */, - 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */, - D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */, - 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */, - 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */, - 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */, - 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */, - 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */, - 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */, - 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */, - 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, - 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, - 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, + 41DF76DB1D2C50710028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */, + 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */, + 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */, + 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */, + 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */, + 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */, + 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */, + 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */, + D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */, + 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */, + 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */, + 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */, + 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */, + 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */, + 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */, + 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */, + 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */, + 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */, + 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */, + 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */, + 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */, + 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */, + 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */, + 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */, + 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */, + 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */, + 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */, + 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */, + 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */, + 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */, + B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */, + 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */, + 41552F661D30308C0081438D /* AuthManager.swift in Sources */, + 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */, + 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */, + D10E9C1A1F643457007F1796 /* Channel.swift in Sources */, + 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */, + 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */, + 413996171F3B44500075F96E /* UploadHelper.swift in Sources */, + 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */, + 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */, + 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */, + 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */, + 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */, + 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */, + 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */, + 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */, + 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */, + 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */, + 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */, + 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */, + 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */, + 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */, + 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */, + 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */, + 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */, + 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */, + D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */, + D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */, + 8076FDA42048533000114F28 /* String+Random.swift in Sources */, + 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */, + 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */, + 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */, + 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */, + 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */, + 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */, + D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */, + 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */, + 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */, + 8076FDB52048571200114F28 /* AuthUser.swift in Sources */, + 4159720E1D3DB882002258F4 /* Mention.swift in Sources */, + 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */, + 806401311FB09DE800990572 /* Permission.swift in Sources */, + 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */, + 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */, + 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */, + 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */, + 4159720C1D3DB854002258F4 /* Email.swift in Sources */, + 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */, + 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */, + 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */, + 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */, + 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */, + 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, + 4199A9891DABCC570035F820 /* Emojione.swift in Sources */, + 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */, + 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */, + 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */, + 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */, + 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */, + 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */, + D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */, + 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */, + 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, + 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, + A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, + 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */, + 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */, + 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */, + 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */, + 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */, + 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */, + 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */, + 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */, + 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */, + 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */, + 41A79C131D2F09F200A1968E /* Auth.swift in Sources */, + 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */, + 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */, + 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */, + 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */, + 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */, + D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */, + D1D535EC1F7081FA006625D2 /* API.swift in Sources */, + 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */, + 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */, + 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */, + 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */, + 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */, + 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */, + 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */, + 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */, + 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */, + 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */, + 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */, + 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */, + 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */, + 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */, + 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */, + 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */, + 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */, + 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */, + 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */, + 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */, + 41A79C0F1D2F085F00A1968E /* User.swift in Sources */, + 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */, + 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */, + 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */, + 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */, + 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */, + 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */, + 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */, + 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */, + 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */, + 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */, + 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */, + 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */, + 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */, + 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */, + 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */, + 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */, + 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */, + 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */, + 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */, + 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */, + 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */, + 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */, + 8076FDD12048646500114F28 /* MessageReply.swift in Sources */, + D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */, + 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */, + 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */, + 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */, + 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */, + 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */, + 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */, + 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */, + 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */, + 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */, + 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */, + 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */, + 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */, + 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */, + 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */, + 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */, + 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */, + 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */, + 807371A01F96937100D53ADF /* LoginService.swift in Sources */, + 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */, + 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */, + 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */, + 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */, + 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */, + D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */, + 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */, + 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */, + 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */, + 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */, + 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */, + D15C83861F70991F001AB155 /* APIResponse.swift in Sources */, + 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */, + 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */, + 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */, + 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */, + 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */, + 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */, + 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */, + 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */, + 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */, + 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */, + 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */, + 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */, + 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */, + 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */, + 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */, + 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */, + 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */, + 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */, + 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */, + 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */, + 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */, + 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */, + 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */, + 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */, + 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */, + 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */, + 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */, + 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */, + 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */, + 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */, + 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */, + 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */, + 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */, + 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */, + 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */, + 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */, + 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */, + D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */, + 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */, + 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */, + 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */, + 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */, + 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */, + 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */, + 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */, + 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */, + 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */, + 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */, + 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */, + 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */, + 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */, + 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */, + 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */, + 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */, + 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */, + 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */, + D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */, + D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */, + 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */, + D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */, + 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */, + 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */, + D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */, + 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */, + 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */, + 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */, + 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */, + 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */, + 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */, + 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */, + 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, + 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, + 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, 3353DBF8206787E500738D1C /* Themeable.swift in Sources */, - 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */, - 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */, - 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */, - 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */, - 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */, - 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */, - 4129937E208E25C200E12C49 /* PreferencesViewController.swift in Sources */, - 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */, - 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */, - 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */, - 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */, - 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */, - 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */, - 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */, - 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */, - 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */, - 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */, - 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */, - 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */, - 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */, - 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */, - 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */, - 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */, - 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */, - 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */, - 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */, - 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */, - 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */, - 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */, - 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76EF1D2C50720028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */, - 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */, - 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */, - 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */, - D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */, - 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */, - 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */, - 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */, - D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */, - 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */, - 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */, - 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */, - 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */, - 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */, - 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */, - 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */, - 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */, - 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */, - 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */, - 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */, - 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */, - 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */, - 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */, - 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */, - 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */, - 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */, - 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */, - 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */, - 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */, - 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */, - D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */, - 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */, - 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */, - 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */, - 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */, - 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */, - 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */, - 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */, - 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */, - 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */, - 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */, - 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */, - 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */, - 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */, - 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */, - 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */, - 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */, - 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */, - 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */, - 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */, - 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */, - 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */, - 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */, - D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */, - 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */, - 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */, - 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */, - 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */, - 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */, - 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */, - 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */, - 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */, - 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */, - 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */, - 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */, - 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */, - 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */, - 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */, - 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */, - 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */, - 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */, - 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */, - 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */, - B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */, - 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */, - 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */, - 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */, - 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */, - 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */, - 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */, - 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */, - 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */, - 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */, - 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */, - 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */, - D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */, - 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */, - 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */, - 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */, - 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */, - 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */, - 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */, - 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */, - 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */, - 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */, - 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */, - 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */, - 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */, - 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */, - 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */, - 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */, - D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */, - 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FA1D2C50720028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5542046E7DD00E21429 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4100B2842087779D00E2883A /* LogManager.swift in Sources */, - 80D0CE62205023710056B17F /* SECell.swift in Sources */, - 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */, - 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */, - 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */, - 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */, - 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */, - 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */, - 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */, - 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */, - 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */, - 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */, - 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */, - 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */, - 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */, - 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */, - 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */, - 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */, - 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */, - 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */, - 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */, - 80977AC2204F37C200C41435 /* SEState.swift in Sources */, - 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */, - 8076FDCA204863B900114F28 /* Channel.swift in Sources */, - 8076FDBD2048598100114F28 /* Subscription.swift in Sources */, - 804273DE204EBD51006DF420 /* APIClient.swift in Sources */, - 8076FDCB204863C500114F28 /* Attachment.swift in Sources */, - 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */, - 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */, - 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */, - 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */, - 8076FDC82048639700114F28 /* Message.swift in Sources */, - 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */, - 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */, - 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */, - 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */, - 80FA9066205313E20069038F /* SEContent.swift in Sources */, - 804273E0204EBD51006DF420 /* Version.swift in Sources */, - 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */, - 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */, - 8076FDA62048536800114F28 /* BaseModel.swift in Sources */, - 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */, - 804273DF204EBD51006DF420 /* APIError.swift in Sources */, - 806DB94320687697004ED8ED /* Alert.swift in Sources */, - 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */, - 800640F72049BA25006D990F /* SEScene.swift in Sources */, - 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */, - 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */, - 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */, - 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */, - 8076FDB3204856E200114F28 /* Auth.swift in Sources */, - 8076FDC9204863AF00114F28 /* Mention.swift in Sources */, - 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */, - 8076FDD22048648D00114F28 /* Email.swift in Sources */, - 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */, - 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */, - 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */, - 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */, - 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */, - 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */, - 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */, - 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */, - 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */, - 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */, - 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */, - 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */, - 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */, - 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */, - 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */, - 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */, - 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */, - 80D563752059325A008896D6 /* MimeType.swift in Sources */, - 8076FDA52048534200114F28 /* String+Random.swift in Sources */, - 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */, - 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */, - 8076FDCE2048642400114F28 /* User.swift in Sources */, - 804273DD204EBD51006DF420 /* API.swift in Sources */, - 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */, - 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */, - 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */, - 80FA9068205314040069038F /* SEServer.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */, + 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */, + 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */, + 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */, + 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */, + 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */, + 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */, + 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */, + 4129937E208E25C200E12C49 /* PreferencesViewController.swift in Sources */, + 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */, + 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */, + 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */, + 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */, + 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */, + 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */, + 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */, + 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */, + 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */, + 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */, + 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */, + 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */, + 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */, + 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */, + 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */, + 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */, + 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */, + 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */, + 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */, + 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */, + 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */, + 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */, + 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76EF1D2C50720028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */, + 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */, + 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */, + 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */, + D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */, + 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */, + 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */, + 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */, + D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */, + 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */, + 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */, + 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */, + 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */, + 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */, + 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */, + 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */, + 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */, + 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */, + 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */, + 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */, + 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */, + 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */, + 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */, + 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */, + 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */, + 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */, + 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */, + 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */, + 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */, + 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */, + D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */, + 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */, + 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */, + 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */, + 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */, + 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */, + 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */, + 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */, + 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */, + 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */, + 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */, + 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */, + 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */, + 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */, + 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */, + 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */, + 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */, + 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */, + 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */, + 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */, + 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */, + 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */, + 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */, + D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */, + 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */, + 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */, + 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */, + 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */, + 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */, + 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */, + 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */, + 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */, + 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */, + 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */, + 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */, + 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */, + 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */, + 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */, + 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */, + 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */, + 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */, + 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */, + 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */, + B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */, + 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */, + 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */, + 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */, + 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */, + 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */, + 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */, + 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */, + 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */, + 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */, + 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */, + 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */, + D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */, + 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */, + 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */, + 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */, + 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */, + 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */, + 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */, + 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */, + 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */, + 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */, + 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */, + 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */, + 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */, + 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */, + 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */, + 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */, + D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */, + 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FA1D2C50720028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5542046E7DD00E21429 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4100B2842087779D00E2883A /* LogManager.swift in Sources */, + 80D0CE62205023710056B17F /* SECell.swift in Sources */, + 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */, + 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */, + 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */, + 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */, + 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */, + 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */, + 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */, + 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */, + 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */, + 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */, + 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */, + 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */, + 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */, + 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */, + 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */, + 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */, + 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */, + 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */, + 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */, + 80977AC2204F37C200C41435 /* SEState.swift in Sources */, + 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */, + 8076FDCA204863B900114F28 /* Channel.swift in Sources */, + 8076FDBD2048598100114F28 /* Subscription.swift in Sources */, + 804273DE204EBD51006DF420 /* APIClient.swift in Sources */, + 8076FDCB204863C500114F28 /* Attachment.swift in Sources */, + 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */, + 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */, + 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */, + 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */, + 8076FDC82048639700114F28 /* Message.swift in Sources */, + 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */, + 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */, + 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */, + 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */, + 80FA9066205313E20069038F /* SEContent.swift in Sources */, + 804273E0204EBD51006DF420 /* Version.swift in Sources */, + 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */, + 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */, + 8076FDA62048536800114F28 /* BaseModel.swift in Sources */, + 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */, + 804273DF204EBD51006DF420 /* APIError.swift in Sources */, + 806DB94320687697004ED8ED /* Alert.swift in Sources */, + 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */, + 800640F72049BA25006D990F /* SEScene.swift in Sources */, + 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */, + 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */, + 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */, + 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */, + 8076FDB3204856E200114F28 /* Auth.swift in Sources */, + 8076FDC9204863AF00114F28 /* Mention.swift in Sources */, + 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */, + 8076FDD22048648D00114F28 /* Email.swift in Sources */, + 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */, + 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */, + 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */, + 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */, + 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */, + 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */, + 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */, + 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */, + 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */, + 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */, + 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */, + 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */, + 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */, + 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */, + 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */, + 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */, + 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */, + 80D563752059325A008896D6 /* MimeType.swift in Sources */, + 8076FDA52048534200114F28 /* String+Random.swift in Sources */, + 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */, + 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */, + 8076FDCE2048642400114F28 /* User.swift in Sources */, + 804273DD204EBD51006DF420 /* API.swift in Sources */, + 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */, + 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */, + 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */, + 80FA9068205314040069038F /* SEServer.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; - targetProxy = 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */; - }; - 41DF77001D2C50720028DBF8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; - targetProxy = 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */; - }; - 807FB5612046E7DD00E21429 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */; - targetProxy = 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */; - }; + 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; + targetProxy = 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */; + }; + 41DF77001D2C50720028DBF8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; + targetProxy = 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */; + }; + 807FB5612046E7DD00E21429 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */; + targetProxy = 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 41DF76EC1D2C50720028DBF8 /* Base */, - ); - name = LaunchScreen.storyboard; - path = .; - sourceTree = ""; - }; - 41EB22381E5F056600AA3AE7 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 41A6191A1FA7065400CFFA69 /* cs */, - 41EB223B1E5F19EB00AA3AE7 /* de */, - 848088BB204370E8005022E8 /* el */, - 41EB22371E5F056600AA3AE7 /* en */, - 412184A520472F7900DAAA88 /* es */, - 35D2F140200A45E800B4BE5A /* fr */, - 1499781C1FA605CE007E013D /* pl */, - 41EB223A1E5F057F00AA3AE7 /* pt-BR */, - ); - name = Localizable.strings; - path = .; - sourceTree = ""; - }; - 80307E431FD75DC0006AD9EF /* VoiceOver.strings */ = { - isa = PBXVariantGroup; - children = ( - 80307E481FD75DD5006AD9EF /* cs */, - 80307E451FD75DCF006AD9EF /* de */, - 848088BC204370E9005022E8 /* el */, - 80307E421FD75DC0006AD9EF /* en */, - 412184A620472F7900DAAA88 /* es */, - 80307E461FD75DD1006AD9EF /* fr */, - 80307E471FD75DD2006AD9EF /* pl */, - 80307E441FD75DCB006AD9EF /* pt-BR */, - ); - name = VoiceOver.strings; - path = .; - sourceTree = ""; - }; - 807FB55C2046E7DD00E21429 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 807FB55D2046E7DD00E21429 /* Base */, - ); - name = Main.storyboard; - path = .; - sourceTree = ""; - }; - 807FB57120472B6A00E21429 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 807FB57420472B7000E21429 /* cs */, - 807FB57220472B6D00E21429 /* de */, - 807FB57620472B7300E21429 /* el */, - 807FB57720472B8200E21429 /* en */, - 807FB57520472B7200E21429 /* fr */, - 807FB57320472B6F00E21429 /* pl */, - 807FB57020472B6A00E21429 /* pt-BR */, - ); - name = Localizable.strings; - path = .; - sourceTree = ""; - }; - 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */ = { - isa = PBXVariantGroup; - children = ( - 80C7DD631FF46B8700E6647C /* cs */, - 80C7DD621FF46B8600E6647C /* de */, - 848088BA204370E8005022E8 /* el */, - 80C7DD5F1FF46B8000E6647C /* en */, - 412184A420472F7900DAAA88 /* es */, - 80C7DD651FF46B8C00E6647C /* fr */, - 80C7DD641FF46B8800E6647C /* pl */, - 80C7DD611FF46B8300E6647C /* pt-BR */, - ); - name = RCEmojiKit.strings; - path = .; - sourceTree = ""; - }; + 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 41DF76EC1D2C50720028DBF8 /* Base */, + ); + name = LaunchScreen.storyboard; + path = .; + sourceTree = ""; + }; + 41EB22381E5F056600AA3AE7 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 41A6191A1FA7065400CFFA69 /* cs */, + 41EB223B1E5F19EB00AA3AE7 /* de */, + 848088BB204370E8005022E8 /* el */, + 41EB22371E5F056600AA3AE7 /* en */, + 412184A520472F7900DAAA88 /* es */, + 35D2F140200A45E800B4BE5A /* fr */, + 1499781C1FA605CE007E013D /* pl */, + 41EB223A1E5F057F00AA3AE7 /* pt-BR */, + ); + name = Localizable.strings; + path = .; + sourceTree = ""; + }; + 80307E431FD75DC0006AD9EF /* VoiceOver.strings */ = { + isa = PBXVariantGroup; + children = ( + 80307E481FD75DD5006AD9EF /* cs */, + 80307E451FD75DCF006AD9EF /* de */, + 848088BC204370E9005022E8 /* el */, + 80307E421FD75DC0006AD9EF /* en */, + 412184A620472F7900DAAA88 /* es */, + 80307E461FD75DD1006AD9EF /* fr */, + 80307E471FD75DD2006AD9EF /* pl */, + 80307E441FD75DCB006AD9EF /* pt-BR */, + ); + name = VoiceOver.strings; + path = .; + sourceTree = ""; + }; + 807FB55C2046E7DD00E21429 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 807FB55D2046E7DD00E21429 /* Base */, + ); + name = Main.storyboard; + path = .; + sourceTree = ""; + }; + 807FB57120472B6A00E21429 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 807FB57420472B7000E21429 /* cs */, + 807FB57220472B6D00E21429 /* de */, + 807FB57620472B7300E21429 /* el */, + 807FB57720472B8200E21429 /* en */, + 807FB57520472B7200E21429 /* fr */, + 807FB57320472B6F00E21429 /* pl */, + 807FB57020472B6A00E21429 /* pt-BR */, + ); + name = Localizable.strings; + path = .; + sourceTree = ""; + }; + 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */ = { + isa = PBXVariantGroup; + children = ( + 80C7DD631FF46B8700E6647C /* cs */, + 80C7DD621FF46B8600E6647C /* de */, + 848088BA204370E8005022E8 /* el */, + 80C7DD5F1FF46B8000E6647C /* en */, + 412184A420472F7900DAAA88 /* es */, + 80C7DD651FF46B8C00E6647C /* fr */, + 80C7DD641FF46B8800E6647C /* pl */, + 80C7DD611FF46B8300E6647C /* pt-BR */, + ); + name = RCEmojiKit.strings; + path = .; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 41DF77051D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; + 41DF77051D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 41DF77061D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 41DF77081D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 41DF77061D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 41DF77081D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = 8M5NP3VM5V; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_SWIFT_FLAGS = "$(inherited) -Onone -D DEBUG \"-D\" \"COCOAPODS\""; - PRODUCT_BUNDLE_IDENTIFIER = sam.chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_DISABLE_SAFETY_CHECKS = NO; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 41DF77091D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = 8M5NP3VM5V; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = sam.chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - 41DF770B1D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Debug; - }; - 41DF770C1D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Release; - }; - 41DF770E1D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Debug; - }; - 41DF770F1D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Release; - }; - 41E69F0420050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_SWIFT_FLAGS = "$(inherited) -Onone -D DEBUG \"-D\" \"COCOAPODS\""; + PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_DISABLE_SAFETY_CHECKS = NO; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Debug; + }; + 41DF77091D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Beta; - }; - 41E69F0520050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = 8M5NP3VM5V; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-D\" \"BETA\""; - PRODUCT_BUNDLE_IDENTIFIER = sam.chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Beta; - }; - 41E69F0620050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Beta; - }; - 41E69F0720050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Beta; - }; - 807FB5632046E7DD00E21429 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 807FB5642046E7DD00E21429 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 807FB5652046E7DD00E21429 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Release; + }; + 41DF770B1D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Debug; + }; + 41DF770C1D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Release; + }; + 41DF770E1D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Debug; + }; + 41DF770F1D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Release; + }; + 41E69F0420050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Beta; + }; + 41E69F0520050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Beta; - }; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-D\" \"BETA\""; + PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Beta; + }; + 41E69F0620050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Beta; + }; + 41E69F0720050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Beta; + }; + 807FB5632046E7DD00E21429 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 807FB5642046E7DD00E21429 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 807FB5652046E7DD00E21429 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Beta; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF77051D2C50720028DBF8 /* Debug */, - 41DF77061D2C50720028DBF8 /* Release */, - 41E69F0420050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF77081D2C50720028DBF8 /* Debug */, - 41DF77091D2C50720028DBF8 /* Release */, - 41E69F0520050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF770B1D2C50720028DBF8 /* Debug */, - 41DF770C1D2C50720028DBF8 /* Release */, - 41E69F0620050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF770E1D2C50720028DBF8 /* Debug */, - 41DF770F1D2C50720028DBF8 /* Release */, - 41E69F0720050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 807FB5632046E7DD00E21429 /* Debug */, - 807FB5642046E7DD00E21429 /* Release */, - 807FB5652046E7DD00E21429 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; + 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF77051D2C50720028DBF8 /* Debug */, + 41DF77061D2C50720028DBF8 /* Release */, + 41E69F0420050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF77081D2C50720028DBF8 /* Debug */, + 41DF77091D2C50720028DBF8 /* Release */, + 41E69F0520050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF770B1D2C50720028DBF8 /* Debug */, + 41DF770C1D2C50720028DBF8 /* Release */, + 41E69F0620050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF770E1D2C50720028DBF8 /* Debug */, + 41DF770F1D2C50720028DBF8 /* Release */, + 41E69F0720050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 807FB5632046E7DD00E21429 /* Debug */, + 807FB5642046E7DD00E21429 /* Release */, + 807FB5652046E7DD00E21429 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ - }; - rootObject = 41DF76D71D2C50710028DBF8 /* Project object */; + }; + rootObject = 41DF76D71D2C50710028DBF8 /* Project object */; } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift index 48294a026c..06911554ee 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift @@ -359,6 +359,46 @@ extension ChatMessageCell { } +// MARK: Reactions + +extension ChatMessageCell { + fileprivate func updateReactions() { + let username = AuthManager.currentUser()?.username + + let models = Array(message.reactions.map { reaction -> ReactionViewModel in + let highlight: Bool + if let username = username { + highlight = reaction.usernames.contains(username) + } else { + highlight = false + } + + let emoji = reaction.emoji ?? "?" + let imageUrl = CustomEmoji.withShortname(emoji)?.imageUrl() + + return ReactionViewModel( + emoji: emoji, + imageUrl: imageUrl, + count: reaction.usernames.count.description, + highlight: highlight, + reactors: Array(reaction.usernames) + ) + }) + + reactionsListView.model = ReactionListViewModel(reactionViewModels: models) + + if message.reactions.count > 0 { + reactionsListView.isHidden = false + reactionsListViewConstraint.constant = 40 + } else { + reactionsListView.isHidden = true + reactionsListViewConstraint.constant = 0 + } + } +} + +// MARK: Themeable + extension ChatMessageCell { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) diff --git a/Rocket.ChatTests/Models/SubscriptionSpec.swift b/Rocket.ChatTests/Models/SubscriptionSpec.swift index 789273466a..9e20447721 100644 --- a/Rocket.ChatTests/Models/SubscriptionSpec.swift +++ b/Rocket.ChatTests/Models/SubscriptionSpec.swift @@ -266,4 +266,3 @@ class SubscriptionSpec: XCTestCase { XCTAssertEqual(subscription.directMessageUser, user, "directMessageUser is correct") } } - From 43d2b9f1225249f46a8d8adef7a8c887fe3f9046 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 25 Apr 2018 10:57:25 +0530 Subject: [PATCH 003/124] Chat text field background color added --- Rocket.Chat/Themeable.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index 98932b1508..05d26038eb 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -71,6 +71,8 @@ extension SLKTextView { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) self.textColor = theme.bodyText + self.layer.borderColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.2984980193) + self.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.04910321301) } } From 3785cdfa5c2294f7c963ebe7a365d80bebc52065 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 25 Apr 2018 11:21:27 +0530 Subject: [PATCH 004/124] Accent color added --- Rocket.Chat.xcodeproj/project.pbxproj | 9092 ++++++++--------- Rocket.Chat/Info.plist | 2 +- Rocket.Chat/Themeable.swift | 11 +- .../Cells/Chat/ChatMessageDaySeparator.swift | 8 + .../Cells/Chat/ChatMessageDaySeparator.xib | 5 +- 5 files changed, 4556 insertions(+), 4562 deletions(-) diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 2c9bb99b07..f9f41e2345 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -1,4621 +1,4601 @@ // !$*UTF8*$! { - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { /* Begin PBXBuildFile section */ - 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */; }; - 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */; }; - 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */; }; - 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */; }; - 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */; }; - 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */; }; - 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */; }; - 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */; }; - 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */; }; - 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */; }; - 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */; }; - 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */; }; - 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */; }; - 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 140A95E0202F526C003FD564 /* Drawing.storyboard */; }; - 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E3202F536D003FD564 /* DrawingViewController.swift */; }; - 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */; }; - 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */; }; - 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1435BFA21F9B601600FB2768 /* RCTextView.swift */; }; - 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14A6A83020421DF8008C210D /* ColorPickerView.swift */; }; - 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */; }; - 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */; }; - 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */; }; - 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A213202E5CBD00175FDC /* Black-29@3x.png */; }; - 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A216202E5CBE00175FDC /* Black-76@2x.png */; }; - 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A217202E5CBE00175FDC /* Black-60@3x.png */; }; - 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A218202E5CBE00175FDC /* Black-60@2x.png */; }; - 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A219202E5CBE00175FDC /* Black-29@2x.png */; }; - 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */; }; - 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */; }; - 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */; }; - 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */; }; - 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A22F202E5D0400175FDC /* Red-60@3x.png */; }; - 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A230202E5D0400175FDC /* Red-29@3x.png */; }; - 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A232202E5D0400175FDC /* Red-29@2x.png */; }; - 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A233202E5D0400175FDC /* Red-76@2x.png */; }; - 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A234202E5D0400175FDC /* Red-60@2x.png */; }; - 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A235202E5D0500175FDC /* Red-40@3x.png */; }; - 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A236202E5D0500175FDC /* Red-40@2x.png */; }; - 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */; }; - 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A238202E5D0600175FDC /* Red-76@3x.png */; }; - 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */; }; - 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24C202E64B100175FDC /* BnW-40@3x.png */; }; - 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24D202E64B100175FDC /* BnW-29@2x.png */; }; - 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24E202E64B100175FDC /* BnW-60@2x.png */; }; - 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24F202E64B100175FDC /* BnW-60@3x.png */; }; - 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A250202E64B100175FDC /* BnW-29@3x.png */; }; - 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A251202E64B100175FDC /* BnW-76@2x.png */; }; - 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A252202E64B100175FDC /* BnW-40@2x.png */; }; - 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A254202E64B200175FDC /* BnW-76@3x.png */; }; - 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A263202E653D00175FDC /* Grey-40@2x.png */; }; - 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A264202E653D00175FDC /* Grey-29@2x.png */; }; - 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A265202E653D00175FDC /* Grey-76@3x.png */; }; - 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */; }; - 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A267202E653D00175FDC /* Grey-76@2x.png */; }; - 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A268202E653E00175FDC /* Grey-40@3x.png */; }; - 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A269202E653E00175FDC /* Grey-29@3x.png */; }; - 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26A202E653E00175FDC /* Grey-60@3x.png */; }; - 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26B202E653E00175FDC /* Grey-60@2x.png */; }; - 14F8A280202E659000175FDC /* White-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A277202E658E00175FDC /* White-76@2x.png */; }; - 14F8A281202E659000175FDC /* White-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A278202E658E00175FDC /* White-40@3x.png */; }; - 14F8A282202E659000175FDC /* White-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A279202E658E00175FDC /* White-76@3x.png */; }; - 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27A202E658F00175FDC /* White-83.5@2x.png */; }; - 14F8A284202E659000175FDC /* White-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27B202E658F00175FDC /* White-60@2x.png */; }; - 14F8A285202E659000175FDC /* White-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27C202E658F00175FDC /* White-29@3x.png */; }; - 14F8A286202E659000175FDC /* White-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27D202E658F00175FDC /* White-29@2x.png */; }; - 14F8A287202E659000175FDC /* White-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27E202E658F00175FDC /* White-40@2x.png */; }; - 14F8A288202E659000175FDC /* White-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27F202E658F00175FDC /* White-60@3x.png */; }; - 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A289202E65C500175FDC /* Blue-29@3x.png */; }; - 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28A202E65C600175FDC /* Blue-60@2x.png */; }; - 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28B202E65C600175FDC /* Blue-60@3x.png */; }; - 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28C202E65C600175FDC /* Blue-76@3x.png */; }; - 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */; }; - 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28E202E65C600175FDC /* Blue-40@2x.png */; }; - 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28F202E65C700175FDC /* Blue-29@2x.png */; }; - 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A290202E65C700175FDC /* Blue-40@3x.png */; }; - 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A291202E65C700175FDC /* Blue-76@2x.png */; }; - 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */; }; - 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */; }; - 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */; }; - 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */; }; - 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */; }; - 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */; }; - 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */; }; - 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */; }; - 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */; }; - 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */; }; - 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */; }; - 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 333207FE20766E4F00AD3290 /* NotificationViewController.xib */; }; - 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */; }; - 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; + 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */; }; + 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */; }; + 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */; }; + 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */; }; + 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */; }; + 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */; }; + 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */; }; + 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */; }; + 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */; }; + 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */; }; + 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */; }; + 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */; }; + 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */; }; + 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 140A95E0202F526C003FD564 /* Drawing.storyboard */; }; + 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E3202F536D003FD564 /* DrawingViewController.swift */; }; + 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */; }; + 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */; }; + 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1435BFA21F9B601600FB2768 /* RCTextView.swift */; }; + 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14A6A83020421DF8008C210D /* ColorPickerView.swift */; }; + 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */; }; + 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */; }; + 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */; }; + 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A213202E5CBD00175FDC /* Black-29@3x.png */; }; + 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A216202E5CBE00175FDC /* Black-76@2x.png */; }; + 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A217202E5CBE00175FDC /* Black-60@3x.png */; }; + 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A218202E5CBE00175FDC /* Black-60@2x.png */; }; + 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A219202E5CBE00175FDC /* Black-29@2x.png */; }; + 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */; }; + 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */; }; + 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */; }; + 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */; }; + 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A22F202E5D0400175FDC /* Red-60@3x.png */; }; + 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A230202E5D0400175FDC /* Red-29@3x.png */; }; + 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A232202E5D0400175FDC /* Red-29@2x.png */; }; + 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A233202E5D0400175FDC /* Red-76@2x.png */; }; + 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A234202E5D0400175FDC /* Red-60@2x.png */; }; + 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A235202E5D0500175FDC /* Red-40@3x.png */; }; + 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A236202E5D0500175FDC /* Red-40@2x.png */; }; + 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */; }; + 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A238202E5D0600175FDC /* Red-76@3x.png */; }; + 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */; }; + 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24C202E64B100175FDC /* BnW-40@3x.png */; }; + 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24D202E64B100175FDC /* BnW-29@2x.png */; }; + 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24E202E64B100175FDC /* BnW-60@2x.png */; }; + 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24F202E64B100175FDC /* BnW-60@3x.png */; }; + 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A250202E64B100175FDC /* BnW-29@3x.png */; }; + 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A251202E64B100175FDC /* BnW-76@2x.png */; }; + 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A252202E64B100175FDC /* BnW-40@2x.png */; }; + 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A254202E64B200175FDC /* BnW-76@3x.png */; }; + 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A263202E653D00175FDC /* Grey-40@2x.png */; }; + 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A264202E653D00175FDC /* Grey-29@2x.png */; }; + 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A265202E653D00175FDC /* Grey-76@3x.png */; }; + 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */; }; + 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A267202E653D00175FDC /* Grey-76@2x.png */; }; + 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A268202E653E00175FDC /* Grey-40@3x.png */; }; + 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A269202E653E00175FDC /* Grey-29@3x.png */; }; + 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26A202E653E00175FDC /* Grey-60@3x.png */; }; + 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26B202E653E00175FDC /* Grey-60@2x.png */; }; + 14F8A280202E659000175FDC /* White-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A277202E658E00175FDC /* White-76@2x.png */; }; + 14F8A281202E659000175FDC /* White-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A278202E658E00175FDC /* White-40@3x.png */; }; + 14F8A282202E659000175FDC /* White-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A279202E658E00175FDC /* White-76@3x.png */; }; + 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27A202E658F00175FDC /* White-83.5@2x.png */; }; + 14F8A284202E659000175FDC /* White-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27B202E658F00175FDC /* White-60@2x.png */; }; + 14F8A285202E659000175FDC /* White-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27C202E658F00175FDC /* White-29@3x.png */; }; + 14F8A286202E659000175FDC /* White-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27D202E658F00175FDC /* White-29@2x.png */; }; + 14F8A287202E659000175FDC /* White-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27E202E658F00175FDC /* White-40@2x.png */; }; + 14F8A288202E659000175FDC /* White-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27F202E658F00175FDC /* White-60@3x.png */; }; + 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A289202E65C500175FDC /* Blue-29@3x.png */; }; + 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28A202E65C600175FDC /* Blue-60@2x.png */; }; + 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28B202E65C600175FDC /* Blue-60@3x.png */; }; + 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28C202E65C600175FDC /* Blue-76@3x.png */; }; + 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */; }; + 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28E202E65C600175FDC /* Blue-40@2x.png */; }; + 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28F202E65C700175FDC /* Blue-29@2x.png */; }; + 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A290202E65C700175FDC /* Blue-40@3x.png */; }; + 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A291202E65C700175FDC /* Blue-76@2x.png */; }; + 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */; }; + 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */; }; + 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */; }; + 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */; }; + 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */; }; + 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */; }; + 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */; }; + 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */; }; + 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */; }; + 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */; }; + 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */; }; + 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 333207FE20766E4F00AD3290 /* NotificationViewController.xib */; }; + 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */; }; + 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; 3353DBF8206787E500738D1C /* Themeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Themeable.swift */; }; 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; - 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; - 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; - 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; - 33A5C9CB206A565800FE1C8F /* travel.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C2206A565800FE1C8F /* travel.json */; }; - 33A5C9CC206A565800FE1C8F /* regional.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C3206A565800FE1C8F /* regional.json */; }; - 33A5C9CD206A565800FE1C8F /* flags.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C4206A565800FE1C8F /* flags.json */; }; - 33A5C9CE206A565800FE1C8F /* people.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C5206A565800FE1C8F /* people.json */; }; - 33A5C9CF206A565800FE1C8F /* objects.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C6206A565800FE1C8F /* objects.json */; }; - 33A5C9D0206A565800FE1C8F /* food.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C7206A565800FE1C8F /* food.json */; }; - 33A5C9D1206A565800FE1C8F /* activity.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C8206A565800FE1C8F /* activity.json */; }; - 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; - 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; - 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; - 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; - 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; - 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; - 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; - 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */; }; - 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */; }; - 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */; }; - 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */; }; - 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */; }; - 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */; }; - 4100B2842087779D00E2883A /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; - 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF001F8D0A1700F67E89 /* AppManager.swift */; }; - 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */; }; - 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B51F680DB00019854B /* NetworkCoordinator.swift */; }; - 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B71F6825C30019854B /* NetworkManagerSpec.swift */; }; - 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */; }; - 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; - 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */; }; - 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */; }; - 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4102E3A91E532323004BAA82 /* Preferences.storyboard */; }; - 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */; }; - 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */; }; - 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */; }; - 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */; }; - 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */; }; - 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */; }; - 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */; }; - 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */; }; - 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */; }; - 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */; }; - 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */; }; - 4129937E208E25C200E12C49 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4129937D208E25C100E12C49 /* PreferencesViewController.swift */; }; - 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */; }; - 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */; }; - 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */; }; - 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */; }; - 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; - 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */; }; - 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */; }; - 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412EF3C52050507C001689A3 /* ReusableViewText.xib */; }; - 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; - 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */; }; - 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */; }; - 413996171F3B44500075F96E /* UploadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 413996161F3B44500075F96E /* UploadHelper.swift */; }; - 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */; }; - 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */; }; - 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */; }; - 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */; }; - 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; - 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C8E1F2A116900790EA7 /* ServerManager.swift */; }; - 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */; }; - 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF51D46320F00093E10 /* ResponseMessage.swift */; }; - 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF91D46395400093E10 /* SocketManager.swift */; }; - 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FFB1D46395900093E10 /* SocketResponse.swift */; }; - 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */; }; - 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; - 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */; }; - 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */; }; - 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */; }; - 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */; }; - 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */; }; - 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */; }; - 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */; }; - 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */; }; - 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */; }; - 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */; }; - 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4153E80420504BE700FBC26B /* ReusableViewText.swift */; }; - 41552F661D30308C0081438D /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; - 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F671D3035D80081438D /* SocketManagerSpec.swift */; }; - 4159720C1D3DB854002258F4 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; - 4159720E1D3DB882002258F4 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; - 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */; }; - 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */; }; - 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */; }; - 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */; }; - 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */; }; - 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133391D46E0A200E09DA2 /* AuthSpec.swift */; }; - 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333B1D46E32F00E09DA2 /* UserSpec.swift */; }; - 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */; }; - 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */; }; - 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */; }; - 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; - 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */; }; - 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1521D651A8800AAAE49 /* UserManager.swift */; }; - 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */; }; - 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */; }; - 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */; }; - 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */; }; - 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB121D2D99960086DAC8 /* BaseViewController.swift */; }; - 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */; }; - 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */; }; - 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; - 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */; }; - 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */; }; - 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */; }; - 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 41833F4D1DEF16B600E54655 /* Keys.plist */; }; - 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */; }; - 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */; }; - 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */; }; - 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */; }; - 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */; }; - 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */; }; - 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */; }; - 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */; }; - 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */; }; - 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; - 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419205481D52EDE6004EEC5F /* UILabelExtension.swift */; }; - 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */; }; - 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; - 4199A9891DABCC570035F820 /* Emojione.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4199A9881DABCC570035F820 /* Emojione.swift */; }; - 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */; }; - 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */; }; - 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */; }; - 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */; }; - 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */; }; - 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA31F3CA21A005F224B /* DownloadManager.swift */; }; - 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */; }; - 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */; }; - 41A79C0F1D2F085F00A1968E /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; - 41A79C131D2F09F200A1968E /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; - 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; - 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */; }; - 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */; }; - 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */; }; - 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */; }; - 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD481E9DBB100007A458 /* LoaderView.swift */; }; - 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */; }; - 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */; }; - 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; - 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C61FBF0F9D000510B7 /* WindowManager.swift */; }; - 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */; }; - 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96361207E48260068F1A6 /* MessageTextValidator.swift */; }; - 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */; }; - 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */; }; - 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; - 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */; }; - 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */; }; - 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C275DE1D848005003C88CF /* AvatarView.swift */; }; - 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41C275E01D84815C003C88CF /* AvatarView.xib */; }; - 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */; }; - 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */; }; - 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */; }; - 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */; }; - 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */; }; - 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */; }; - 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */; }; - 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */; }; - 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */; }; - 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */; }; - 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D7CA861E644E47000F38EA /* MessageExtensions.swift */; }; - 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */; }; - 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */; }; - 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */; }; - 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; - 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; - 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1C1D38471700896FC0 /* MessageManager.swift */; }; - 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */; }; - 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */; }; - 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */; }; - 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */; }; - 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */; }; - 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */; }; - 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; - 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */; }; - 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */; }; - 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2F9FE1D414DE800238DFD /* Chat.storyboard */; }; - 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */; }; - 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */; }; - 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA061D41513C00238DFD /* ChatViewController.swift */; }; - 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */; }; - 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */; }; - 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */; }; - 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */; }; - 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */; }; - 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */; }; - 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 41EB22381E5F056600AA3AE7 /* Localizable.strings */; }; - 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */; }; - 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */; }; - 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */; }; - 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */; }; - 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */; }; - 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; - 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */; }; - 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */; }; - 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; - 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA31E3708B10041C5C5 /* PushManager.swift */; }; - 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */; }; - 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */; }; - 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4141F852B720074B2F4 /* SelectField.swift */; }; - 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4181F852D670074B2F4 /* CustomField.swift */; }; - 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77BA81501F87C4CB00F295F4 /* TextField.swift */; }; - 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261241F97445300724A1F /* AuthSettingsSpec.swift */; }; - 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */; }; - 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261291F97453600724A1F /* CustomFieldsSpec.swift */; }; - 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */; }; - 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612B1F97453600724A1F /* TextFieldSpec.swift */; }; - 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */; }; - 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */; }; - 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; - 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */; }; - 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */; }; - 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; - 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */; }; - 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */; }; - 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; - 800640F72049BA25006D990F /* SEScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800640F62049BA25006D990F /* SEScene.swift */; }; - 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */; }; - 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */; }; - 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800F38EC2019492D0005CB78 /* DeepLink.swift */; }; - 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */; }; - 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */; }; - 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */; }; - 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */; }; - 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */; }; - 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */; }; - 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD491F728E6A00D9A692 /* MemberCell.swift */; }; - 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */; }; - 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */; }; - 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */; }; - 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */; }; - 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8661FD6B4F400EE1A4E /* Command.swift */; }; - 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; - 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; - 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; - 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */; }; - 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */; }; - 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; - 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */; }; - 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */; }; - 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */; }; - 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */; }; - 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */; }; - 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */; }; - 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */; }; - 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */; }; - 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */; }; - 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */; }; - 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */; }; - 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */; }; - 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */; }; - 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */; }; - 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */; }; - 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; - 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */; }; - 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */; }; - 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */; }; - 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */; }; - 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */; }; - 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498ED1F7A8380005477EC /* MeRequest.swift */; }; - 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */; }; - 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */; }; - 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */; }; - 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F12059B6F60067157B /* VideoInfo.swift */; }; - 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */; }; - 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E102049C7340072CD23 /* SENavigationController.swift */; }; - 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; - 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */; }; - 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */; }; - 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80307E431FD75DC0006AD9EF /* VoiceOver.strings */; }; - 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */; }; - 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 803782B61FB4751D00DED049 /* RealmTestCase.swift */; }; - 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */; }; - 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C0412028C7EF007E21FA /* ReactorListView.swift */; }; - 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8041C0432028C828007E21FA /* ReactorListView.xib */; }; - 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */; }; - 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */; }; - 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; - 804273DD204EBD51006DF420 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; - 804273DE204EBD51006DF420 /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; - 804273DF204EBD51006DF420 /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; - 804273E0204EBD51006DF420 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; - 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; - 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; - 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */; }; - 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */; }; - 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC341FFC03380033151B /* CustomEmojiManager.swift */; }; - 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC361FFC08870033151B /* CustomEmoji.swift */; }; - 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */; }; - 806401311FB09DE800990572 /* Permission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401301FB09DE800990572 /* Permission.swift */; }; - 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401321FB09EC400990572 /* PermissionModelMapping.swift */; }; - 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401341FB09F8A00990572 /* PermissionManager.swift */; }; - 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 806465EB1FED19B9001F27DB /* EmojiView.xib */; }; - 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806465ED1FED1AFE001F27DB /* EmojiView.swift */; }; - 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */; }; - 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FE20079734009FE94D /* DeleteMessageRequest.swift */; }; - 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */; }; - 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */; }; - 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */; }; - 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; - 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8069D26D1FFF876D00C75926 /* Emoji.swift */; }; - 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */; }; - 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */; }; - 806DB94320687697004ED8ED /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; - 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; - 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */; }; - 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */; }; - 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */; }; - 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */; }; - 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371991F94E83600D53ADF /* SocketError.swift */; }; - 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719B1F963FA400D53ADF /* APITestCase.swift */; }; - 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */; }; - 807371A01F96937100D53ADF /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719F1F96937100D53ADF /* LoginService.swift */; }; - 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */; }; - 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */; }; - 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9920484A6000114F28 /* SEStore.swift */; }; - 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; - 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; - 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; - 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */; }; - 8076FDA42048533000114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; - 8076FDA52048534200114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; - 8076FDA62048536800114F28 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; - 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA8204853DE00114F28 /* RealmExecute.swift */; }; - 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */; }; - 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */; }; - 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */; }; - 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */; }; - 8076FDB3204856E200114F28 /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; - 8076FDB52048571200114F28 /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; - 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; - 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */; }; - 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; - 8076FDBD2048598100114F28 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; - 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */; }; - 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; - 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC62048632300114F28 /* SubscriptionQueries.swift */; }; - 8076FDC82048639700114F28 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; - 8076FDC9204863AF00114F28 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; - 8076FDCA204863B900114F28 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; - 8076FDCB204863C500114F28 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; - 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; - 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; - 8076FDCE2048642400114F28 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; - 8076FDD12048646500114F28 /* MessageReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD02048646500114F28 /* MessageReply.swift */; }; - 8076FDD22048648D00114F28 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; - 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; - 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD5204864E700114F28 /* UserQueries.swift */; }; - 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD72048654F00114F28 /* UserUtils.swift */; }; - 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD920489F5900114F28 /* SEViewController.swift */; }; - 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */; }; - 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */; }; - 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; - 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; - 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDEC2049A5F600114F28 /* SECellModel.swift */; }; - 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */; }; - 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */; }; - 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */; }; - 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */; }; - 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0520751ED1006B600E /* SpotlightClient.swift */; }; - 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0720751EDB006B600E /* SpotlightRequest.swift */; }; - 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */; }; - 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */; }; - 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C11207522EF006B600E /* LoginServicesRequest.swift */; }; - 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53C2044B49800E21429 /* Emojione+Transform.swift */; }; - 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */; }; - 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */; }; - 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 807FB55C2046E7DD00E21429 /* Main.storyboard */; }; - 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB568204729E500E21429 /* SEServersViewController.swift */; }; - 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */; }; - 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 807FB57120472B6A00E21429 /* Localizable.strings */; }; - 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB581204837AF00E21429 /* SEServersViewModel.swift */; }; - 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */; }; - 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; - 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */; }; - 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792371FB14B3300EFE77F /* PermissionSpec.swift */; }; - 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; - 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; - 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; - 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; - 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; - 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB5204EEF1E00C41435 /* SelectServer.swift */; }; - 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB8204EFBCC00C41435 /* SENavigation.swift */; }; - 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */; }; - 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABE204F36F200C41435 /* SESearchState.swift */; }; - 80977AC2204F37C200C41435 /* SEState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC1204F37C200C41435 /* SEState.swift */; }; - 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */; }; - 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */; }; - 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */; }; - 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530F1FE2F17D00833DD2 /* ReactionView.swift */; }; - 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53111FE2F2F900833DD2 /* ReactionView.xib */; }; - 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53131FE3294400833DD2 /* ReactionListView.xib */; }; - 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; - 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; - 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; - 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */; }; - 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */; }; - 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */; }; - 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */; }; - 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */; }; - 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */; }; - 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */; }; - 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C561F71D2E400FE5AC4 /* APISpec.swift */; }; - 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */; }; - 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */; }; - 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */; }; - 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */; }; - 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */; }; - 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */; }; - 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80CFB5711F8D697100FC9715 /* ReplyView.xib */; }; - 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */; }; - 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */; }; - 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE5F205016B40056B17F /* SEServerCell.swift */; }; - 80D0CE62205023710056B17F /* SECell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE61205023710056B17F /* SECell.swift */; }; - 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE63205034280056B17F /* SEServerCellModel.swift */; }; - 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6520503C860056B17F /* SERoomCell.swift */; }; - 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE6720503C970056B17F /* SERoomCell.xib */; }; - 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */; }; - 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; - 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6E20509C100056B17F /* SEAvatarView.swift */; }; - 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE7020509C230056B17F /* SEAvatarView.xib */; }; - 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; - 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; - 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; - 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; - 80D5637220592D32008896D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80D5637120592D32008896D6 /* Assets.xcassets */; }; - 80D563752059325A008896D6 /* MimeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D563742059325A008896D6 /* MimeType.swift */; }; - 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5637620593533008896D6 /* ParseItemProviders.swift */; }; - 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D955C1202154A300E3F281 /* CASViewController.swift */; }; - 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; - 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; - 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */ = {isa = PBXBuildFile; fileRef = 80DC9A6F206BAC8B00032BE0 /* mimetype.json */; }; - 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */; }; - 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */; }; - 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */; }; - 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; - 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */; }; - 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */; }; - 80FA9066205313E20069038F /* SEContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9065205313E20069038F /* SEContent.swift */; }; - 80FA9068205314040069038F /* SEServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9067205314040069038F /* SEServer.swift */; }; - 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906920569F890069038F /* SEComposeFileCell.swift */; }; - 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA906B20569FA10069038F /* SEComposeFileCell.xib */; }; - 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */; }; - 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */; }; - 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90712056C1190069038F /* SEComposeTextCell.swift */; }; - 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA90732056C1350069038F /* SEComposeTextCell.xib */; }; - 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */; }; - 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */; }; - 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA907C2057F4650069038F /* SubmitContent.swift */; }; - 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FE8DED206584EA0099170E /* SEFileDetailView.xib */; }; - 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FE8DEF206587510099170E /* SEFileDetailView.swift */; }; - 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */; }; - 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */; }; - 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */; }; - 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */; }; - 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */; }; - 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D21F8CF08100233561 /* FormTableViewCell.swift */; }; - 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */; }; - 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */; }; - 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */; }; - 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */; }; - 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */; }; - 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */; }; - 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */; }; - 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */; }; - 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */; }; - 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */; }; - 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */; }; - 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */; }; - 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */; }; - 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */; }; - 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */; }; - 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */; }; - 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */; }; - 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */; }; - 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */; }; - 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */; }; - 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */; }; - 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */; }; - 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */; }; - 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */; }; - 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888FA204623A900E51306 /* UpdateUserRequest.swift */; }; - 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */; }; - 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */; }; - A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */; }; - AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */; }; - B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */; }; - B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */; }; - D10E9C1A1F643457007F1796 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; - D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */; }; - D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */; }; - D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C211F643616007F1796 /* MentionModelMapping.swift */; }; - D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */; }; - D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */; }; - D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */; }; - D15C83861F70991F001AB155 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; - D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */; }; - D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675EB1F716A0D00406FB4 /* LoginRequest.swift */; }; - D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */; }; - D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */; }; - D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */; }; - D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */; }; - D1D535EC1F7081FA006625D2 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; - D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; - D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535F01F70864C006625D2 /* InfoRequest.swift */; }; - D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */; }; - D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */; }; - D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28221DFD86C300D6019C /* LauncherProtocol.swift */; }; - D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */; }; - D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */; }; + 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; + 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; + 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; + 33A5C9CB206A565800FE1C8F /* travel.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C2206A565800FE1C8F /* travel.json */; }; + 33A5C9CC206A565800FE1C8F /* regional.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C3206A565800FE1C8F /* regional.json */; }; + 33A5C9CD206A565800FE1C8F /* flags.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C4206A565800FE1C8F /* flags.json */; }; + 33A5C9CE206A565800FE1C8F /* people.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C5206A565800FE1C8F /* people.json */; }; + 33A5C9CF206A565800FE1C8F /* objects.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C6206A565800FE1C8F /* objects.json */; }; + 33A5C9D0206A565800FE1C8F /* food.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C7206A565800FE1C8F /* food.json */; }; + 33A5C9D1206A565800FE1C8F /* activity.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C8206A565800FE1C8F /* activity.json */; }; + 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; + 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; + 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; + 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; + 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; + 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; + 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; + 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */; }; + 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */; }; + 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */; }; + 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */; }; + 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */; }; + 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */; }; + 4100B2842087779D00E2883A /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; + 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF001F8D0A1700F67E89 /* AppManager.swift */; }; + 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */; }; + 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B51F680DB00019854B /* NetworkCoordinator.swift */; }; + 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B71F6825C30019854B /* NetworkManagerSpec.swift */; }; + 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */; }; + 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; + 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */; }; + 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */; }; + 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4102E3A91E532323004BAA82 /* Preferences.storyboard */; }; + 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */; }; + 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */; }; + 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */; }; + 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */; }; + 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */; }; + 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */; }; + 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */; }; + 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */; }; + 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */; }; + 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */; }; + 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */; }; + 4129937E208E25C200E12C49 /* (null) in Sources */ = {isa = PBXBuildFile; }; + 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */; }; + 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */; }; + 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */; }; + 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */; }; + 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; + 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */; }; + 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */; }; + 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412EF3C52050507C001689A3 /* ReusableViewText.xib */; }; + 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; + 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */; }; + 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */; }; + 413996171F3B44500075F96E /* UploadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 413996161F3B44500075F96E /* UploadHelper.swift */; }; + 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */; }; + 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */; }; + 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */; }; + 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */; }; + 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; + 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C8E1F2A116900790EA7 /* ServerManager.swift */; }; + 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */; }; + 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF51D46320F00093E10 /* ResponseMessage.swift */; }; + 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF91D46395400093E10 /* SocketManager.swift */; }; + 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FFB1D46395900093E10 /* SocketResponse.swift */; }; + 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */; }; + 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; + 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */; }; + 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */; }; + 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */; }; + 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */; }; + 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */; }; + 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */; }; + 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */; }; + 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */; }; + 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */; }; + 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */; }; + 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4153E80420504BE700FBC26B /* ReusableViewText.swift */; }; + 41552F661D30308C0081438D /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; + 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F671D3035D80081438D /* SocketManagerSpec.swift */; }; + 4159720C1D3DB854002258F4 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; + 4159720E1D3DB882002258F4 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; + 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */; }; + 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */; }; + 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */; }; + 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */; }; + 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */; }; + 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133391D46E0A200E09DA2 /* AuthSpec.swift */; }; + 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333B1D46E32F00E09DA2 /* UserSpec.swift */; }; + 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */; }; + 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */; }; + 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */; }; + 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; + 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */; }; + 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1521D651A8800AAAE49 /* UserManager.swift */; }; + 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */; }; + 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */; }; + 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */; }; + 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */; }; + 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB121D2D99960086DAC8 /* BaseViewController.swift */; }; + 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */; }; + 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */; }; + 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; + 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */; }; + 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */; }; + 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */; }; + 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 41833F4D1DEF16B600E54655 /* Keys.plist */; }; + 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */; }; + 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */; }; + 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */; }; + 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */; }; + 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */; }; + 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */; }; + 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */; }; + 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */; }; + 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */; }; + 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; + 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419205481D52EDE6004EEC5F /* UILabelExtension.swift */; }; + 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */; }; + 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; + 4199A9891DABCC570035F820 /* Emojione.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4199A9881DABCC570035F820 /* Emojione.swift */; }; + 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */; }; + 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */; }; + 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */; }; + 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */; }; + 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */; }; + 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA31F3CA21A005F224B /* DownloadManager.swift */; }; + 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */; }; + 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */; }; + 41A79C0F1D2F085F00A1968E /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; + 41A79C131D2F09F200A1968E /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; + 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; + 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */; }; + 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */; }; + 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */; }; + 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */; }; + 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD481E9DBB100007A458 /* LoaderView.swift */; }; + 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */; }; + 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */; }; + 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; + 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C61FBF0F9D000510B7 /* WindowManager.swift */; }; + 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */; }; + 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96361207E48260068F1A6 /* MessageTextValidator.swift */; }; + 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */; }; + 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */; }; + 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; + 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */; }; + 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */; }; + 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C275DE1D848005003C88CF /* AvatarView.swift */; }; + 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41C275E01D84815C003C88CF /* AvatarView.xib */; }; + 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */; }; + 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */; }; + 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */; }; + 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */; }; + 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */; }; + 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */; }; + 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */; }; + 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */; }; + 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */; }; + 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */; }; + 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D7CA861E644E47000F38EA /* MessageExtensions.swift */; }; + 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */; }; + 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */; }; + 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */; }; + 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; + 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; + 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1C1D38471700896FC0 /* MessageManager.swift */; }; + 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */; }; + 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */; }; + 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */; }; + 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */; }; + 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */; }; + 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */; }; + 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; + 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */; }; + 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */; }; + 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2F9FE1D414DE800238DFD /* Chat.storyboard */; }; + 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */; }; + 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */; }; + 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA061D41513C00238DFD /* ChatViewController.swift */; }; + 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */; }; + 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */; }; + 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */; }; + 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */; }; + 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */; }; + 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */; }; + 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 41EB22381E5F056600AA3AE7 /* Localizable.strings */; }; + 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */; }; + 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */; }; + 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */; }; + 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */; }; + 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */; }; + 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; + 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */; }; + 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */; }; + 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; + 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA31E3708B10041C5C5 /* PushManager.swift */; }; + 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */; }; + 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */; }; + 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4141F852B720074B2F4 /* SelectField.swift */; }; + 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4181F852D670074B2F4 /* CustomField.swift */; }; + 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77BA81501F87C4CB00F295F4 /* TextField.swift */; }; + 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261241F97445300724A1F /* AuthSettingsSpec.swift */; }; + 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */; }; + 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261291F97453600724A1F /* CustomFieldsSpec.swift */; }; + 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */; }; + 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612B1F97453600724A1F /* TextFieldSpec.swift */; }; + 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */; }; + 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */; }; + 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; + 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */; }; + 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */; }; + 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; + 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */; }; + 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */; }; + 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; + 800640F72049BA25006D990F /* SEScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800640F62049BA25006D990F /* SEScene.swift */; }; + 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */; }; + 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */; }; + 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800F38EC2019492D0005CB78 /* DeepLink.swift */; }; + 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */; }; + 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */; }; + 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */; }; + 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */; }; + 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */; }; + 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */; }; + 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD491F728E6A00D9A692 /* MemberCell.swift */; }; + 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */; }; + 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */; }; + 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */; }; + 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */; }; + 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8661FD6B4F400EE1A4E /* Command.swift */; }; + 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; + 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; + 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; + 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */; }; + 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */; }; + 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; + 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */; }; + 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */; }; + 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */; }; + 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */; }; + 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */; }; + 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */; }; + 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */; }; + 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */; }; + 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */; }; + 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */; }; + 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */; }; + 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */; }; + 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */; }; + 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */; }; + 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */; }; + 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; + 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */; }; + 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */; }; + 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */; }; + 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */; }; + 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */; }; + 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498ED1F7A8380005477EC /* MeRequest.swift */; }; + 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */; }; + 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */; }; + 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */; }; + 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F12059B6F60067157B /* VideoInfo.swift */; }; + 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */; }; + 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E102049C7340072CD23 /* SENavigationController.swift */; }; + 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; + 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */; }; + 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */; }; + 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80307E431FD75DC0006AD9EF /* VoiceOver.strings */; }; + 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */; }; + 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 803782B61FB4751D00DED049 /* RealmTestCase.swift */; }; + 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */; }; + 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C0412028C7EF007E21FA /* ReactorListView.swift */; }; + 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8041C0432028C828007E21FA /* ReactorListView.xib */; }; + 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */; }; + 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */; }; + 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; + 804273DD204EBD51006DF420 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; + 804273DE204EBD51006DF420 /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; + 804273DF204EBD51006DF420 /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; + 804273E0204EBD51006DF420 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; + 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; + 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; + 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */; }; + 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */; }; + 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC341FFC03380033151B /* CustomEmojiManager.swift */; }; + 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC361FFC08870033151B /* CustomEmoji.swift */; }; + 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */; }; + 806401311FB09DE800990572 /* Permission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401301FB09DE800990572 /* Permission.swift */; }; + 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401321FB09EC400990572 /* PermissionModelMapping.swift */; }; + 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401341FB09F8A00990572 /* PermissionManager.swift */; }; + 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 806465EB1FED19B9001F27DB /* EmojiView.xib */; }; + 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806465ED1FED1AFE001F27DB /* EmojiView.swift */; }; + 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */; }; + 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FE20079734009FE94D /* DeleteMessageRequest.swift */; }; + 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */; }; + 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */; }; + 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */; }; + 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; + 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8069D26D1FFF876D00C75926 /* Emoji.swift */; }; + 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */; }; + 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */; }; + 806DB94320687697004ED8ED /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; + 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; + 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */; }; + 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */; }; + 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */; }; + 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */; }; + 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371991F94E83600D53ADF /* SocketError.swift */; }; + 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719B1F963FA400D53ADF /* APITestCase.swift */; }; + 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */; }; + 807371A01F96937100D53ADF /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719F1F96937100D53ADF /* LoginService.swift */; }; + 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */; }; + 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */; }; + 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9920484A6000114F28 /* SEStore.swift */; }; + 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; + 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; + 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; + 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */; }; + 8076FDA42048533000114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; + 8076FDA52048534200114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; + 8076FDA62048536800114F28 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; + 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA8204853DE00114F28 /* RealmExecute.swift */; }; + 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */; }; + 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */; }; + 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */; }; + 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */; }; + 8076FDB3204856E200114F28 /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; + 8076FDB52048571200114F28 /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; + 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; + 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */; }; + 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; + 8076FDBD2048598100114F28 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; + 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */; }; + 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; + 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC62048632300114F28 /* SubscriptionQueries.swift */; }; + 8076FDC82048639700114F28 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; + 8076FDC9204863AF00114F28 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; + 8076FDCA204863B900114F28 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; + 8076FDCB204863C500114F28 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; + 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; + 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; + 8076FDCE2048642400114F28 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; + 8076FDD12048646500114F28 /* MessageReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD02048646500114F28 /* MessageReply.swift */; }; + 8076FDD22048648D00114F28 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; + 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; + 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD5204864E700114F28 /* UserQueries.swift */; }; + 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD72048654F00114F28 /* UserUtils.swift */; }; + 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD920489F5900114F28 /* SEViewController.swift */; }; + 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */; }; + 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */; }; + 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; + 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; + 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDEC2049A5F600114F28 /* SECellModel.swift */; }; + 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */; }; + 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */; }; + 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */; }; + 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */; }; + 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0520751ED1006B600E /* SpotlightClient.swift */; }; + 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0720751EDB006B600E /* SpotlightRequest.swift */; }; + 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */; }; + 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */; }; + 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C11207522EF006B600E /* LoginServicesRequest.swift */; }; + 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53C2044B49800E21429 /* Emojione+Transform.swift */; }; + 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */; }; + 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */; }; + 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 807FB55C2046E7DD00E21429 /* Main.storyboard */; }; + 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB568204729E500E21429 /* SEServersViewController.swift */; }; + 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */; }; + 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 807FB57120472B6A00E21429 /* Localizable.strings */; }; + 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB581204837AF00E21429 /* SEServersViewModel.swift */; }; + 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */; }; + 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; + 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */; }; + 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792371FB14B3300EFE77F /* PermissionSpec.swift */; }; + 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; + 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; + 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; + 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; + 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; + 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB5204EEF1E00C41435 /* SelectServer.swift */; }; + 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB8204EFBCC00C41435 /* SENavigation.swift */; }; + 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */; }; + 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABE204F36F200C41435 /* SESearchState.swift */; }; + 80977AC2204F37C200C41435 /* SEState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC1204F37C200C41435 /* SEState.swift */; }; + 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */; }; + 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */; }; + 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */; }; + 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530F1FE2F17D00833DD2 /* ReactionView.swift */; }; + 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53111FE2F2F900833DD2 /* ReactionView.xib */; }; + 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53131FE3294400833DD2 /* ReactionListView.xib */; }; + 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; + 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; + 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; + 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */; }; + 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */; }; + 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */; }; + 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */; }; + 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */; }; + 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */; }; + 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */; }; + 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C561F71D2E400FE5AC4 /* APISpec.swift */; }; + 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */; }; + 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */; }; + 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */; }; + 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */; }; + 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */; }; + 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */; }; + 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80CFB5711F8D697100FC9715 /* ReplyView.xib */; }; + 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */; }; + 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */; }; + 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE5F205016B40056B17F /* SEServerCell.swift */; }; + 80D0CE62205023710056B17F /* SECell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE61205023710056B17F /* SECell.swift */; }; + 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE63205034280056B17F /* SEServerCellModel.swift */; }; + 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6520503C860056B17F /* SERoomCell.swift */; }; + 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE6720503C970056B17F /* SERoomCell.xib */; }; + 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */; }; + 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; + 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6E20509C100056B17F /* SEAvatarView.swift */; }; + 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE7020509C230056B17F /* SEAvatarView.xib */; }; + 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; + 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; + 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; + 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; + 80D5637220592D32008896D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80D5637120592D32008896D6 /* Assets.xcassets */; }; + 80D563752059325A008896D6 /* MimeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D563742059325A008896D6 /* MimeType.swift */; }; + 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5637620593533008896D6 /* ParseItemProviders.swift */; }; + 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D955C1202154A300E3F281 /* CASViewController.swift */; }; + 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; + 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; + 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */ = {isa = PBXBuildFile; fileRef = 80DC9A6F206BAC8B00032BE0 /* mimetype.json */; }; + 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */; }; + 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */; }; + 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */; }; + 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; + 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */; }; + 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */; }; + 80FA9066205313E20069038F /* SEContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9065205313E20069038F /* SEContent.swift */; }; + 80FA9068205314040069038F /* SEServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9067205314040069038F /* SEServer.swift */; }; + 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906920569F890069038F /* SEComposeFileCell.swift */; }; + 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA906B20569FA10069038F /* SEComposeFileCell.xib */; }; + 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */; }; + 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */; }; + 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90712056C1190069038F /* SEComposeTextCell.swift */; }; + 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA90732056C1350069038F /* SEComposeTextCell.xib */; }; + 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */; }; + 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */; }; + 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA907C2057F4650069038F /* SubmitContent.swift */; }; + 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FE8DED206584EA0099170E /* SEFileDetailView.xib */; }; + 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FE8DEF206587510099170E /* SEFileDetailView.swift */; }; + 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */; }; + 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */; }; + 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */; }; + 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */; }; + 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */; }; + 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D21F8CF08100233561 /* FormTableViewCell.swift */; }; + 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */; }; + 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */; }; + 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */; }; + 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */; }; + 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */; }; + 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */; }; + 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */; }; + 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */; }; + 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */; }; + 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */; }; + 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */; }; + 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */; }; + 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */; }; + 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */; }; + 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */; }; + 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */; }; + 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */; }; + 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */; }; + 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */; }; + 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */; }; + 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */; }; + 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */; }; + 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */; }; + 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */; }; + 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888FA204623A900E51306 /* UpdateUserRequest.swift */; }; + 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */; }; + 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */; }; + A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */; }; + AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */; }; + B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */; }; + B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */; }; + D10E9C1A1F643457007F1796 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; + D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */; }; + D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */; }; + D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C211F643616007F1796 /* MentionModelMapping.swift */; }; + D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */; }; + D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */; }; + D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */; }; + D15C83861F70991F001AB155 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; + D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */; }; + D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675EB1F716A0D00406FB4 /* LoginRequest.swift */; }; + D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */; }; + D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */; }; + D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */; }; + D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */; }; + D1D535EC1F7081FA006625D2 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; + D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; + D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535F01F70864C006625D2 /* InfoRequest.swift */; }; + D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */; }; + D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */; }; + D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28221DFD86C300D6019C /* LauncherProtocol.swift */; }; + D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */; }; + D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; - remoteInfo = Rocket.Chat; - }; - 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; - remoteInfo = Rocket.Chat; - }; - 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 807FB5572046E7DD00E21429; - remoteInfo = Rocket.Chat.ShareExtension; - }; + 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; + remoteInfo = Rocket.Chat; + }; + 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; + remoteInfo = Rocket.Chat; + }; + 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 807FB5572046E7DD00E21429; + remoteInfo = Rocket.Chat.ShareExtension; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 807FB5672046E7DD00E21429 /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; + 807FB5672046E7DD00E21429 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewController.swift; sourceTree = ""; }; - 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModel.swift; sourceTree = ""; }; - 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconCell.swift; sourceTree = ""; }; - 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageResetCell.swift; sourceTree = ""; }; - 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewController.swift; sourceTree = ""; }; - 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModel.swift; sourceTree = ""; }; - 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewModel.swift; sourceTree = ""; }; - 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageCell.swift; sourceTree = ""; }; - 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModelSpec.swift; sourceTree = ""; }; - 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorSpec.swift; sourceTree = ""; }; - 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModel.swift; sourceTree = ""; }; - 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModelSpec.swift; sourceTree = ""; }; - 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModelSpec.swift; sourceTree = ""; }; - 140A95E0202F526C003FD564 /* Drawing.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Drawing.storyboard; sourceTree = ""; }; - 140A95E3202F536D003FD564 /* DrawingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewController.swift; sourceTree = ""; }; - 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingControllerDelegate.swift; sourceTree = ""; }; - 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCellSpec.swift; sourceTree = ""; }; - 1435BFA21F9B601600FB2768 /* RCTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTextView.swift; sourceTree = ""; }; - 1499781C1FA605CE007E013D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 14A6A83020421DF8008C210D /* ColorPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPickerView.swift; sourceTree = ""; }; - 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushWidthViewController.swift; sourceTree = ""; }; - 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushOpacityViewController.swift; sourceTree = ""; }; - 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewController.swift; sourceTree = ""; }; - 14F8A213202E5CBD00175FDC /* Black-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@3x.png"; sourceTree = ""; }; - 14F8A216202E5CBE00175FDC /* Black-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@2x.png"; sourceTree = ""; }; - 14F8A217202E5CBE00175FDC /* Black-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@3x.png"; sourceTree = ""; }; - 14F8A218202E5CBE00175FDC /* Black-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@2x.png"; sourceTree = ""; }; - 14F8A219202E5CBE00175FDC /* Black-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@2x.png"; sourceTree = ""; }; - 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-83.5@2x.png"; sourceTree = ""; }; - 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@3x.png"; sourceTree = ""; }; - 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@2x.png"; sourceTree = ""; }; - 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@3x.png"; sourceTree = ""; }; - 14F8A22F202E5D0400175FDC /* Red-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@3x.png"; sourceTree = ""; }; - 14F8A230202E5D0400175FDC /* Red-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@3x.png"; sourceTree = ""; }; - 14F8A232202E5D0400175FDC /* Red-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@2x.png"; sourceTree = ""; }; - 14F8A233202E5D0400175FDC /* Red-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@2x.png"; sourceTree = ""; }; - 14F8A234202E5D0400175FDC /* Red-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@2x.png"; sourceTree = ""; }; - 14F8A235202E5D0500175FDC /* Red-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@3x.png"; sourceTree = ""; }; - 14F8A236202E5D0500175FDC /* Red-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@2x.png"; sourceTree = ""; }; - 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-83.5@2x.png"; sourceTree = ""; }; - 14F8A238202E5D0600175FDC /* Red-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@3x.png"; sourceTree = ""; }; - 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-83.5@2x.png"; sourceTree = ""; }; - 14F8A24C202E64B100175FDC /* BnW-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@3x.png"; sourceTree = ""; }; - 14F8A24D202E64B100175FDC /* BnW-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@2x.png"; sourceTree = ""; }; - 14F8A24E202E64B100175FDC /* BnW-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@2x.png"; sourceTree = ""; }; - 14F8A24F202E64B100175FDC /* BnW-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@3x.png"; sourceTree = ""; }; - 14F8A250202E64B100175FDC /* BnW-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@3x.png"; sourceTree = ""; }; - 14F8A251202E64B100175FDC /* BnW-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@2x.png"; sourceTree = ""; }; - 14F8A252202E64B100175FDC /* BnW-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@2x.png"; sourceTree = ""; }; - 14F8A254202E64B200175FDC /* BnW-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@3x.png"; sourceTree = ""; }; - 14F8A263202E653D00175FDC /* Grey-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@2x.png"; sourceTree = ""; }; - 14F8A264202E653D00175FDC /* Grey-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@2x.png"; sourceTree = ""; }; - 14F8A265202E653D00175FDC /* Grey-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@3x.png"; sourceTree = ""; }; - 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-83.5@2x.png"; sourceTree = ""; }; - 14F8A267202E653D00175FDC /* Grey-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@2x.png"; sourceTree = ""; }; - 14F8A268202E653E00175FDC /* Grey-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@3x.png"; sourceTree = ""; }; - 14F8A269202E653E00175FDC /* Grey-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@3x.png"; sourceTree = ""; }; - 14F8A26A202E653E00175FDC /* Grey-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@3x.png"; sourceTree = ""; }; - 14F8A26B202E653E00175FDC /* Grey-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@2x.png"; sourceTree = ""; }; - 14F8A277202E658E00175FDC /* White-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@2x.png"; sourceTree = ""; }; - 14F8A278202E658E00175FDC /* White-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@3x.png"; sourceTree = ""; }; - 14F8A279202E658E00175FDC /* White-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@3x.png"; sourceTree = ""; }; - 14F8A27A202E658F00175FDC /* White-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-83.5@2x.png"; sourceTree = ""; }; - 14F8A27B202E658F00175FDC /* White-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@2x.png"; sourceTree = ""; }; - 14F8A27C202E658F00175FDC /* White-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@3x.png"; sourceTree = ""; }; - 14F8A27D202E658F00175FDC /* White-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@2x.png"; sourceTree = ""; }; - 14F8A27E202E658F00175FDC /* White-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@2x.png"; sourceTree = ""; }; - 14F8A27F202E658F00175FDC /* White-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@3x.png"; sourceTree = ""; }; - 14F8A289202E65C500175FDC /* Blue-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@3x.png"; sourceTree = ""; }; - 14F8A28A202E65C600175FDC /* Blue-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@2x.png"; sourceTree = ""; }; - 14F8A28B202E65C600175FDC /* Blue-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@3x.png"; sourceTree = ""; }; - 14F8A28C202E65C600175FDC /* Blue-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@3x.png"; sourceTree = ""; }; - 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-83.5@2x.png"; sourceTree = ""; }; - 14F8A28E202E65C600175FDC /* Blue-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@2x.png"; sourceTree = ""; }; - 14F8A28F202E65C700175FDC /* Blue-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@2x.png"; sourceTree = ""; }; - 14F8A290202E65C700175FDC /* Blue-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@3x.png"; sourceTree = ""; }; - 14F8A291202E65C700175FDC /* Blue-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@2x.png"; sourceTree = ""; }; - 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCell.swift; sourceTree = ""; }; - 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MentionsTextFieldTableViewCell.xib; sourceTree = ""; }; - 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatNotificationSpec.swift; sourceTree = ""; }; - 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerSpec.swift; sourceTree = ""; }; - 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewControllerSpec.swift; sourceTree = ""; }; - 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerMessages.swift; sourceTree = ""; }; - 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerRooms.swift; sourceTree = ""; }; - 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerSearch.swift; sourceTree = ""; }; - 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerTyping.swift; sourceTree = ""; }; - 333207FE20766E4F00AD3290 /* NotificationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotificationViewController.xib; sourceTree = ""; }; - 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentToTouchesWindow.swift; sourceTree = ""; }; - 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; + 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewController.swift; sourceTree = ""; }; + 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModel.swift; sourceTree = ""; }; + 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconCell.swift; sourceTree = ""; }; + 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageResetCell.swift; sourceTree = ""; }; + 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewController.swift; sourceTree = ""; }; + 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModel.swift; sourceTree = ""; }; + 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewModel.swift; sourceTree = ""; }; + 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageCell.swift; sourceTree = ""; }; + 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModelSpec.swift; sourceTree = ""; }; + 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorSpec.swift; sourceTree = ""; }; + 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModel.swift; sourceTree = ""; }; + 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModelSpec.swift; sourceTree = ""; }; + 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModelSpec.swift; sourceTree = ""; }; + 140A95E0202F526C003FD564 /* Drawing.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Drawing.storyboard; sourceTree = ""; }; + 140A95E3202F536D003FD564 /* DrawingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewController.swift; sourceTree = ""; }; + 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingControllerDelegate.swift; sourceTree = ""; }; + 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCellSpec.swift; sourceTree = ""; }; + 1435BFA21F9B601600FB2768 /* RCTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTextView.swift; sourceTree = ""; }; + 1499781C1FA605CE007E013D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + 14A6A83020421DF8008C210D /* ColorPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPickerView.swift; sourceTree = ""; }; + 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushWidthViewController.swift; sourceTree = ""; }; + 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushOpacityViewController.swift; sourceTree = ""; }; + 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewController.swift; sourceTree = ""; }; + 14F8A213202E5CBD00175FDC /* Black-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@3x.png"; sourceTree = ""; }; + 14F8A216202E5CBE00175FDC /* Black-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@2x.png"; sourceTree = ""; }; + 14F8A217202E5CBE00175FDC /* Black-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@3x.png"; sourceTree = ""; }; + 14F8A218202E5CBE00175FDC /* Black-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@2x.png"; sourceTree = ""; }; + 14F8A219202E5CBE00175FDC /* Black-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@2x.png"; sourceTree = ""; }; + 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-83.5@2x.png"; sourceTree = ""; }; + 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@3x.png"; sourceTree = ""; }; + 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@2x.png"; sourceTree = ""; }; + 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@3x.png"; sourceTree = ""; }; + 14F8A22F202E5D0400175FDC /* Red-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@3x.png"; sourceTree = ""; }; + 14F8A230202E5D0400175FDC /* Red-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@3x.png"; sourceTree = ""; }; + 14F8A232202E5D0400175FDC /* Red-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@2x.png"; sourceTree = ""; }; + 14F8A233202E5D0400175FDC /* Red-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@2x.png"; sourceTree = ""; }; + 14F8A234202E5D0400175FDC /* Red-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@2x.png"; sourceTree = ""; }; + 14F8A235202E5D0500175FDC /* Red-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@3x.png"; sourceTree = ""; }; + 14F8A236202E5D0500175FDC /* Red-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@2x.png"; sourceTree = ""; }; + 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-83.5@2x.png"; sourceTree = ""; }; + 14F8A238202E5D0600175FDC /* Red-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@3x.png"; sourceTree = ""; }; + 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-83.5@2x.png"; sourceTree = ""; }; + 14F8A24C202E64B100175FDC /* BnW-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@3x.png"; sourceTree = ""; }; + 14F8A24D202E64B100175FDC /* BnW-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@2x.png"; sourceTree = ""; }; + 14F8A24E202E64B100175FDC /* BnW-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@2x.png"; sourceTree = ""; }; + 14F8A24F202E64B100175FDC /* BnW-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@3x.png"; sourceTree = ""; }; + 14F8A250202E64B100175FDC /* BnW-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@3x.png"; sourceTree = ""; }; + 14F8A251202E64B100175FDC /* BnW-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@2x.png"; sourceTree = ""; }; + 14F8A252202E64B100175FDC /* BnW-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@2x.png"; sourceTree = ""; }; + 14F8A254202E64B200175FDC /* BnW-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@3x.png"; sourceTree = ""; }; + 14F8A263202E653D00175FDC /* Grey-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@2x.png"; sourceTree = ""; }; + 14F8A264202E653D00175FDC /* Grey-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@2x.png"; sourceTree = ""; }; + 14F8A265202E653D00175FDC /* Grey-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@3x.png"; sourceTree = ""; }; + 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-83.5@2x.png"; sourceTree = ""; }; + 14F8A267202E653D00175FDC /* Grey-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@2x.png"; sourceTree = ""; }; + 14F8A268202E653E00175FDC /* Grey-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@3x.png"; sourceTree = ""; }; + 14F8A269202E653E00175FDC /* Grey-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@3x.png"; sourceTree = ""; }; + 14F8A26A202E653E00175FDC /* Grey-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@3x.png"; sourceTree = ""; }; + 14F8A26B202E653E00175FDC /* Grey-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@2x.png"; sourceTree = ""; }; + 14F8A277202E658E00175FDC /* White-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@2x.png"; sourceTree = ""; }; + 14F8A278202E658E00175FDC /* White-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@3x.png"; sourceTree = ""; }; + 14F8A279202E658E00175FDC /* White-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@3x.png"; sourceTree = ""; }; + 14F8A27A202E658F00175FDC /* White-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-83.5@2x.png"; sourceTree = ""; }; + 14F8A27B202E658F00175FDC /* White-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@2x.png"; sourceTree = ""; }; + 14F8A27C202E658F00175FDC /* White-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@3x.png"; sourceTree = ""; }; + 14F8A27D202E658F00175FDC /* White-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@2x.png"; sourceTree = ""; }; + 14F8A27E202E658F00175FDC /* White-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@2x.png"; sourceTree = ""; }; + 14F8A27F202E658F00175FDC /* White-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@3x.png"; sourceTree = ""; }; + 14F8A289202E65C500175FDC /* Blue-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@3x.png"; sourceTree = ""; }; + 14F8A28A202E65C600175FDC /* Blue-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@2x.png"; sourceTree = ""; }; + 14F8A28B202E65C600175FDC /* Blue-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@3x.png"; sourceTree = ""; }; + 14F8A28C202E65C600175FDC /* Blue-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@3x.png"; sourceTree = ""; }; + 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-83.5@2x.png"; sourceTree = ""; }; + 14F8A28E202E65C600175FDC /* Blue-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@2x.png"; sourceTree = ""; }; + 14F8A28F202E65C700175FDC /* Blue-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@2x.png"; sourceTree = ""; }; + 14F8A290202E65C700175FDC /* Blue-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@3x.png"; sourceTree = ""; }; + 14F8A291202E65C700175FDC /* Blue-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@2x.png"; sourceTree = ""; }; + 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCell.swift; sourceTree = ""; }; + 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MentionsTextFieldTableViewCell.xib; sourceTree = ""; }; + 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatNotificationSpec.swift; sourceTree = ""; }; + 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerSpec.swift; sourceTree = ""; }; + 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewControllerSpec.swift; sourceTree = ""; }; + 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerMessages.swift; sourceTree = ""; }; + 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerRooms.swift; sourceTree = ""; }; + 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerSearch.swift; sourceTree = ""; }; + 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerTyping.swift; sourceTree = ""; }; + 333207FE20766E4F00AD3290 /* NotificationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotificationViewController.xib; sourceTree = ""; }; + 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentToTouchesWindow.swift; sourceTree = ""; }; + 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; 3353DBF7206787E500738D1C /* Themeable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Themeable.swift; sourceTree = ""; }; 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; - 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; - 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; - 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; - 33A5C9C2206A565800FE1C8F /* travel.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = travel.json; sourceTree = ""; }; - 33A5C9C3206A565800FE1C8F /* regional.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = regional.json; sourceTree = ""; }; - 33A5C9C4206A565800FE1C8F /* flags.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = flags.json; sourceTree = ""; }; - 33A5C9C5206A565800FE1C8F /* people.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = people.json; sourceTree = ""; }; - 33A5C9C6206A565800FE1C8F /* objects.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = objects.json; sourceTree = ""; }; - 33A5C9C7206A565800FE1C8F /* food.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = food.json; sourceTree = ""; }; - 33A5C9C8206A565800FE1C8F /* activity.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = activity.json; sourceTree = ""; }; - 33A5C9C9206A565800FE1C8F /* nature.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = nature.json; sourceTree = ""; }; - 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatNotification.swift; sourceTree = ""; }; - 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; - 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; - 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; - 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; - 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; - 35BCD302201A9FB800B4BE5A /* AskSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AskSpec.swift; sourceTree = ""; }; - 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCDateFormatter.swift; sourceTree = ""; }; - 35D2F140200A45E800B4BE5A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertSpec.swift; sourceTree = ""; }; - 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OAuthManager.swift; sourceTree = ""; }; - 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewRoomViewController.swift; sourceTree = ""; }; - 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModel.swift; sourceTree = ""; }; - 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewControllerCustomFields.swift; sourceTree = ""; }; - 4101BF001F8D0A1700F67E89 /* AppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManager.swift; sourceTree = ""; }; - 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManagerSpec.swift; sourceTree = ""; }; - 4102E3A91E532323004BAA82 /* Preferences.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Preferences.storyboard; sourceTree = ""; }; - 4102E3AC1E53273E004BAA82 /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; - 411119B51F680DB00019854B /* NetworkCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkCoordinator.swift; sourceTree = ""; }; - 411119B71F6825C30019854B /* NetworkManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManagerSpec.swift; sourceTree = ""; }; - 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainChatViewController.swift; sourceTree = ""; }; - 4112DC551FFFB9B1005995E1 /* BaseModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModel.swift; sourceTree = ""; }; - 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelHandler.swift; sourceTree = ""; }; - 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelMappeable.swift; sourceTree = ""; }; - 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModelSpec.swift; sourceTree = ""; }; - 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModel.swift; sourceTree = ""; }; - 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentSpec.swift; sourceTree = ""; }; - 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManager.swift; sourceTree = ""; }; - 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManagerSpec.swift; sourceTree = ""; }; - 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadManager.swift; sourceTree = ""; }; - 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatChannelHeaderCell.swift; sourceTree = ""; }; - 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatChannelHeaderCell.xib; sourceTree = ""; }; - 412184A420472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 412184A520472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; - 412184A620472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/VoiceOver.strings; sourceTree = ""; }; - 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterUsernameViewController.swift; sourceTree = ""; }; - 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatPreviewModeView.xib; sourceTree = ""; }; - 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPreviewModeView.swift; sourceTree = ""; }; - 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageVideoView.swift; sourceTree = ""; }; - 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageVideoView.xib; sourceTree = ""; }; - 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageTextView.xib; sourceTree = ""; }; - 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextView.swift; sourceTree = ""; }; - 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorCSSColorsExtension.swift; sourceTree = ""; }; - 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageURLView.swift; sourceTree = ""; }; - 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageURLView.xib; sourceTree = ""; }; - 412EF3C52050507C001689A3 /* ReusableViewText.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReusableViewText.xib; sourceTree = ""; }; - 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = ""; }; - 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageImageView.swift; sourceTree = ""; }; - 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageImageView.xib; sourceTree = ""; }; - 413996161F3B44500075F96E /* UploadHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelper.swift; sourceTree = ""; }; - 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsPageViewController.swift; sourceTree = ""; }; - 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServersViewController.swift; sourceTree = ""; }; - 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCell.swift; sourceTree = ""; }; - 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddServerCell.swift; sourceTree = ""; }; - 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManagerSpec.swift; sourceTree = ""; }; - 41494B911D63C6280004F369 /* UIImageExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; - 41499C8E1F2A116900790EA7 /* ServerManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManager.swift; sourceTree = ""; }; - 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampCoordinator.swift; sourceTree = ""; }; - 414A1FF51D46320F00093E10 /* ResponseMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessage.swift; sourceTree = ""; }; - 414A1FF91D46395400093E10 /* SocketManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManager.swift; sourceTree = ""; }; - 414A1FFB1D46395900093E10 /* SocketResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketResponse.swift; sourceTree = ""; }; - 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewController.swift; sourceTree = ""; }; - 414EFF911E54FE69004F001F /* AuthExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthExtensions.swift; sourceTree = ""; }; - 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextCacheManager.swift; sourceTree = ""; }; - 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModelSpec.swift; sourceTree = ""; }; - 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelHandler.swift; sourceTree = ""; }; - 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelHandler.swift; sourceTree = ""; }; - 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelMapping.swift; sourceTree = ""; }; - 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageModelMapping.swift; sourceTree = ""; }; - 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttachmentModelMapping.swift; sourceTree = ""; }; - 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsModelMapping.swift; sourceTree = ""; }; - 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLModelMapping.swift; sourceTree = ""; }; - 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinatorSpec.swift; sourceTree = ""; }; - 4153E80420504BE700FBC26B /* ReusableViewText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReusableViewText.swift; sourceTree = ""; }; - 41552F651D30308C0081438D /* AuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManager.swift; sourceTree = ""; }; - 41552F671D3035D80081438D /* SocketManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManagerSpec.swift; sourceTree = ""; }; - 4159720B1D3DB854002258F4 /* Email.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Email.swift; sourceTree = ""; }; - 4159720D1D3DB882002258F4 /* Mention.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mention.swift; sourceTree = ""; }; - 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoFactorAuthenticationViewController.swift; sourceTree = ""; }; - 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; - 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCell.swift; sourceTree = ""; }; - 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageCell.xib; sourceTree = ""; }; - 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModelSpec.swift; sourceTree = ""; }; - 416133391D46E0A200E09DA2 /* AuthSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSpec.swift; sourceTree = ""; }; - 4161333B1D46E32F00E09DA2 /* UserSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserSpec.swift; sourceTree = ""; }; - 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSpec.swift; sourceTree = ""; }; - 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageSpec.swift; sourceTree = ""; }; - 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelperSpec.swift; sourceTree = ""; }; - 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManagerSpec.swift; sourceTree = ""; }; - 4162E1521D651A8800AAAE49 /* UserManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserManager.swift; sourceTree = ""; }; - 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketHandlers.swift; sourceTree = ""; }; - 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarViewSpec.swift; sourceTree = ""; }; - 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectServerViewController.swift; sourceTree = ""; }; - 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Auth.storyboard; sourceTree = ""; }; - 4174CB121D2D99960086DAC8 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; - 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseNavigationController.swift; sourceTree = ""; }; - 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthViewController.swift; sourceTree = ""; }; - 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; - 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; - 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Rocket.Chat-Bridge.h"; sourceTree = ""; }; - 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessageSpec.swift; sourceTree = ""; }; - 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoViewController.swift; sourceTree = ""; }; - 41833F4D1DEF16B600E54655 /* Keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Keys.plist; sourceTree = ""; }; - 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatControllerReplyHandler.swift; sourceTree = ""; }; - 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewControllerEmbedded.swift; sourceTree = ""; }; - 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WebViewControllerEmbedded.xib; sourceTree = ""; }; - 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageActions.swift; sourceTree = ""; }; - 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSectionView.swift; sourceTree = ""; }; - 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSectionView.xib; sourceTree = ""; }; - 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegateSpec.swift; sourceTree = ""; }; - 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegate.swift; sourceTree = ""; }; - 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegateSpec.swift; sourceTree = ""; }; - 41900C261D9FE35400308EF4 /* Attachment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Attachment.swift; sourceTree = ""; }; - 419205481D52EDE6004EEC5F /* UILabelExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UILabelExtension.swift; sourceTree = ""; }; - 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionCell.swift; sourceTree = ""; }; - 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; - 4199A9881DABCC570035F820 /* Emojione.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Emojione.swift; sourceTree = ""; }; - 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandler.swift; sourceTree = ""; }; - 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandlerSpec.swift; sourceTree = ""; }; - 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatHeaderViewStatus.xib; sourceTree = ""; }; - 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHeaderViewStatus.swift; sourceTree = ""; }; - 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerHeaderStatus.swift; sourceTree = ""; }; - 419ECCA31F3CA21A005F224B /* DownloadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; - 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerDocuments.swift; sourceTree = ""; }; - 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewControllerExtension.swift; sourceTree = ""; }; - 41A6191A1FA7065400CFFA69 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; - 41A79C0E1D2F085F00A1968E /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; - 41A79C121D2F09F200A1968E /* Auth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Auth.swift; sourceTree = ""; }; - 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettings.swift; sourceTree = ""; }; - 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionUserStatusView.xib; sourceTree = ""; }; - 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionUserStatusView.swift; sourceTree = ""; }; - 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AutocompleteCell.xib; sourceTree = ""; }; - 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutocompleteCell.swift; sourceTree = ""; }; - 41ADDD481E9DBB100007A458 /* LoaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderView.swift; sourceTree = ""; }; - 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderViewSpec.swift; sourceTree = ""; }; - 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerUploader.swift; sourceTree = ""; }; - 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIWindowExtensions.swift; sourceTree = ""; }; - 41B554C61FBF0F9D000510B7 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = ""; }; - 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewControllerTextViewDelegate.swift; sourceTree = ""; }; - 41B96361207E48260068F1A6 /* MessageTextValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidator.swift; sourceTree = ""; }; - 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidatorSpec.swift; sourceTree = ""; }; - 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManagerSpec.swift; sourceTree = ""; }; - 41BAE3E61D71B26C00C2445A /* URLExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtension.swift; sourceTree = ""; }; - 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtensionSpec.swift; sourceTree = ""; }; - 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelMapping.swift; sourceTree = ""; }; - 41C275DE1D848005003C88CF /* AvatarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarView.swift; sourceTree = ""; }; - 41C275E01D84815C003C88CF /* AvatarView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AvatarView.xib; sourceTree = ""; }; - 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataController.swift; sourceTree = ""; }; - 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatLoaderCell.xib; sourceTree = ""; }; - 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatLoaderCell.swift; sourceTree = ""; }; - 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayExtensions.swift; sourceTree = ""; }; - 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageDaySeparator.xib; sourceTree = ""; }; - 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageDaySeparator.swift; sourceTree = ""; }; - 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayout.swift; sourceTree = ""; }; - 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewExtentions.swift; sourceTree = ""; }; - 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextFontAttributes.swift; sourceTree = ""; }; - 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensions.swift; sourceTree = ""; }; - 41D7CA861E644E47000F38EA /* MessageExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageExtensions.swift; sourceTree = ""; }; - 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDirectMessageHeaderCell.swift; sourceTree = ""; }; - 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatDirectMessageHeaderCell.xib; sourceTree = ""; }; - 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionManager.swift; sourceTree = ""; }; - 41DAE93D1D318F350098E068 /* Subscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscription.swift; sourceTree = ""; }; - 41DC7A1A1D38454500896FC0 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; - 41DC7A1C1D38471700896FC0 /* MessageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManager.swift; sourceTree = ""; }; - 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManagerSpec.swift; sourceTree = ""; }; - 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensionSpec.swift; sourceTree = ""; }; - 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtensionsSpec.swift; sourceTree = ""; }; - 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSearchMoreView.xib; sourceTree = ""; }; - 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSearchMoreView.swift; sourceTree = ""; }; - 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 41DF76E91D2C50710028DBF8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 41DF76EC1D2C50720028DBF8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 41DF76EE1D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF76F91D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RocketChatUITests.swift; sourceTree = ""; }; - 41DF77041D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41E2F9FE1D414DE800238DFD /* Chat.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Chat.storyboard; sourceTree = ""; }; - 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Subscriptions.storyboard; sourceTree = ""; }; - 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsViewController.swift; sourceTree = ""; }; - 41E2FA061D41513C00238DFD /* ChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = ""; }; - 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensionSpec.swift; sourceTree = ""; }; - 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UINibExtensions.swift; sourceTree = ""; }; - 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = ""; }; - 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthInternalExtensions.swift; sourceTree = ""; }; - 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueriesSpec.swift; sourceTree = ""; }; - 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadVideoCompression.swift; sourceTree = ""; }; - 41EB22371E5F056600AA3AE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 41EB223A1E5F057F00AA3AE7 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - 41EB223B1E5F19EB00AA3AE7 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerAutocomplete.swift; sourceTree = ""; }; - 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageCellProtocol.swift; sourceTree = ""; }; - 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerSocketConnectionHandler.swift; sourceTree = ""; }; - 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTitleView.swift; sourceTree = ""; }; - 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatTitleView.xib; sourceTree = ""; }; - 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURL.swift; sourceTree = ""; }; - 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModelSpec.swift; sourceTree = ""; }; - 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManagerSpec.swift; sourceTree = ""; }; - 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.release.xcconfig"; sourceTree = ""; }; - 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.debug.xcconfig"; sourceTree = ""; }; - 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.entitlements; sourceTree = ""; }; - 597ECBA11E3708A50041C5C5 /* DataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataExtension.swift; sourceTree = ""; }; - 597ECBA31E3708B10041C5C5 /* PushManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushManager.swift; sourceTree = ""; }; - 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; sourceTree = ""; }; - 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat_ShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLSpec.swift; sourceTree = ""; }; - 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_ChatTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegate.swift; sourceTree = ""; }; - 7798B4141F852B720074B2F4 /* SelectField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectField.swift; sourceTree = ""; }; - 7798B4181F852D670074B2F4 /* CustomField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomField.swift; sourceTree = ""; }; - 77BA81501F87C4CB00F295F4 /* TextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextField.swift; sourceTree = ""; }; - 77C261241F97445300724A1F /* AuthSettingsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsSpec.swift; sourceTree = ""; }; - 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DictionaryExtensionsSpec.swift; sourceTree = ""; }; - 77C261291F97453600724A1F /* CustomFieldsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomFieldsSpec.swift; sourceTree = ""; }; - 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectFieldSpec.swift; sourceTree = ""; }; - 77C2612B1F97453600724A1F /* TextFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldSpec.swift; sourceTree = ""; }; - 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtensions.swift; sourceTree = ""; }; - 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendMessageRequest.swift; sourceTree = ""; }; - 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClient.swift; sourceTree = ""; }; - 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClientSpec.swift; sourceTree = ""; }; - 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequest.swift; sourceTree = ""; }; - 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushTokenDeleteRequest.swift; sourceTree = ""; }; - 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushClient.swift; sourceTree = ""; }; - 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = ""; }; - 800640F62049BA25006D990F /* SEScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEScene.swift; sourceTree = ""; }; - 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListViewController.swift; sourceTree = ""; }; - 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMessagesRequest.swift; sourceTree = ""; }; - 800F38EC2019492D0005CB78 /* DeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLink.swift; sourceTree = ""; }; - 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembersListViewController.swift; sourceTree = ""; }; - 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoBasicCell.swift; sourceTree = ""; }; - 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoCellProtocol.swift; sourceTree = ""; }; - 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDescriptionCell.swift; sourceTree = ""; }; - 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDetailCell.swift; sourceTree = ""; }; - 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoUserCell.swift; sourceTree = ""; }; - 800FCD491F728E6A00D9A692 /* MemberCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberCell.swift; sourceTree = ""; }; - 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MemberCell.xib; sourceTree = ""; }; - 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewController.swift; sourceTree = ""; }; - 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayoutSpec.swift; sourceTree = ""; }; - 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensions.swift; sourceTree = ""; }; - 8013F8661FD6B4F400EE1A4E /* Command.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Command.swift; sourceTree = ""; }; - 8013F8681FD6B59900EE1A4E /* Version.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Version.swift; sourceTree = ""; }; - 8013F8691FD6B59900EE1A4E /* APIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIError.swift; sourceTree = ""; }; - 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIClient.swift; sourceTree = ""; }; - 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClient.swift; sourceTree = ""; }; - 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClient.swift; sourceTree = ""; }; - 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddleware.swift; sourceTree = ""; }; - 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddlewareSpec.swift; sourceTree = ""; }; - 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockAPI.swift; sourceTree = ""; }; - 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionSpec.swift; sourceTree = ""; }; - 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClientSpec.swift; sourceTree = ""; }; - 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClientSpec.swift; sourceTree = ""; }; - 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsRequest.swift; sourceTree = ""; }; - 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequest.swift; sourceTree = ""; }; - 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequestSpec.swift; sourceTree = ""; }; - 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandModelMapping.swift; sourceTree = ""; }; - 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushManagerSpec.swift; sourceTree = ""; }; - 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUserView.swift; sourceTree = ""; }; - 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPicker.swift; sourceTree = ""; }; - 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiPicker.xib; sourceTree = ""; }; - 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerController.swift; sourceTree = ""; }; - 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequestSpec.swift; sourceTree = ""; }; - 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPMethod.swift; sourceTree = ""; }; - 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequest.swift; sourceTree = ""; }; - 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequestSpec.swift; sourceTree = ""; }; - 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoaderTableViewCell.swift; sourceTree = ""; }; - 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoaderTableViewCell.xib; sourceTree = ""; }; - 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactionSpec.swift; sourceTree = ""; }; - 802498ED1F7A8380005477EC /* MeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequest.swift; sourceTree = ""; }; - 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequestSpec.swift; sourceTree = ""; }; - 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageAudioView.xib; sourceTree = ""; }; - 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAudioView.swift; sourceTree = ""; }; - 8029B2F12059B6F60067157B /* VideoInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoInfo.swift; sourceTree = ""; }; - 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+StatusReport.swift"; sourceTree = ""; }; - 802A4E102049C7340072CD23 /* SENavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigationController.swift; sourceTree = ""; }; - 802A4E23204D730F0072CD23 /* AppGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppGroup.swift; sourceTree = ""; }; - 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOTextField.swift; sourceTree = ""; }; - 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOLocalized.swift; sourceTree = ""; }; - 80307E421FD75DC0006AD9EF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E441FD75DCB006AD9EF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/VoiceOver.strings"; sourceTree = ""; }; - 80307E451FD75DCF006AD9EF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E461FD75DD1006AD9EF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E471FD75DD2006AD9EF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E481FD75DD5006AD9EF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/VoiceOver.strings; sourceTree = ""; }; - 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateMessageRequest.swift; sourceTree = ""; }; - 803782B61FB4751D00DED049 /* RealmTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmTestCase.swift; sourceTree = ""; }; - 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListViewController.swift; sourceTree = ""; }; - 8041C0412028C7EF007E21FA /* ReactorListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListView.swift; sourceTree = ""; }; - 8041C0432028C828007E21FA /* ReactorListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactorListView.xib; sourceTree = ""; }; - 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCEmojiKitLocalizable.swift; sourceTree = ""; }; - 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = RCEmojiKit.xcassets; sourceTree = ""; }; - 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewController.swift; sourceTree = ""; }; - 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEXibInitializable.swift; sourceTree = ""; }; - 805DEC341FFC03380033151B /* CustomEmojiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiManager.swift; sourceTree = ""; }; - 805DEC361FFC08870033151B /* CustomEmoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmoji.swift; sourceTree = ""; }; - 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiSpec.swift; sourceTree = ""; }; - 806401301FB09DE800990572 /* Permission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Permission.swift; sourceTree = ""; }; - 806401321FB09EC400990572 /* PermissionModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionModelMapping.swift; sourceTree = ""; }; - 806401341FB09F8A00990572 /* PermissionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManager.swift; sourceTree = ""; }; - 806465EB1FED19B9001F27DB /* EmojiView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiView.xib; sourceTree = ""; }; - 806465ED1FED1AFE001F27DB /* EmojiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiView.swift; sourceTree = ""; }; - 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesNavigationController.swift; sourceTree = ""; }; - 806728FE20079734009FE94D /* DeleteMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequest.swift; sourceTree = ""; }; - 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequestSpec.swift; sourceTree = ""; }; - 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequest.swift; sourceTree = ""; }; - 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequestSpec.swift; sourceTree = ""; }; - 8067DAA5206D1883005E3369 /* APIResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResource.swift; sourceTree = ""; }; - 8069D26D1FFF876D00C75926 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; - 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostMessageRequest.swift; sourceTree = ""; }; - 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMessageRequestSpec.swift; sourceTree = ""; }; - 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerLoginServices.swift; sourceTree = ""; }; - 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerConnectionHandler.swift; sourceTree = ""; }; - 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerAuthenticationHandler.swift; sourceTree = ""; }; - 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageCellAccessibility.swift; sourceTree = ""; }; - 807371991F94E83600D53ADF /* SocketError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocketError.swift; sourceTree = ""; }; - 8073719B1F963FA400D53ADF /* APITestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APITestCase.swift; sourceTree = ""; }; - 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceManager.swift; sourceTree = ""; }; - 8073719F1F96937100D53ADF /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginService.swift; sourceTree = ""; }; - 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelMapping.swift; sourceTree = ""; }; - 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelHandler.swift; sourceTree = ""; }; - 8076FD9920484A6000114F28 /* SEStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEStore.swift; sourceTree = ""; }; - 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerSocket.swift; sourceTree = ""; }; - 8076FDA32048533000114F28 /* String+Random.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Random.swift"; sourceTree = ""; }; - 8076FDA8204853DE00114F28 /* RealmExecute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmExecute.swift; sourceTree = ""; }; - 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSettingsHiddenTypes.swift; sourceTree = ""; }; - 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanDeleteMessage.swift; sourceTree = ""; }; - 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanBlockMessage.swift; sourceTree = ""; }; - 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanEditMessage.swift; sourceTree = ""; }; - 8076FDB42048571200114F28 /* AuthUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthUser.swift; sourceTree = ""; }; - 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerCurrentUser.swift; sourceTree = ""; }; - 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerRecover.swift; sourceTree = ""; }; - 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUtils.swift; sourceTree = ""; }; - 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUser.swift; sourceTree = ""; }; - 8076FDC62048632300114F28 /* SubscriptionQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueries.swift; sourceTree = ""; }; - 8076FDD02048646500114F28 /* MessageReply.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReply.swift; sourceTree = ""; }; - 8076FDD5204864E700114F28 /* UserQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserQueries.swift; sourceTree = ""; }; - 8076FDD72048654F00114F28 /* UserUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserUtils.swift; sourceTree = ""; }; - 8076FDD920489F5900114F28 /* SEViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEViewController.swift; sourceTree = ""; }; - 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewController.swift; sourceTree = ""; }; - 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationCoordinator.swift; sourceTree = ""; }; - 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Group.swift"; sourceTree = ""; }; - 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.ShareExtension.entitlements; sourceTree = ""; }; - 8076FDEC2049A5F600114F28 /* SECellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECellModel.swift; sourceTree = ""; }; - 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceSpec.swift; sourceTree = ""; }; - 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthManagerSpec.swift; sourceTree = ""; }; - 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanPinMessage.swift; sourceTree = ""; }; - 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPlaceholderTextView.swift; sourceTree = ""; }; - 807C7C0520751ED1006B600E /* SpotlightClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClient.swift; sourceTree = ""; }; - 807C7C0720751EDB006B600E /* SpotlightRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequest.swift; sourceTree = ""; }; - 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequestSpec.swift; sourceTree = ""; }; - 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClientSpec.swift; sourceTree = ""; }; - 807C7C11207522EF006B600E /* LoginServicesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginServicesRequest.swift; sourceTree = ""; }; - 807FB53C2044B49800E21429 /* Emojione+Transform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Emojione+Transform.swift"; sourceTree = ""; }; - 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojioneSpec.swift; sourceTree = ""; }; - 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Rocket.Chat.ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewController.swift; sourceTree = ""; }; - 807FB55D2046E7DD00E21429 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 807FB55F2046E7DD00E21429 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 807FB568204729E500E21429 /* SEServersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewController.swift; sourceTree = ""; }; - 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewModel.swift; sourceTree = ""; }; - 807FB57020472B6A00E21429 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - 807FB57220472B6D00E21429 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57320472B6F00E21429 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57420472B7000E21429 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57520472B7200E21429 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57620472B7300E21429 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57720472B8200E21429 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 807FB581204837AF00E21429 /* SEServersViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewModel.swift; sourceTree = ""; }; - 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManagerSpec.swift; sourceTree = ""; }; - 808792371FB14B3300EFE77F /* PermissionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionSpec.swift; sourceTree = ""; }; - 80977AB5204EEF1E00C41435 /* SelectServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectServer.swift; sourceTree = ""; }; - 80977AB8204EFBCC00C41435 /* SENavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigation.swift; sourceTree = ""; }; - 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESceneTransition.swift; sourceTree = ""; }; - 80977ABE204F36F200C41435 /* SESearchState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESearchState.swift; sourceTree = ""; }; - 80977AC1204F37C200C41435 /* SEState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEState.swift; sourceTree = ""; }; - 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewModel.swift; sourceTree = ""; }; - 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadClient.swift; sourceTree = ""; }; - 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionListView.swift; sourceTree = ""; }; - 809B530F1FE2F17D00833DD2 /* ReactionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionView.swift; sourceTree = ""; }; - 809B53111FE2F2F900833DD2 /* ReactionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionView.xib; sourceTree = ""; }; - 809B53131FE3294400833DD2 /* ReactionListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionListView.xib; sourceTree = ""; }; - 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReaction.swift; sourceTree = ""; }; - 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RealmCurrent.swift; sourceTree = ""; }; - 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcher.swift; sourceTree = ""; }; - 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiAutocompleteCell.swift; sourceTree = ""; }; - 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiAutocompleteCell.xib; sourceTree = ""; }; - 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequest.swift; sourceTree = ""; }; - 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequestSpec.swift; sourceTree = ""; }; - 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequest.swift; sourceTree = ""; }; - 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequestSpec.swift; sourceTree = ""; }; - 80A63C561F71D2E400FE5AC4 /* APISpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APISpec.swift; sourceTree = ""; }; - 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcherSpec.swift; sourceTree = ""; }; - 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensionsSpec.swift; sourceTree = ""; }; - 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageUnreadSeparator.swift; sourceTree = ""; }; - 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageUnreadSeparator.xib; sourceTree = ""; }; - 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SAMLViewController.swift; sourceTree = ""; }; - 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewControllerSpec.swift; sourceTree = ""; }; - 80C7DD5F1FF46B8000E6647C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD611FF46B8300E6647C /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/RCEmojiKit.strings"; sourceTree = ""; }; - 80C7DD621FF46B8600E6647C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD631FF46B8700E6647C /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD641FF46B8800E6647C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD651FF46B8C00E6647C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80CFB5711F8D697100FC9715 /* ReplyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReplyView.xib; sourceTree = ""; }; - 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyView.swift; sourceTree = ""; }; - 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEServerCell.xib; sourceTree = ""; }; - 80D0CE5F205016B40056B17F /* SEServerCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCell.swift; sourceTree = ""; }; - 80D0CE61205023710056B17F /* SECell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECell.swift; sourceTree = ""; }; - 80D0CE63205034280056B17F /* SEServerCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCellModel.swift; sourceTree = ""; }; - 80D0CE6520503C860056B17F /* SERoomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCell.swift; sourceTree = ""; }; - 80D0CE6720503C970056B17F /* SERoomCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SERoomCell.xib; sourceTree = ""; }; - 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCellModel.swift; sourceTree = ""; }; - 80D0CE6E20509C100056B17F /* SEAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEAvatarView.swift; sourceTree = ""; }; - 80D0CE7020509C230056B17F /* SEAvatarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEAvatarView.xib; sourceTree = ""; }; - 80D5637120592D32008896D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 80D563742059325A008896D6 /* MimeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MimeType.swift; sourceTree = ""; }; - 80D5637620593533008896D6 /* ParseItemProviders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseItemProviders.swift; sourceTree = ""; }; - 80D955C1202154A300E3F281 /* CASViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CASViewController.swift; sourceTree = ""; }; - 80DC9A6B206BA95600032BE0 /* Localized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Localized.swift; sourceTree = ""; }; - 80DC9A6F206BAC8B00032BE0 /* mimetype.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = mimetype.json; sourceTree = ""; }; - 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensions.swift; sourceTree = ""; }; - 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensionsSpec.swift; sourceTree = ""; }; - 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensionsSpec.swift; sourceTree = ""; }; - 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+CustomEmojis.swift"; sourceTree = ""; }; - 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkdownManagerSpec.swift; sourceTree = ""; }; - 80FA9065205313E20069038F /* SEContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEContent.swift; sourceTree = ""; }; - 80FA9067205314040069038F /* SEServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServer.swift; sourceTree = ""; }; - 80FA906920569F890069038F /* SEComposeFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCell.swift; sourceTree = ""; }; - 80FA906B20569FA10069038F /* SEComposeFileCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeFileCell.xib; sourceTree = ""; }; - 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCellModel.swift; sourceTree = ""; }; - 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewModel.swift; sourceTree = ""; }; - 80FA90712056C1190069038F /* SEComposeTextCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCell.swift; sourceTree = ""; }; - 80FA90732056C1350069038F /* SEComposeTextCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeTextCell.xib; sourceTree = ""; }; - 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCellModel.swift; sourceTree = ""; }; - 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeCellModel.swift; sourceTree = ""; }; - 80FA907C2057F4650069038F /* SubmitContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubmitContent.swift; sourceTree = ""; }; - 80FE8DED206584EA0099170E /* SEFileDetailView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEFileDetailView.xib; sourceTree = ""; }; - 80FE8DEF206587510099170E /* SEFileDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEFileDetailView.swift; sourceTree = ""; }; - 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.release.xcconfig"; sourceTree = ""; }; - 848088BA204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 848088BB204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; - 848088BC204370E9005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/VoiceOver.strings; sourceTree = ""; }; - 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequestSpec.swift; sourceTree = ""; }; - 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheckTableViewCell.swift; sourceTree = ""; }; - 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CheckTableViewCell.xib; sourceTree = ""; }; - 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = ""; }; - 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextFieldTableViewCell.xib; sourceTree = ""; }; - 897083D21F8CF08100233561 /* FormTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormTableViewCell.swift; sourceTree = ""; }; - 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequest.swift; sourceTree = ""; }; - 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewRoomViewControllerSpec.swift; sourceTree = ""; }; - 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewControllerSpec.swift; sourceTree = ""; }; - 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequest.swift; sourceTree = ""; }; - 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequestSpec.swift; sourceTree = ""; }; - 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequestSpec.swift; sourceTree = ""; }; - 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModel.swift; sourceTree = ""; }; - 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManagerSpec.swift; sourceTree = ""; }; - 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UINavigationControllerExtension.swift; sourceTree = ""; }; - 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManagerSpec.swift; sourceTree = ""; }; - 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModelSpec.swift; sourceTree = ""; }; - 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordTableViewController.swift; sourceTree = ""; }; - 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManager.swift; sourceTree = ""; }; - 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserTableViewController.swift; sourceTree = ""; }; - 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModel.swift; sourceTree = ""; }; - 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequest.swift; sourceTree = ""; }; - 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequestSpec.swift; sourceTree = ""; }; - 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequest.swift; sourceTree = ""; }; - 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequestSpec.swift; sourceTree = ""; }; - 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequestSpec.swift; sourceTree = ""; }; - 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequest.swift; sourceTree = ""; }; - 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModel.swift; sourceTree = ""; }; - 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManager.swift; sourceTree = ""; }; - 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewController.swift; sourceTree = ""; }; - 99D888FA204623A900E51306 /* UpdateUserRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequest.swift; sourceTree = ""; }; - 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModelSpec.swift; sourceTree = ""; }; - 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModelSpec.swift; sourceTree = ""; }; - A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TintedTextField.swift; sourceTree = ""; }; - AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.beta.xcconfig"; sourceTree = ""; }; - B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserReviewManager.swift; sourceTree = ""; }; - B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserReviewManagerSpec.swift; sourceTree = ""; }; - BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.debug.xcconfig"; sourceTree = ""; }; - D10E9C191F643457007F1796 /* Channel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Channel.swift; sourceTree = ""; }; - D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelModelMapping.swift; sourceTree = ""; }; - D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSRangeExtensions.swift; sourceTree = ""; }; - D10E9C211F643616007F1796 /* MentionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionModelMapping.swift; sourceTree = ""; }; - D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensions.swift; sourceTree = ""; }; - D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelSpec.swift; sourceTree = ""; }; - D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionSpec.swift; sourceTree = ""; }; - D15C83851F70991F001AB155 /* APIResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResponse.swift; sourceTree = ""; }; - D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestSpec.swift; sourceTree = ""; }; - D18675EB1F716A0D00406FB4 /* LoginRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequest.swift; sourceTree = ""; }; - D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequestSpec.swift; sourceTree = ""; }; - D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensionsSpec.swift; sourceTree = ""; }; - D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkdownManager.swift; sourceTree = ""; }; - D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFontExtensions.swift; sourceTree = ""; }; - D1D535EB1F7081FA006625D2 /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; - D1D535ED1F708628006625D2 /* APIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIRequest.swift; sourceTree = ""; }; - D1D535F01F70864C006625D2 /* InfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequest.swift; sourceTree = ""; }; - D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataControllerSpec.swift; sourceTree = ""; }; - D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinator.swift; sourceTree = ""; }; - D32E28221DFD86C300D6019C /* LauncherProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LauncherProtocol.swift; sourceTree = ""; }; - D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistencyCoordinator.swift; sourceTree = ""; }; - D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModel.swift; sourceTree = ""; }; - F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; sourceTree = ""; }; - FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.beta.xcconfig"; sourceTree = ""; }; + 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; + 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; + 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; + 33A5C9C2206A565800FE1C8F /* travel.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = travel.json; sourceTree = ""; }; + 33A5C9C3206A565800FE1C8F /* regional.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = regional.json; sourceTree = ""; }; + 33A5C9C4206A565800FE1C8F /* flags.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = flags.json; sourceTree = ""; }; + 33A5C9C5206A565800FE1C8F /* people.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = people.json; sourceTree = ""; }; + 33A5C9C6206A565800FE1C8F /* objects.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = objects.json; sourceTree = ""; }; + 33A5C9C7206A565800FE1C8F /* food.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = food.json; sourceTree = ""; }; + 33A5C9C8206A565800FE1C8F /* activity.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = activity.json; sourceTree = ""; }; + 33A5C9C9206A565800FE1C8F /* nature.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = nature.json; sourceTree = ""; }; + 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatNotification.swift; sourceTree = ""; }; + 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; + 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; + 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; + 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; + 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; + 35BCD302201A9FB800B4BE5A /* AskSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AskSpec.swift; sourceTree = ""; }; + 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCDateFormatter.swift; sourceTree = ""; }; + 35D2F140200A45E800B4BE5A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertSpec.swift; sourceTree = ""; }; + 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OAuthManager.swift; sourceTree = ""; }; + 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewRoomViewController.swift; sourceTree = ""; }; + 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModel.swift; sourceTree = ""; }; + 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewControllerCustomFields.swift; sourceTree = ""; }; + 4101BF001F8D0A1700F67E89 /* AppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManager.swift; sourceTree = ""; }; + 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManagerSpec.swift; sourceTree = ""; }; + 4102E3A91E532323004BAA82 /* Preferences.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Preferences.storyboard; sourceTree = ""; }; + 411119B51F680DB00019854B /* NetworkCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkCoordinator.swift; sourceTree = ""; }; + 411119B71F6825C30019854B /* NetworkManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManagerSpec.swift; sourceTree = ""; }; + 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainChatViewController.swift; sourceTree = ""; }; + 4112DC551FFFB9B1005995E1 /* BaseModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModel.swift; sourceTree = ""; }; + 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelHandler.swift; sourceTree = ""; }; + 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelMappeable.swift; sourceTree = ""; }; + 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModelSpec.swift; sourceTree = ""; }; + 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModel.swift; sourceTree = ""; }; + 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentSpec.swift; sourceTree = ""; }; + 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManager.swift; sourceTree = ""; }; + 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManagerSpec.swift; sourceTree = ""; }; + 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadManager.swift; sourceTree = ""; }; + 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatChannelHeaderCell.swift; sourceTree = ""; }; + 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatChannelHeaderCell.xib; sourceTree = ""; }; + 412184A420472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 412184A520472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + 412184A620472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/VoiceOver.strings; sourceTree = ""; }; + 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterUsernameViewController.swift; sourceTree = ""; }; + 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatPreviewModeView.xib; sourceTree = ""; }; + 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPreviewModeView.swift; sourceTree = ""; }; + 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageVideoView.swift; sourceTree = ""; }; + 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageVideoView.xib; sourceTree = ""; }; + 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageTextView.xib; sourceTree = ""; }; + 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextView.swift; sourceTree = ""; }; + 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorCSSColorsExtension.swift; sourceTree = ""; }; + 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageURLView.swift; sourceTree = ""; }; + 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageURLView.xib; sourceTree = ""; }; + 412EF3C52050507C001689A3 /* ReusableViewText.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReusableViewText.xib; sourceTree = ""; }; + 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = ""; }; + 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageImageView.swift; sourceTree = ""; }; + 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageImageView.xib; sourceTree = ""; }; + 413996161F3B44500075F96E /* UploadHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelper.swift; sourceTree = ""; }; + 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsPageViewController.swift; sourceTree = ""; }; + 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServersViewController.swift; sourceTree = ""; }; + 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCell.swift; sourceTree = ""; }; + 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddServerCell.swift; sourceTree = ""; }; + 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManagerSpec.swift; sourceTree = ""; }; + 41494B911D63C6280004F369 /* UIImageExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; + 41499C8E1F2A116900790EA7 /* ServerManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManager.swift; sourceTree = ""; }; + 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampCoordinator.swift; sourceTree = ""; }; + 414A1FF51D46320F00093E10 /* ResponseMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessage.swift; sourceTree = ""; }; + 414A1FF91D46395400093E10 /* SocketManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManager.swift; sourceTree = ""; }; + 414A1FFB1D46395900093E10 /* SocketResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketResponse.swift; sourceTree = ""; }; + 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewController.swift; sourceTree = ""; }; + 414EFF911E54FE69004F001F /* AuthExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthExtensions.swift; sourceTree = ""; }; + 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextCacheManager.swift; sourceTree = ""; }; + 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModelSpec.swift; sourceTree = ""; }; + 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelHandler.swift; sourceTree = ""; }; + 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelHandler.swift; sourceTree = ""; }; + 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelMapping.swift; sourceTree = ""; }; + 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageModelMapping.swift; sourceTree = ""; }; + 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttachmentModelMapping.swift; sourceTree = ""; }; + 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsModelMapping.swift; sourceTree = ""; }; + 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLModelMapping.swift; sourceTree = ""; }; + 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinatorSpec.swift; sourceTree = ""; }; + 4153E80420504BE700FBC26B /* ReusableViewText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReusableViewText.swift; sourceTree = ""; }; + 41552F651D30308C0081438D /* AuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManager.swift; sourceTree = ""; }; + 41552F671D3035D80081438D /* SocketManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManagerSpec.swift; sourceTree = ""; }; + 4159720B1D3DB854002258F4 /* Email.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Email.swift; sourceTree = ""; }; + 4159720D1D3DB882002258F4 /* Mention.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mention.swift; sourceTree = ""; }; + 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoFactorAuthenticationViewController.swift; sourceTree = ""; }; + 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; + 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCell.swift; sourceTree = ""; }; + 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageCell.xib; sourceTree = ""; }; + 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModelSpec.swift; sourceTree = ""; }; + 416133391D46E0A200E09DA2 /* AuthSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSpec.swift; sourceTree = ""; }; + 4161333B1D46E32F00E09DA2 /* UserSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserSpec.swift; sourceTree = ""; }; + 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSpec.swift; sourceTree = ""; }; + 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageSpec.swift; sourceTree = ""; }; + 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelperSpec.swift; sourceTree = ""; }; + 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManagerSpec.swift; sourceTree = ""; }; + 4162E1521D651A8800AAAE49 /* UserManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserManager.swift; sourceTree = ""; }; + 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketHandlers.swift; sourceTree = ""; }; + 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarViewSpec.swift; sourceTree = ""; }; + 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectServerViewController.swift; sourceTree = ""; }; + 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Auth.storyboard; sourceTree = ""; }; + 4174CB121D2D99960086DAC8 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; + 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseNavigationController.swift; sourceTree = ""; }; + 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthViewController.swift; sourceTree = ""; }; + 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; + 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; + 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Rocket.Chat-Bridge.h"; sourceTree = ""; }; + 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessageSpec.swift; sourceTree = ""; }; + 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoViewController.swift; sourceTree = ""; }; + 41833F4D1DEF16B600E54655 /* Keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Keys.plist; sourceTree = ""; }; + 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatControllerReplyHandler.swift; sourceTree = ""; }; + 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewControllerEmbedded.swift; sourceTree = ""; }; + 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WebViewControllerEmbedded.xib; sourceTree = ""; }; + 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageActions.swift; sourceTree = ""; }; + 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSectionView.swift; sourceTree = ""; }; + 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSectionView.xib; sourceTree = ""; }; + 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegateSpec.swift; sourceTree = ""; }; + 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegate.swift; sourceTree = ""; }; + 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegateSpec.swift; sourceTree = ""; }; + 41900C261D9FE35400308EF4 /* Attachment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Attachment.swift; sourceTree = ""; }; + 419205481D52EDE6004EEC5F /* UILabelExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UILabelExtension.swift; sourceTree = ""; }; + 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionCell.swift; sourceTree = ""; }; + 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; + 4199A9881DABCC570035F820 /* Emojione.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Emojione.swift; sourceTree = ""; }; + 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandler.swift; sourceTree = ""; }; + 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandlerSpec.swift; sourceTree = ""; }; + 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatHeaderViewStatus.xib; sourceTree = ""; }; + 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHeaderViewStatus.swift; sourceTree = ""; }; + 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerHeaderStatus.swift; sourceTree = ""; }; + 419ECCA31F3CA21A005F224B /* DownloadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; + 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerDocuments.swift; sourceTree = ""; }; + 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewControllerExtension.swift; sourceTree = ""; }; + 41A6191A1FA7065400CFFA69 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + 41A79C0E1D2F085F00A1968E /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; + 41A79C121D2F09F200A1968E /* Auth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Auth.swift; sourceTree = ""; }; + 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettings.swift; sourceTree = ""; }; + 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionUserStatusView.xib; sourceTree = ""; }; + 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionUserStatusView.swift; sourceTree = ""; }; + 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AutocompleteCell.xib; sourceTree = ""; }; + 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutocompleteCell.swift; sourceTree = ""; }; + 41ADDD481E9DBB100007A458 /* LoaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderView.swift; sourceTree = ""; }; + 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderViewSpec.swift; sourceTree = ""; }; + 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerUploader.swift; sourceTree = ""; }; + 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIWindowExtensions.swift; sourceTree = ""; }; + 41B554C61FBF0F9D000510B7 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = ""; }; + 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewControllerTextViewDelegate.swift; sourceTree = ""; }; + 41B96361207E48260068F1A6 /* MessageTextValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidator.swift; sourceTree = ""; }; + 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidatorSpec.swift; sourceTree = ""; }; + 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManagerSpec.swift; sourceTree = ""; }; + 41BAE3E61D71B26C00C2445A /* URLExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtension.swift; sourceTree = ""; }; + 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtensionSpec.swift; sourceTree = ""; }; + 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelMapping.swift; sourceTree = ""; }; + 41C275DE1D848005003C88CF /* AvatarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarView.swift; sourceTree = ""; }; + 41C275E01D84815C003C88CF /* AvatarView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AvatarView.xib; sourceTree = ""; }; + 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataController.swift; sourceTree = ""; }; + 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatLoaderCell.xib; sourceTree = ""; }; + 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatLoaderCell.swift; sourceTree = ""; }; + 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayExtensions.swift; sourceTree = ""; }; + 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageDaySeparator.xib; sourceTree = ""; }; + 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageDaySeparator.swift; sourceTree = ""; }; + 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayout.swift; sourceTree = ""; }; + 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewExtentions.swift; sourceTree = ""; }; + 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextFontAttributes.swift; sourceTree = ""; }; + 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensions.swift; sourceTree = ""; }; + 41D7CA861E644E47000F38EA /* MessageExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageExtensions.swift; sourceTree = ""; }; + 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDirectMessageHeaderCell.swift; sourceTree = ""; }; + 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatDirectMessageHeaderCell.xib; sourceTree = ""; }; + 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionManager.swift; sourceTree = ""; }; + 41DAE93D1D318F350098E068 /* Subscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscription.swift; sourceTree = ""; }; + 41DC7A1A1D38454500896FC0 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; + 41DC7A1C1D38471700896FC0 /* MessageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManager.swift; sourceTree = ""; }; + 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManagerSpec.swift; sourceTree = ""; }; + 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensionSpec.swift; sourceTree = ""; }; + 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtensionsSpec.swift; sourceTree = ""; }; + 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSearchMoreView.xib; sourceTree = ""; }; + 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSearchMoreView.swift; sourceTree = ""; }; + 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 41DF76E91D2C50710028DBF8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 41DF76EC1D2C50720028DBF8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 41DF76EE1D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF76F91D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RocketChatUITests.swift; sourceTree = ""; }; + 41DF77041D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41E2F9FE1D414DE800238DFD /* Chat.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Chat.storyboard; sourceTree = ""; }; + 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Subscriptions.storyboard; sourceTree = ""; }; + 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsViewController.swift; sourceTree = ""; }; + 41E2FA061D41513C00238DFD /* ChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = ""; }; + 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensionSpec.swift; sourceTree = ""; }; + 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UINibExtensions.swift; sourceTree = ""; }; + 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = ""; }; + 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthInternalExtensions.swift; sourceTree = ""; }; + 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueriesSpec.swift; sourceTree = ""; }; + 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadVideoCompression.swift; sourceTree = ""; }; + 41EB22371E5F056600AA3AE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 41EB223A1E5F057F00AA3AE7 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + 41EB223B1E5F19EB00AA3AE7 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerAutocomplete.swift; sourceTree = ""; }; + 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageCellProtocol.swift; sourceTree = ""; }; + 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerSocketConnectionHandler.swift; sourceTree = ""; }; + 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTitleView.swift; sourceTree = ""; }; + 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatTitleView.xib; sourceTree = ""; }; + 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURL.swift; sourceTree = ""; }; + 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModelSpec.swift; sourceTree = ""; }; + 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManagerSpec.swift; sourceTree = ""; }; + 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.release.xcconfig"; sourceTree = ""; }; + 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.debug.xcconfig"; sourceTree = ""; }; + 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.entitlements; sourceTree = ""; }; + 597ECBA11E3708A50041C5C5 /* DataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataExtension.swift; sourceTree = ""; }; + 597ECBA31E3708B10041C5C5 /* PushManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushManager.swift; sourceTree = ""; }; + 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; sourceTree = ""; }; + 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat_ShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLSpec.swift; sourceTree = ""; }; + 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_ChatTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegate.swift; sourceTree = ""; }; + 7798B4141F852B720074B2F4 /* SelectField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectField.swift; sourceTree = ""; }; + 7798B4181F852D670074B2F4 /* CustomField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomField.swift; sourceTree = ""; }; + 77BA81501F87C4CB00F295F4 /* TextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextField.swift; sourceTree = ""; }; + 77C261241F97445300724A1F /* AuthSettingsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsSpec.swift; sourceTree = ""; }; + 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DictionaryExtensionsSpec.swift; sourceTree = ""; }; + 77C261291F97453600724A1F /* CustomFieldsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomFieldsSpec.swift; sourceTree = ""; }; + 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectFieldSpec.swift; sourceTree = ""; }; + 77C2612B1F97453600724A1F /* TextFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldSpec.swift; sourceTree = ""; }; + 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtensions.swift; sourceTree = ""; }; + 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendMessageRequest.swift; sourceTree = ""; }; + 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClient.swift; sourceTree = ""; }; + 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClientSpec.swift; sourceTree = ""; }; + 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequest.swift; sourceTree = ""; }; + 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushTokenDeleteRequest.swift; sourceTree = ""; }; + 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushClient.swift; sourceTree = ""; }; + 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = ""; }; + 800640F62049BA25006D990F /* SEScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEScene.swift; sourceTree = ""; }; + 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListViewController.swift; sourceTree = ""; }; + 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMessagesRequest.swift; sourceTree = ""; }; + 800F38EC2019492D0005CB78 /* DeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLink.swift; sourceTree = ""; }; + 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembersListViewController.swift; sourceTree = ""; }; + 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoBasicCell.swift; sourceTree = ""; }; + 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoCellProtocol.swift; sourceTree = ""; }; + 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDescriptionCell.swift; sourceTree = ""; }; + 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDetailCell.swift; sourceTree = ""; }; + 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoUserCell.swift; sourceTree = ""; }; + 800FCD491F728E6A00D9A692 /* MemberCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberCell.swift; sourceTree = ""; }; + 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MemberCell.xib; sourceTree = ""; }; + 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewController.swift; sourceTree = ""; }; + 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayoutSpec.swift; sourceTree = ""; }; + 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensions.swift; sourceTree = ""; }; + 8013F8661FD6B4F400EE1A4E /* Command.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Command.swift; sourceTree = ""; }; + 8013F8681FD6B59900EE1A4E /* Version.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Version.swift; sourceTree = ""; }; + 8013F8691FD6B59900EE1A4E /* APIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIError.swift; sourceTree = ""; }; + 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIClient.swift; sourceTree = ""; }; + 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClient.swift; sourceTree = ""; }; + 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClient.swift; sourceTree = ""; }; + 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddleware.swift; sourceTree = ""; }; + 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddlewareSpec.swift; sourceTree = ""; }; + 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockAPI.swift; sourceTree = ""; }; + 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionSpec.swift; sourceTree = ""; }; + 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClientSpec.swift; sourceTree = ""; }; + 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClientSpec.swift; sourceTree = ""; }; + 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsRequest.swift; sourceTree = ""; }; + 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequest.swift; sourceTree = ""; }; + 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequestSpec.swift; sourceTree = ""; }; + 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandModelMapping.swift; sourceTree = ""; }; + 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushManagerSpec.swift; sourceTree = ""; }; + 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUserView.swift; sourceTree = ""; }; + 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPicker.swift; sourceTree = ""; }; + 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiPicker.xib; sourceTree = ""; }; + 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerController.swift; sourceTree = ""; }; + 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequestSpec.swift; sourceTree = ""; }; + 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPMethod.swift; sourceTree = ""; }; + 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequest.swift; sourceTree = ""; }; + 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequestSpec.swift; sourceTree = ""; }; + 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoaderTableViewCell.swift; sourceTree = ""; }; + 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoaderTableViewCell.xib; sourceTree = ""; }; + 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactionSpec.swift; sourceTree = ""; }; + 802498ED1F7A8380005477EC /* MeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequest.swift; sourceTree = ""; }; + 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequestSpec.swift; sourceTree = ""; }; + 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageAudioView.xib; sourceTree = ""; }; + 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAudioView.swift; sourceTree = ""; }; + 8029B2F12059B6F60067157B /* VideoInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoInfo.swift; sourceTree = ""; }; + 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+StatusReport.swift"; sourceTree = ""; }; + 802A4E102049C7340072CD23 /* SENavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigationController.swift; sourceTree = ""; }; + 802A4E23204D730F0072CD23 /* AppGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppGroup.swift; sourceTree = ""; }; + 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOTextField.swift; sourceTree = ""; }; + 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOLocalized.swift; sourceTree = ""; }; + 80307E421FD75DC0006AD9EF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E441FD75DCB006AD9EF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/VoiceOver.strings"; sourceTree = ""; }; + 80307E451FD75DCF006AD9EF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E461FD75DD1006AD9EF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E471FD75DD2006AD9EF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E481FD75DD5006AD9EF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/VoiceOver.strings; sourceTree = ""; }; + 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateMessageRequest.swift; sourceTree = ""; }; + 803782B61FB4751D00DED049 /* RealmTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmTestCase.swift; sourceTree = ""; }; + 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListViewController.swift; sourceTree = ""; }; + 8041C0412028C7EF007E21FA /* ReactorListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListView.swift; sourceTree = ""; }; + 8041C0432028C828007E21FA /* ReactorListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactorListView.xib; sourceTree = ""; }; + 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCEmojiKitLocalizable.swift; sourceTree = ""; }; + 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = RCEmojiKit.xcassets; sourceTree = ""; }; + 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewController.swift; sourceTree = ""; }; + 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEXibInitializable.swift; sourceTree = ""; }; + 805DEC341FFC03380033151B /* CustomEmojiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiManager.swift; sourceTree = ""; }; + 805DEC361FFC08870033151B /* CustomEmoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmoji.swift; sourceTree = ""; }; + 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiSpec.swift; sourceTree = ""; }; + 806401301FB09DE800990572 /* Permission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Permission.swift; sourceTree = ""; }; + 806401321FB09EC400990572 /* PermissionModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionModelMapping.swift; sourceTree = ""; }; + 806401341FB09F8A00990572 /* PermissionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManager.swift; sourceTree = ""; }; + 806465EB1FED19B9001F27DB /* EmojiView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiView.xib; sourceTree = ""; }; + 806465ED1FED1AFE001F27DB /* EmojiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiView.swift; sourceTree = ""; }; + 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesNavigationController.swift; sourceTree = ""; }; + 806728FE20079734009FE94D /* DeleteMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequest.swift; sourceTree = ""; }; + 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequestSpec.swift; sourceTree = ""; }; + 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequest.swift; sourceTree = ""; }; + 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequestSpec.swift; sourceTree = ""; }; + 8067DAA5206D1883005E3369 /* APIResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResource.swift; sourceTree = ""; }; + 8069D26D1FFF876D00C75926 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; + 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostMessageRequest.swift; sourceTree = ""; }; + 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMessageRequestSpec.swift; sourceTree = ""; }; + 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerLoginServices.swift; sourceTree = ""; }; + 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerConnectionHandler.swift; sourceTree = ""; }; + 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerAuthenticationHandler.swift; sourceTree = ""; }; + 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageCellAccessibility.swift; sourceTree = ""; }; + 807371991F94E83600D53ADF /* SocketError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocketError.swift; sourceTree = ""; }; + 8073719B1F963FA400D53ADF /* APITestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APITestCase.swift; sourceTree = ""; }; + 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceManager.swift; sourceTree = ""; }; + 8073719F1F96937100D53ADF /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginService.swift; sourceTree = ""; }; + 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelMapping.swift; sourceTree = ""; }; + 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelHandler.swift; sourceTree = ""; }; + 8076FD9920484A6000114F28 /* SEStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEStore.swift; sourceTree = ""; }; + 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerSocket.swift; sourceTree = ""; }; + 8076FDA32048533000114F28 /* String+Random.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Random.swift"; sourceTree = ""; }; + 8076FDA8204853DE00114F28 /* RealmExecute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmExecute.swift; sourceTree = ""; }; + 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSettingsHiddenTypes.swift; sourceTree = ""; }; + 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanDeleteMessage.swift; sourceTree = ""; }; + 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanBlockMessage.swift; sourceTree = ""; }; + 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanEditMessage.swift; sourceTree = ""; }; + 8076FDB42048571200114F28 /* AuthUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthUser.swift; sourceTree = ""; }; + 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerCurrentUser.swift; sourceTree = ""; }; + 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerRecover.swift; sourceTree = ""; }; + 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUtils.swift; sourceTree = ""; }; + 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUser.swift; sourceTree = ""; }; + 8076FDC62048632300114F28 /* SubscriptionQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueries.swift; sourceTree = ""; }; + 8076FDD02048646500114F28 /* MessageReply.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReply.swift; sourceTree = ""; }; + 8076FDD5204864E700114F28 /* UserQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserQueries.swift; sourceTree = ""; }; + 8076FDD72048654F00114F28 /* UserUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserUtils.swift; sourceTree = ""; }; + 8076FDD920489F5900114F28 /* SEViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEViewController.swift; sourceTree = ""; }; + 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewController.swift; sourceTree = ""; }; + 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationCoordinator.swift; sourceTree = ""; }; + 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Group.swift"; sourceTree = ""; }; + 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.ShareExtension.entitlements; sourceTree = ""; }; + 8076FDEC2049A5F600114F28 /* SECellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECellModel.swift; sourceTree = ""; }; + 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceSpec.swift; sourceTree = ""; }; + 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthManagerSpec.swift; sourceTree = ""; }; + 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanPinMessage.swift; sourceTree = ""; }; + 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPlaceholderTextView.swift; sourceTree = ""; }; + 807C7C0520751ED1006B600E /* SpotlightClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClient.swift; sourceTree = ""; }; + 807C7C0720751EDB006B600E /* SpotlightRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequest.swift; sourceTree = ""; }; + 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequestSpec.swift; sourceTree = ""; }; + 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClientSpec.swift; sourceTree = ""; }; + 807C7C11207522EF006B600E /* LoginServicesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginServicesRequest.swift; sourceTree = ""; }; + 807FB53C2044B49800E21429 /* Emojione+Transform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Emojione+Transform.swift"; sourceTree = ""; }; + 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojioneSpec.swift; sourceTree = ""; }; + 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Rocket.Chat.ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewController.swift; sourceTree = ""; }; + 807FB55D2046E7DD00E21429 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 807FB55F2046E7DD00E21429 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 807FB568204729E500E21429 /* SEServersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewController.swift; sourceTree = ""; }; + 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewModel.swift; sourceTree = ""; }; + 807FB57020472B6A00E21429 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + 807FB57220472B6D00E21429 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57320472B6F00E21429 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57420472B7000E21429 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57520472B7200E21429 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57620472B7300E21429 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57720472B8200E21429 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 807FB581204837AF00E21429 /* SEServersViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewModel.swift; sourceTree = ""; }; + 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManagerSpec.swift; sourceTree = ""; }; + 808792371FB14B3300EFE77F /* PermissionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionSpec.swift; sourceTree = ""; }; + 80977AB5204EEF1E00C41435 /* SelectServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectServer.swift; sourceTree = ""; }; + 80977AB8204EFBCC00C41435 /* SENavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigation.swift; sourceTree = ""; }; + 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESceneTransition.swift; sourceTree = ""; }; + 80977ABE204F36F200C41435 /* SESearchState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESearchState.swift; sourceTree = ""; }; + 80977AC1204F37C200C41435 /* SEState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEState.swift; sourceTree = ""; }; + 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewModel.swift; sourceTree = ""; }; + 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadClient.swift; sourceTree = ""; }; + 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionListView.swift; sourceTree = ""; }; + 809B530F1FE2F17D00833DD2 /* ReactionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionView.swift; sourceTree = ""; }; + 809B53111FE2F2F900833DD2 /* ReactionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionView.xib; sourceTree = ""; }; + 809B53131FE3294400833DD2 /* ReactionListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionListView.xib; sourceTree = ""; }; + 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReaction.swift; sourceTree = ""; }; + 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RealmCurrent.swift; sourceTree = ""; }; + 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcher.swift; sourceTree = ""; }; + 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiAutocompleteCell.swift; sourceTree = ""; }; + 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiAutocompleteCell.xib; sourceTree = ""; }; + 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequest.swift; sourceTree = ""; }; + 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequestSpec.swift; sourceTree = ""; }; + 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequest.swift; sourceTree = ""; }; + 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequestSpec.swift; sourceTree = ""; }; + 80A63C561F71D2E400FE5AC4 /* APISpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APISpec.swift; sourceTree = ""; }; + 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcherSpec.swift; sourceTree = ""; }; + 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensionsSpec.swift; sourceTree = ""; }; + 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageUnreadSeparator.swift; sourceTree = ""; }; + 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageUnreadSeparator.xib; sourceTree = ""; }; + 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SAMLViewController.swift; sourceTree = ""; }; + 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewControllerSpec.swift; sourceTree = ""; }; + 80C7DD5F1FF46B8000E6647C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD611FF46B8300E6647C /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/RCEmojiKit.strings"; sourceTree = ""; }; + 80C7DD621FF46B8600E6647C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD631FF46B8700E6647C /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD641FF46B8800E6647C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD651FF46B8C00E6647C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80CFB5711F8D697100FC9715 /* ReplyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReplyView.xib; sourceTree = ""; }; + 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyView.swift; sourceTree = ""; }; + 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEServerCell.xib; sourceTree = ""; }; + 80D0CE5F205016B40056B17F /* SEServerCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCell.swift; sourceTree = ""; }; + 80D0CE61205023710056B17F /* SECell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECell.swift; sourceTree = ""; }; + 80D0CE63205034280056B17F /* SEServerCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCellModel.swift; sourceTree = ""; }; + 80D0CE6520503C860056B17F /* SERoomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCell.swift; sourceTree = ""; }; + 80D0CE6720503C970056B17F /* SERoomCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SERoomCell.xib; sourceTree = ""; }; + 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCellModel.swift; sourceTree = ""; }; + 80D0CE6E20509C100056B17F /* SEAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEAvatarView.swift; sourceTree = ""; }; + 80D0CE7020509C230056B17F /* SEAvatarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEAvatarView.xib; sourceTree = ""; }; + 80D5637120592D32008896D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 80D563742059325A008896D6 /* MimeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MimeType.swift; sourceTree = ""; }; + 80D5637620593533008896D6 /* ParseItemProviders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseItemProviders.swift; sourceTree = ""; }; + 80D955C1202154A300E3F281 /* CASViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CASViewController.swift; sourceTree = ""; }; + 80DC9A6B206BA95600032BE0 /* Localized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Localized.swift; sourceTree = ""; }; + 80DC9A6F206BAC8B00032BE0 /* mimetype.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = mimetype.json; sourceTree = ""; }; + 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensions.swift; sourceTree = ""; }; + 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensionsSpec.swift; sourceTree = ""; }; + 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensionsSpec.swift; sourceTree = ""; }; + 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+CustomEmojis.swift"; sourceTree = ""; }; + 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkdownManagerSpec.swift; sourceTree = ""; }; + 80FA9065205313E20069038F /* SEContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEContent.swift; sourceTree = ""; }; + 80FA9067205314040069038F /* SEServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServer.swift; sourceTree = ""; }; + 80FA906920569F890069038F /* SEComposeFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCell.swift; sourceTree = ""; }; + 80FA906B20569FA10069038F /* SEComposeFileCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeFileCell.xib; sourceTree = ""; }; + 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCellModel.swift; sourceTree = ""; }; + 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewModel.swift; sourceTree = ""; }; + 80FA90712056C1190069038F /* SEComposeTextCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCell.swift; sourceTree = ""; }; + 80FA90732056C1350069038F /* SEComposeTextCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeTextCell.xib; sourceTree = ""; }; + 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCellModel.swift; sourceTree = ""; }; + 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeCellModel.swift; sourceTree = ""; }; + 80FA907C2057F4650069038F /* SubmitContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubmitContent.swift; sourceTree = ""; }; + 80FE8DED206584EA0099170E /* SEFileDetailView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEFileDetailView.xib; sourceTree = ""; }; + 80FE8DEF206587510099170E /* SEFileDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEFileDetailView.swift; sourceTree = ""; }; + 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.release.xcconfig"; sourceTree = ""; }; + 848088BA204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 848088BB204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 848088BC204370E9005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/VoiceOver.strings; sourceTree = ""; }; + 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequestSpec.swift; sourceTree = ""; }; + 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheckTableViewCell.swift; sourceTree = ""; }; + 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CheckTableViewCell.xib; sourceTree = ""; }; + 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = ""; }; + 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextFieldTableViewCell.xib; sourceTree = ""; }; + 897083D21F8CF08100233561 /* FormTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormTableViewCell.swift; sourceTree = ""; }; + 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequest.swift; sourceTree = ""; }; + 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewRoomViewControllerSpec.swift; sourceTree = ""; }; + 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewControllerSpec.swift; sourceTree = ""; }; + 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequest.swift; sourceTree = ""; }; + 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequestSpec.swift; sourceTree = ""; }; + 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequestSpec.swift; sourceTree = ""; }; + 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModel.swift; sourceTree = ""; }; + 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManagerSpec.swift; sourceTree = ""; }; + 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UINavigationControllerExtension.swift; sourceTree = ""; }; + 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManagerSpec.swift; sourceTree = ""; }; + 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModelSpec.swift; sourceTree = ""; }; + 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordTableViewController.swift; sourceTree = ""; }; + 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManager.swift; sourceTree = ""; }; + 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserTableViewController.swift; sourceTree = ""; }; + 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModel.swift; sourceTree = ""; }; + 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequest.swift; sourceTree = ""; }; + 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequestSpec.swift; sourceTree = ""; }; + 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequest.swift; sourceTree = ""; }; + 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequestSpec.swift; sourceTree = ""; }; + 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequestSpec.swift; sourceTree = ""; }; + 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequest.swift; sourceTree = ""; }; + 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModel.swift; sourceTree = ""; }; + 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManager.swift; sourceTree = ""; }; + 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewController.swift; sourceTree = ""; }; + 99D888FA204623A900E51306 /* UpdateUserRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequest.swift; sourceTree = ""; }; + 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModelSpec.swift; sourceTree = ""; }; + 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModelSpec.swift; sourceTree = ""; }; + A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TintedTextField.swift; sourceTree = ""; }; + AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.beta.xcconfig"; sourceTree = ""; }; + B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserReviewManager.swift; sourceTree = ""; }; + B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserReviewManagerSpec.swift; sourceTree = ""; }; + BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.debug.xcconfig"; sourceTree = ""; }; + D10E9C191F643457007F1796 /* Channel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Channel.swift; sourceTree = ""; }; + D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelModelMapping.swift; sourceTree = ""; }; + D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSRangeExtensions.swift; sourceTree = ""; }; + D10E9C211F643616007F1796 /* MentionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionModelMapping.swift; sourceTree = ""; }; + D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensions.swift; sourceTree = ""; }; + D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelSpec.swift; sourceTree = ""; }; + D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionSpec.swift; sourceTree = ""; }; + D15C83851F70991F001AB155 /* APIResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResponse.swift; sourceTree = ""; }; + D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestSpec.swift; sourceTree = ""; }; + D18675EB1F716A0D00406FB4 /* LoginRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequest.swift; sourceTree = ""; }; + D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequestSpec.swift; sourceTree = ""; }; + D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensionsSpec.swift; sourceTree = ""; }; + D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkdownManager.swift; sourceTree = ""; }; + D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFontExtensions.swift; sourceTree = ""; }; + D1D535EB1F7081FA006625D2 /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; + D1D535ED1F708628006625D2 /* APIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIRequest.swift; sourceTree = ""; }; + D1D535F01F70864C006625D2 /* InfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequest.swift; sourceTree = ""; }; + D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataControllerSpec.swift; sourceTree = ""; }; + D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinator.swift; sourceTree = ""; }; + D32E28221DFD86C300D6019C /* LauncherProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LauncherProtocol.swift; sourceTree = ""; }; + D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistencyCoordinator.swift; sourceTree = ""; }; + D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModel.swift; sourceTree = ""; }; + F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; sourceTree = ""; }; + FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.beta.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 41DF76DC1D2C50710028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76F01D2C50720028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FB1D2C50720028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5552046E7DD00E21429 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 41DF76DC1D2C50710028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76F01D2C50720028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FB1D2C50720028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5552046E7DD00E21429 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0B3A9760202C4DE10019CA92 /* Resources */ = { - isa = PBXGroup; - children = ( - 14F8A210202E5B2A00175FDC /* AlternateIcons */, - 41DF76E91D2C50710028DBF8 /* Assets.xcassets */, - 41EB22381E5F056600AA3AE7 /* Localizable.strings */, - 80307E431FD75DC0006AD9EF /* VoiceOver.strings */, - ); - path = Resources; - sourceTree = ""; - }; - 0B3A9767202C75A60019CA92 /* ChangeAppIcon */ = { - isa = PBXGroup; - children = ( - 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */, - 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */, - 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */, - ); - path = ChangeAppIcon; - sourceTree = ""; - }; - 0B9AB2BF20444EB300ABEA05 /* Language */ = { - isa = PBXGroup; - children = ( - 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */, - 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */, - 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */, - 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */, - ); - path = Language; - sourceTree = ""; - }; - 0BBCC2C0204546BB001E3B6D /* Language */ = { - isa = PBXGroup; - children = ( - 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */, - ); - path = Language; - sourceTree = ""; - }; - 106DAA428B5BF7289FB70C65 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */, - 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */, - 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 140A95DC202F1E4D003FD564 /* AppIcon */ = { - isa = PBXGroup; - children = ( - 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */, - ); - path = AppIcon; - sourceTree = ""; - }; - 140A95E2202F5321003FD564 /* Drawing */ = { - isa = PBXGroup; - children = ( - 14A6A82F20421DED008C210D /* Color Picker */, - 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */, - 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */, - 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */, - 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */, - 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */, - 140A95E3202F536D003FD564 /* DrawingViewController.swift */, - 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */, - ); - path = Drawing; - sourceTree = ""; - }; - 140C84EA1FC9DB9600032A59 /* CreateChannel */ = { - isa = PBXGroup; - children = ( - 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */, - ); - path = CreateChannel; - sourceTree = ""; - }; - 14A6A82F20421DED008C210D /* Color Picker */ = { - isa = PBXGroup; - children = ( - 14A6A83020421DF8008C210D /* ColorPickerView.swift */, - ); - path = "Color Picker"; - sourceTree = ""; - }; - 14F8A210202E5B2A00175FDC /* AlternateIcons */ = { - isa = PBXGroup; - children = ( - 14F8A211202E5B3200175FDC /* Black */, - 14F8A276202E654900175FDC /* Blue */, - 14F8A247202E649F00175FDC /* BnW */, - 14F8A262202E653600175FDC /* Grey */, - 14F8A212202E5B3B00175FDC /* Red */, - 14F8A275202E654400175FDC /* White */, - ); - path = AlternateIcons; - sourceTree = ""; - }; - 14F8A211202E5B3200175FDC /* Black */ = { - isa = PBXGroup; - children = ( - 14F8A219202E5CBE00175FDC /* Black-29@2x.png */, - 14F8A213202E5CBD00175FDC /* Black-29@3x.png */, - 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */, - 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */, - 14F8A218202E5CBE00175FDC /* Black-60@2x.png */, - 14F8A217202E5CBE00175FDC /* Black-60@3x.png */, - 14F8A216202E5CBE00175FDC /* Black-76@2x.png */, - 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */, - 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */, - ); - path = Black; - sourceTree = ""; - }; - 14F8A212202E5B3B00175FDC /* Red */ = { - isa = PBXGroup; - children = ( - 14F8A232202E5D0400175FDC /* Red-29@2x.png */, - 14F8A230202E5D0400175FDC /* Red-29@3x.png */, - 14F8A236202E5D0500175FDC /* Red-40@2x.png */, - 14F8A235202E5D0500175FDC /* Red-40@3x.png */, - 14F8A234202E5D0400175FDC /* Red-60@2x.png */, - 14F8A22F202E5D0400175FDC /* Red-60@3x.png */, - 14F8A233202E5D0400175FDC /* Red-76@2x.png */, - 14F8A238202E5D0600175FDC /* Red-76@3x.png */, - 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */, - ); - path = Red; - sourceTree = ""; - }; - 14F8A247202E649F00175FDC /* BnW */ = { - isa = PBXGroup; - children = ( - 14F8A24D202E64B100175FDC /* BnW-29@2x.png */, - 14F8A250202E64B100175FDC /* BnW-29@3x.png */, - 14F8A252202E64B100175FDC /* BnW-40@2x.png */, - 14F8A24C202E64B100175FDC /* BnW-40@3x.png */, - 14F8A24E202E64B100175FDC /* BnW-60@2x.png */, - 14F8A24F202E64B100175FDC /* BnW-60@3x.png */, - 14F8A251202E64B100175FDC /* BnW-76@2x.png */, - 14F8A254202E64B200175FDC /* BnW-76@3x.png */, - 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */, - ); - path = BnW; - sourceTree = ""; - }; - 14F8A262202E653600175FDC /* Grey */ = { - isa = PBXGroup; - children = ( - 14F8A264202E653D00175FDC /* Grey-29@2x.png */, - 14F8A269202E653E00175FDC /* Grey-29@3x.png */, - 14F8A263202E653D00175FDC /* Grey-40@2x.png */, - 14F8A268202E653E00175FDC /* Grey-40@3x.png */, - 14F8A26B202E653E00175FDC /* Grey-60@2x.png */, - 14F8A26A202E653E00175FDC /* Grey-60@3x.png */, - 14F8A267202E653D00175FDC /* Grey-76@2x.png */, - 14F8A265202E653D00175FDC /* Grey-76@3x.png */, - 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */, - ); - path = Grey; - sourceTree = ""; - }; - 14F8A275202E654400175FDC /* White */ = { - isa = PBXGroup; - children = ( - 14F8A27D202E658F00175FDC /* White-29@2x.png */, - 14F8A27C202E658F00175FDC /* White-29@3x.png */, - 14F8A27E202E658F00175FDC /* White-40@2x.png */, - 14F8A278202E658E00175FDC /* White-40@3x.png */, - 14F8A27B202E658F00175FDC /* White-60@2x.png */, - 14F8A27F202E658F00175FDC /* White-60@3x.png */, - 14F8A277202E658E00175FDC /* White-76@2x.png */, - 14F8A279202E658E00175FDC /* White-76@3x.png */, - 14F8A27A202E658F00175FDC /* White-83.5@2x.png */, - ); - path = White; - sourceTree = ""; - }; - 14F8A276202E654900175FDC /* Blue */ = { - isa = PBXGroup; - children = ( - 14F8A28F202E65C700175FDC /* Blue-29@2x.png */, - 14F8A289202E65C500175FDC /* Blue-29@3x.png */, - 14F8A28E202E65C600175FDC /* Blue-40@2x.png */, - 14F8A290202E65C700175FDC /* Blue-40@3x.png */, - 14F8A28A202E65C600175FDC /* Blue-60@2x.png */, - 14F8A28B202E65C600175FDC /* Blue-60@3x.png */, - 14F8A291202E65C700175FDC /* Blue-76@2x.png */, - 14F8A28C202E65C600175FDC /* Blue-76@3x.png */, - 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */, - ); - path = Blue; - sourceTree = ""; - }; - 3330329F2073905900A9514D /* SubscriptionManager */ = { - isa = PBXGroup; - children = ( - 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */, - 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */, - 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */, - 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */, - 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */, - ); - path = SubscriptionManager; - sourceTree = ""; - }; - 33A5C9C0206A565800FE1C8F /* Emojis */ = { - isa = PBXGroup; - children = ( - 33A5C9C8206A565800FE1C8F /* activity.json */, - 33A5C9C4206A565800FE1C8F /* flags.json */, - 33A5C9C7206A565800FE1C8F /* food.json */, - 33A5C9C9206A565800FE1C8F /* nature.json */, - 33A5C9C6206A565800FE1C8F /* objects.json */, - 33A5C9C5206A565800FE1C8F /* people.json */, - 33A5C9C3206A565800FE1C8F /* regional.json */, - 33A5C9C1206A565800FE1C8F /* symbols.json */, - 33A5C9C2206A565800FE1C8F /* travel.json */, - ); - path = Emojis; - sourceTree = ""; - }; - 33F73B292073BDD800F03F29 /* Notification */ = { - isa = PBXGroup; - children = ( - 33F73B2B2073BDF400F03F29 /* NotificationView.swift */, - 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */, - ); - path = Notification; - sourceTree = ""; - }; - 33F73B2E2073F1FC00F03F29 /* Notification */ = { - isa = PBXGroup; - children = ( - 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */, - 333207FE20766E4F00AD3290 /* NotificationViewController.xib */, - ); - path = Notification; - sourceTree = ""; - }; - 4102E3AB1E53272C004BAA82 /* Preferences */ = { - isa = PBXGroup; - children = ( - 0B3A9767202C75A60019CA92 /* ChangeAppIcon */, - 0B9AB2BF20444EB300ABEA05 /* Language */, - 99282260204DE0AE005D2067 /* Profile */, - 9960C82E2063F091004A034C /* Web Browser */, - 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, - 4129937D208E25C100E12C49 /* PreferencesViewController.swift */, - 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */, - ); - path = Preferences; - sourceTree = ""; - }; - 411EDECE1E30F2D700BC7BE3 /* Uploader */ = { - isa = PBXGroup; - children = ( - 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */, - 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */, - ); - path = Uploader; - sourceTree = ""; - }; - 414A1FF41D4631F600093E10 /* Response */ = { - isa = PBXGroup; - children = ( - 414A1FF51D46320F00093E10 /* ResponseMessage.swift */, - 807371991F94E83600D53ADF /* SocketError.swift */, - 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */, - 414A1FFB1D46395900093E10 /* SocketResponse.swift */, - ); - path = Response; - sourceTree = ""; - }; - 414EFF901E54FE35004F001F /* Models */ = { - isa = PBXGroup; - children = ( - 414EFF911E54FE69004F001F /* AuthExtensions.swift */, - 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */, - 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */, - 41D7CA861E644E47000F38EA /* MessageExtensions.swift */, - D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */, - 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */, - ); - path = Models; - sourceTree = ""; - }; - 41534EE0208E43FF009C5A17 /* Launcher */ = { - isa = PBXGroup; - children = ( - 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */, - ); - path = Launcher; - sourceTree = ""; - }; - 4153E80320504BC800FBC26B /* Preferences */ = { - isa = PBXGroup; - children = ( - 4153E80420504BE700FBC26B /* ReusableViewText.swift */, - 412EF3C52050507C001689A3 /* ReusableViewText.xib */, - ); - path = Preferences; - sourceTree = ""; - }; - 41552F641D30307D0081438D /* Model */ = { - isa = PBXGroup; - children = ( - 8076FDB72048580A00114F28 /* AuthManager */, - 3330329F2073905900A9514D /* SubscriptionManager */, - 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */, - 805DEC341FFC03380033151B /* CustomEmojiManager.swift */, - 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */, - 41DC7A1C1D38471700896FC0 /* MessageManager.swift */, - 806401341FB09F8A00990572 /* PermissionManager.swift */, - 4162E1521D651A8800AAAE49 /* UserManager.swift */, - ); - path = Model; - sourceTree = ""; - }; - 41552F691D3035DB0081438D /* Managers */ = { - isa = PBXGroup; - children = ( - 41534EE0208E43FF009C5A17 /* Launcher */, - 419D78851FBDCF5A005FC7A2 /* Requests */, - 417A70011D47916C00FF46EE /* Socket */, - 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */, - 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */, - 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */, - 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */, - 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */, - 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */, - 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */, - 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */, - 411119B71F6825C30019854B /* NetworkManagerSpec.swift */, - 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */, - 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */, - 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */, - 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */, - 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */, - B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */, - 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */, - ); - path = Managers; - sourceTree = ""; - }; - 4161332F1D46CA2800E09DA2 /* Views */ = { - isa = PBXGroup; - children = ( - 41C275DD1D847FEE003C88CF /* Avatar */, - 416133301D46CA3100E09DA2 /* Cells */, - 41F167E51DAC450200775CCA /* Chat */, - 897083CC1F8CF08100233561 /* Form */, - 41ADDD471E9DBAE90007A458 /* Loader */, - 33F73B292073BDD800F03F29 /* Notification */, - 418C4DC41DC4C05000ABED4C /* Sections */, - 41A91AED1E51C4E5005C94B1 /* Subscriptions */, - 7758A7621F8FA34300FAA244 /* UIPickerView */, - ); - path = Views; - sourceTree = ""; - }; - 416133301D46CA3100E09DA2 /* Cells */ = { - isa = PBXGroup; - children = ( - 416133351D46CA7400E09DA2 /* Chat */, - 4153E80320504BC800FBC26B /* Preferences */, - 4192054A1D52F4E7004EEC5F /* Subscription */, - 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */, - 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 416133351D46CA7400E09DA2 /* Chat */ = { - isa = PBXGroup; - children = ( - 800FCD431F728E6A00D9A692 /* Info */, - 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */, - 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */, - 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */, - 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */, - 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, - 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, - 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, - 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, - 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, - 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, - D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, - 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, - 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, - 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, - 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, - 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */, - 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */, - 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */, - 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */, - 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */, - 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */, - 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */, - 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */, - 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */, - 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */, - 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */, - 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, - 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, - 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */, - 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */, - 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */, - 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, - 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, - 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */, - 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */, - 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, - 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, - D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, - 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, - 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, - 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */, - 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */, - 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, - 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, - ); - path = Chat; - sourceTree = ""; - }; - 416133361D46DB0900E09DA2 /* Models */ = { - isa = PBXGroup; - children = ( - 77C261281F97453600724A1F /* CustomFields */, - 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */, - 77C261241F97445300724A1F /* AuthSettingsSpec.swift */, - 416133391D46E0A200E09DA2 /* AuthSpec.swift */, - 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */, - D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */, - 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */, - 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */, - 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */, - 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */, - 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */, - D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */, - 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */, - 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */, - 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */, - 808792371FB14B3300EFE77F /* PermissionSpec.swift */, - 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */, - 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */, - 4161333B1D46E32F00E09DA2 /* UserSpec.swift */, - ); - path = Models; - sourceTree = ""; - }; - 416296F71F41B41100BCCEDD /* Helpers */ = { - isa = PBXGroup; - children = ( - 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */, - 35BCD302201A9FB800B4BE5A /* AskSpec.swift */, - 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */, - 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */, - 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - 4171ABA31E7C0556009FC3F0 /* Views */ = { - isa = PBXGroup; - children = ( - D3CFAFBE1E907FC100BADC0A /* Chat */, - 140C84EA1FC9DB9600032A59 /* CreateChannel */, - 418C743F1FA3626200499577 /* UIPickerView */, - 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */, - 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */, - ); - path = Views; - sourceTree = ""; - }; - 4174CB0A1D2D990F0086DAC8 /* Controllers */ = { - isa = PBXGroup; - children = ( - 4174CB101D2D997E0086DAC8 /* Auth */, - 4174CB111D2D99840086DAC8 /* Base */, - 41E2FA021D414ECC00238DFD /* Chat */, - 140A95E2202F5321003FD564 /* Drawing */, - 33F73B2E2073F1FC00F03F29 /* Notification */, - 4102E3AB1E53272C004BAA82 /* Preferences */, - 41E2FA031D414ED400238DFD /* Subscriptions */, - 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */, - ); - path = Controllers; - sourceTree = ""; - }; - 4174CB0B1D2D99170086DAC8 /* Storyboards */ = { - isa = PBXGroup; - children = ( - 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */, - 41E2F9FE1D414DE800238DFD /* Chat.storyboard */, - 140A95E0202F526C003FD564 /* Drawing.storyboard */, - 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */, - 4102E3A91E532323004BAA82 /* Preferences.storyboard */, - 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */, - ); - path = Storyboards; - sourceTree = ""; - }; - 4174CB101D2D997E0086DAC8 /* Auth */ = { - isa = PBXGroup; - children = ( - 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */, - 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */, - 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */, - 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */, - 80D955C1202154A300E3F281 /* CASViewController.swift */, - 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */, - 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */, - 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */, - 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */, - 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */, - 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */, - 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */, - ); - path = Auth; - sourceTree = ""; - }; - 4174CB111D2D99840086DAC8 /* Base */ = { - isa = PBXGroup; - children = ( - 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */, - 4174CB121D2D99960086DAC8 /* BaseViewController.swift */, - ); - path = Base; - sourceTree = ""; - }; - 4174CB181D2D9D940086DAC8 /* Managers */ = { - isa = PBXGroup; - children = ( - D32E28201DFD86AC00D6019C /* Launcher */, - 41552F641D30307D0081438D /* Model */, - 419D78811FBDB78D005FC7A2 /* Requests */, - 41F1702C1D425358007E6948 /* Socket */, - 411EDECE1E30F2D700BC7BE3 /* Uploader */, - 4101BF001F8D0A1700F67E89 /* AppManager.swift */, - 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */, - 419ECCA31F3CA21A005F224B /* DownloadManager.swift */, - 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */, - 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */, - D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */, - 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */, - 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */, - 335F4F02207A31D3005E14AF /* NotificationManager.swift */, - 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */, - 597ECBA31E3708B10041C5C5 /* PushManager.swift */, - 41499C8E1F2A116900790EA7 /* ServerManager.swift */, - B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */, - 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */, - 41B554C61FBF0F9D000510B7 /* WindowManager.swift */, - ); - path = Managers; - sourceTree = ""; - }; - 4174CB1D1D2DB3270086DAC8 /* Extensions */ = { - isa = PBXGroup; - children = ( - 8013F8631FD5E11100EE1A4E /* API */, - 414EFF901E54FE35004F001F /* Models */, - 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */, - 597ECBA11E3708A50041C5C5 /* DataExtension.swift */, - 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */, - 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */, - 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */, - D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */, - 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */, - 8076FDA8204853DE00114F28 /* RealmExecute.swift */, - 8076FDA32048533000114F28 /* String+Random.swift */, - 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */, - 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */, - 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */, - D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */, - 41494B911D63C6280004F369 /* UIImageExtension.swift */, - 419205481D52EDE6004EEC5F /* UILabelExtension.swift */, - 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */, - 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */, - 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */, - 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */, - 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */, - 41BAE3E61D71B26C00C2445A /* URLExtension.swift */, - 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - 417A70011D47916C00FF46EE /* Socket */ = { - isa = PBXGroup; - children = ( - 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */, - 41552F671D3035D80081438D /* SocketManagerSpec.swift */, - ); - path = Socket; - sourceTree = ""; - }; - 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */ = { - isa = PBXGroup; - children = ( - 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */, - 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */, - ); - path = WebViewEmbedded; - sourceTree = ""; - }; - 418C4DC41DC4C05000ABED4C /* Sections */ = { - isa = PBXGroup; - children = ( - 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */, - 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */, - 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */, - 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */, - ); - path = Sections; - sourceTree = ""; - }; - 418C743F1FA3626200499577 /* UIPickerView */ = { - isa = PBXGroup; - children = ( - 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */, - 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */, - ); - path = UIPickerView; - sourceTree = ""; - }; - 4192054A1D52F4E7004EEC5F /* Subscription */ = { - isa = PBXGroup; - children = ( - 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */, - 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */, - 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */, - 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */, - 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 4199A9861DABCC2E0035F820 /* External */ = { - isa = PBXGroup; - children = ( - 4199A9871DABCC570035F820 /* RCEmojiKit */, - ); - path = External; - sourceTree = ""; - }; - 4199A9871DABCC570035F820 /* RCEmojiKit */ = { - isa = PBXGroup; - children = ( - 33A5C9C0206A565800FE1C8F /* Emojis */, - 80A97EFD200628A300A2774C /* Views */, - 8069D26D1FFF876D00C75926 /* Emoji.swift */, - 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */, - 807FB53C2044B49800E21429 /* Emojione+Transform.swift */, - 4199A9881DABCC570035F820 /* Emojione.swift */, - 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */, - 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */, - 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */, - 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */, - 33A5C9BD206A561400FE1C8F /* emojiNames.json */, - ); - path = RCEmojiKit; - sourceTree = ""; - }; - 419D78811FBDB78D005FC7A2 /* Requests */ = { - isa = PBXGroup; - children = ( - 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */, - ); - path = Requests; - sourceTree = ""; - }; - 419D78851FBDCF5A005FC7A2 /* Requests */ = { - isa = PBXGroup; - children = ( - 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */, - ); - path = Requests; - sourceTree = ""; - }; - 41A79C0D1D2F084F00A1968E /* Models */ = { - isa = PBXGroup; - children = ( - 8076FDAC2048566100114F28 /* Auth */, - 41BD37D71E290D7400CBC4C2 /* Base */, - 7798B4131F852AE30074B2F4 /* CustomFields */, - 41BD37DF1E290F1500CBC4C2 /* Handler */, - 41BD37DE1E290F1000CBC4C2 /* Mapping */, - 8076FDCF2048644300114F28 /* Message */, - 8076FDC120485A0B00114F28 /* Subscription */, - 8076FDD4204864D400114F28 /* User */, - 41900C261D9FE35400308EF4 /* Attachment.swift */, - 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */, - 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */, - 8013F8661FD6B4F400EE1A4E /* Command.swift */, - 805DEC361FFC08870033151B /* CustomEmoji.swift */, - 8073719F1F96937100D53ADF /* LoginService.swift */, - 806401301FB09DE800990572 /* Permission.swift */, - ); - path = Models; - sourceTree = ""; - }; - 41A91AED1E51C4E5005C94B1 /* Subscriptions */ = { - isa = PBXGroup; - children = ( - 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */, - 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */, - 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */, - A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */, - ); - path = Subscriptions; - sourceTree = ""; - }; - 41ADDD471E9DBAE90007A458 /* Loader */ = { - isa = PBXGroup; - children = ( - 41ADDD481E9DBB100007A458 /* LoaderView.swift */, - ); - path = Loader; - sourceTree = ""; - }; - 41B96363207E48690068F1A6 /* Validators */ = { - isa = PBXGroup; - children = ( - 41B96361207E48260068F1A6 /* MessageTextValidator.swift */, - ); - path = Validators; - sourceTree = ""; - }; - 41BD37D71E290D7400CBC4C2 /* Base */ = { - isa = PBXGroup; - children = ( - 4112DC551FFFB9B1005995E1 /* BaseModel.swift */, - 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */, - 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */, - ); - path = Base; - sourceTree = ""; - }; - 41BD37DE1E290F1000CBC4C2 /* Mapping */ = { - isa = PBXGroup; - children = ( - 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */, - 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */, - D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */, - 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */, - 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */, - D10E9C211F643616007F1796 /* MentionModelMapping.swift */, - 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */, - 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */, - 806401321FB09EC400990572 /* PermissionModelMapping.swift */, - 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */, - 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */, - ); - path = Mapping; - sourceTree = ""; - }; - 41BD37DF1E290F1500CBC4C2 /* Handler */ = { - isa = PBXGroup; - children = ( - 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */, - 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */, - 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */, - ); - path = Handler; - sourceTree = ""; - }; - 41C275DD1D847FEE003C88CF /* Avatar */ = { - isa = PBXGroup; - children = ( - 41C275DE1D848005003C88CF /* AvatarView.swift */, - 41C275E01D84815C003C88CF /* AvatarView.xib */, - ); - path = Avatar; - sourceTree = ""; - }; - 41D701D41E67103C00FED2EE /* Helpers */ = { - isa = PBXGroup; - children = ( - 41B96363207E48690068F1A6 /* Validators */, - 80307E3A1FD75BD3006AD9EF /* VoiceOver */, - 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */, - 802A4E23204D730F0072CD23 /* AppGroup.swift */, - 35BCD300201A57EA00B4BE5A /* Ask.swift */, - 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */, - 800F38EC2019492D0005CB78 /* DeepLink.swift */, - 80DC9A6B206BA95600032BE0 /* Localized.swift */, - 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */, - 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */, - 413996161F3B44500075F96E /* UploadHelper.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - 41DC7A201D386B2C00896FC0 /* Extensions */ = { - isa = PBXGroup; - children = ( - 80E99F2A1FD8B4AC00B70B59 /* API */, - 80E99F2D1FD8B4E200B70B59 /* Models */, - 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */, - 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */, - D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */, - 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */, - 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */, - 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - 41DF76D61D2C50710028DBF8 = { - isa = PBXGroup; - children = ( - 106DAA428B5BF7289FB70C65 /* Frameworks */, - EE693BBD0CC2727847214E2D /* Pods */, - 41DF76E01D2C50710028DBF8 /* Products */, - 41DF76E11D2C50710028DBF8 /* Rocket.Chat */, - 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */, - 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */, - 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */, - ); - sourceTree = ""; - }; - 41DF76E01D2C50710028DBF8 /* Products */ = { - isa = PBXGroup; - children = ( - 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */, - 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */, - 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */, - 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */, - ); - name = Products; - sourceTree = ""; - }; - 41DF76E11D2C50710028DBF8 /* Rocket.Chat */ = { - isa = PBXGroup; - children = ( - D1D535EA1F7081E6006625D2 /* API */, - 4174CB0A1D2D990F0086DAC8 /* Controllers */, - 4174CB1D1D2DB3270086DAC8 /* Extensions */, - 4199A9861DABCC2E0035F820 /* External */, - 41D701D41E67103C00FED2EE /* Helpers */, - 4174CB181D2D9D940086DAC8 /* Managers */, - 41A79C0D1D2F084F00A1968E /* Models */, - 0B3A9760202C4DE10019CA92 /* Resources */, - 4174CB0B1D2D99170086DAC8 /* Storyboards */, - 4161332F1D46CA2800E09DA2 /* Views */, - 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */, - 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, - 3353DBF7206787E500738D1C /* Themeable.swift */, - 41DF76EE1D2C50720028DBF8 /* Info.plist */, - 41833F4D1DEF16B600E54655 /* Keys.plist */, - 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, - 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */, - ); - path = Rocket.Chat; - sourceTree = ""; - }; - 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */ = { - isa = PBXGroup; - children = ( - D18675E71F70A55D00406FB4 /* API */, - D1DA25261F695AC700DB6ABB /* Controllers */, - 41DC7A201D386B2C00896FC0 /* Extensions */, - 80A97EFE2006291E00A2774C /* External */, - 416296F71F41B41100BCCEDD /* Helpers */, - 41552F691D3035DB0081438D /* Managers */, - 416133361D46DB0900E09DA2 /* Models */, - 925FF74F1E8EFC9200982043 /* Preferences */, - 4171ABA31E7C0556009FC3F0 /* Views */, - 41DF76F91D2C50720028DBF8 /* Info.plist */, - 803782B61FB4751D00DED049 /* RealmTestCase.swift */, - ); - path = Rocket.ChatTests; - sourceTree = ""; - }; - 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */ = { - isa = PBXGroup; - children = ( - 41DF77041D2C50720028DBF8 /* Info.plist */, - 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */, - ); - path = Rocket.ChatUITests; - sourceTree = ""; - }; - 41E2FA021D414ECC00238DFD /* Chat */ = { - isa = PBXGroup; - children = ( - 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */, - 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */, - 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */, - 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */, - 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */, - 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */, - 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */, - 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */, - 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */, - 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */, - 41E2FA061D41513C00238DFD /* ChatViewController.swift */, - 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */, - 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */, - 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */, - 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */, - ); - path = Chat; - sourceTree = ""; - }; - 41E2FA031D414ED400238DFD /* Subscriptions */ = { - isa = PBXGroup; - children = ( - 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */, - 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */, - 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */, - 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */, - ); - path = Subscriptions; - sourceTree = ""; - }; - 41F167E51DAC450200775CCA /* Chat */ = { - isa = PBXGroup; - children = ( - 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */, - 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */, - 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */, - 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */, - 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */, - 339B6929205042D300F97392 /* KeyboardFrameView.swift */, - 1435BFA21F9B601600FB2768 /* RCTextView.swift */, - 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */, - 80CFB5711F8D697100FC9715 /* ReplyView.xib */, - ); - path = Chat; - sourceTree = ""; - }; - 41F1702C1D425358007E6948 /* Socket */ = { - isa = PBXGroup; - children = ( - 414A1FF41D4631F600093E10 /* Response */, - 414A1FF91D46395400093E10 /* SocketManager.swift */, - ); - path = Socket; - sourceTree = ""; - }; - 7758A7621F8FA34300FAA244 /* UIPickerView */ = { - isa = PBXGroup; - children = ( - 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */, - 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */, - ); - path = UIPickerView; - sourceTree = ""; - }; - 7798B4131F852AE30074B2F4 /* CustomFields */ = { - isa = PBXGroup; - children = ( - 7798B4181F852D670074B2F4 /* CustomField.swift */, - 7798B4141F852B720074B2F4 /* SelectField.swift */, - 77BA81501F87C4CB00F295F4 /* TextField.swift */, - ); - path = CustomFields; - sourceTree = ""; - }; - 77C261281F97453600724A1F /* CustomFields */ = { - isa = PBXGroup; - children = ( - 77C261291F97453600724A1F /* CustomFieldsSpec.swift */, - 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */, - 77C2612B1F97453600724A1F /* TextFieldSpec.swift */, - ); - path = CustomFields; - sourceTree = ""; - }; - 80054CFA1FDAFD3A00F5ECF9 /* General */ = { - isa = PBXGroup; - children = ( - D1D535F01F70864C006625D2 /* InfoRequest.swift */, - 807C7C11207522EF006B600E /* LoginServicesRequest.swift */, - 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */, - 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */, - 807C7C0720751EDB006B600E /* SpotlightRequest.swift */, - ); - path = General; - sourceTree = ""; - }; - 800FCD431F728E6A00D9A692 /* Info */ = { - isa = PBXGroup; - children = ( - 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */, - 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */, - 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */, - 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */, - 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */, - 800FCD491F728E6A00D9A692 /* MemberCell.swift */, - 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */, - ); - path = Info; - sourceTree = ""; - }; - 8013F8631FD5E11100EE1A4E /* API */ = { - isa = PBXGroup; - children = ( - 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */, - ); - path = API; - sourceTree = ""; - }; - 8013F86E1FD6B59D00EE1A4E /* Clients */ = { - isa = PBXGroup; - children = ( - 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */, - 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */, - 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */, - 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */, - 807C7C0520751ED1006B600E /* SpotlightClient.swift */, - 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */, - ); - path = Clients; - sourceTree = ""; - }; - 8013F8741FD6B5D100EE1A4E /* Middlewares */ = { - isa = PBXGroup; - children = ( - 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */, - ); - path = Middlewares; - sourceTree = ""; - }; - 8013F8771FD6B61400EE1A4E /* Middlewares */ = { - isa = PBXGroup; - children = ( - 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */, - ); - path = Middlewares; - sourceTree = ""; - }; - 8013F87E1FD6B66900EE1A4E /* Clients */ = { - isa = PBXGroup; - children = ( - 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */, - 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */, - 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */, - 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */, - ); - path = Clients; - sourceTree = ""; - }; - 8013F8831FD6B74800EE1A4E /* Command */ = { - isa = PBXGroup; - children = ( - 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */, - 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */, - ); - path = Command; - sourceTree = ""; - }; - 8013F88A1FD6B79900EE1A4E /* Command */ = { - isa = PBXGroup; - children = ( - 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */, - ); - path = Command; - sourceTree = ""; - }; - 8020CCF31FEAD8AA003424F4 /* EmojiPicker */ = { - isa = PBXGroup; - children = ( - 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */, - 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */, - 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */, - 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */, - ); - path = EmojiPicker; - sourceTree = ""; - }; - 80213C0F1FE063B200809E14 /* HTTP */ = { - isa = PBXGroup; - children = ( - 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */, - ); - path = HTTP; - sourceTree = ""; - }; - 80235D1C1F740AAC00A56CA5 /* Subscription */ = { - isa = PBXGroup; - children = ( - 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */, - 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */, - 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */, - 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */, - 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 80235D201F7442C100A56CA5 /* Subscription */ = { - isa = PBXGroup; - children = ( - 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */, - 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */, - 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */, - 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 802498EC1F7A82CD005477EC /* Authentication */ = { - isa = PBXGroup; - children = ( - D18675EB1F716A0D00406FB4 /* LoginRequest.swift */, - 802498ED1F7A8380005477EC /* MeRequest.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 802498EF1F7A9B92005477EC /* Authentication */ = { - isa = PBXGroup; - children = ( - D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */, - 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 80307E3A1FD75BD3006AD9EF /* VoiceOver */ = { - isa = PBXGroup; - children = ( - 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */, - 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */, - ); - path = VoiceOver; - sourceTree = ""; - }; - 806C2ACE206BBAF200EE5F67 /* External */ = { - isa = PBXGroup; - children = ( - 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */, - ); - path = External; - sourceTree = ""; - }; - 806C59A01FBB0BA700C32D0A /* Message */ = { - isa = PBXGroup; - children = ( - 806728FE20079734009FE94D /* DeleteMessageRequest.swift */, - 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */, - 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */, - 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */, - 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */, - 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */, - ); - path = Message; - sourceTree = ""; - }; - 806C59A31FBB2F3700C32D0A /* Message */ = { - isa = PBXGroup; - children = ( - 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */, - 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */, - 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */, - 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */, - ); - path = Message; - sourceTree = ""; - }; - 8076FDAC2048566100114F28 /* Auth */ = { - isa = PBXGroup; - children = ( - 41A79C121D2F09F200A1968E /* Auth.swift */, - 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */, - 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */, - 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */, - 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */, - 8076FDB42048571200114F28 /* AuthUser.swift */, - ); - path = Auth; - sourceTree = ""; - }; - 8076FDB72048580A00114F28 /* AuthManager */ = { - isa = PBXGroup; - children = ( - 41552F651D30308C0081438D /* AuthManager.swift */, - 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */, - 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */, - 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */, - ); - path = AuthManager; - sourceTree = ""; - }; - 8076FDC120485A0B00114F28 /* Subscription */ = { - isa = PBXGroup; - children = ( - 41DAE93D1D318F350098E068 /* Subscription.swift */, - 8076FDC62048632300114F28 /* SubscriptionQueries.swift */, - 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */, - 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 8076FDCF2048644300114F28 /* Message */ = { - isa = PBXGroup; - children = ( - D10E9C191F643457007F1796 /* Channel.swift */, - 4159720B1D3DB854002258F4 /* Email.swift */, - 4159720D1D3DB882002258F4 /* Mention.swift */, - 41DC7A1A1D38454500896FC0 /* Message.swift */, - 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */, - 8076FDD02048646500114F28 /* MessageReply.swift */, - 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */, - ); - path = Message; - sourceTree = ""; - }; - 8076FDD4204864D400114F28 /* User */ = { - isa = PBXGroup; - children = ( - 41A79C0E1D2F085F00A1968E /* User.swift */, - 8076FDD5204864E700114F28 /* UserQueries.swift */, - 8076FDD72048654F00114F28 /* UserUtils.swift */, - ); - path = User; - sourceTree = ""; - }; - 8076FDE02048A69200114F28 /* Compose */ = { - isa = PBXGroup; - children = ( - 80D563702058A8A7008896D6 /* Cells */, - 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */, - 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */, - 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */, - 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */, - 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */, - ); - path = Compose; - sourceTree = ""; - }; - 8076FDEB2049A5CB00114F28 /* Base */ = { - isa = PBXGroup; - children = ( - 80D0CE6E20509C100056B17F /* SEAvatarView.swift */, - 80D0CE7020509C230056B17F /* SEAvatarView.xib */, - 80D0CE61205023710056B17F /* SECell.swift */, - 8076FDEC2049A5F600114F28 /* SECellModel.swift */, - 802A4E102049C7340072CD23 /* SENavigationController.swift */, - 8076FDD920489F5900114F28 /* SEViewController.swift */, - 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */, - ); - path = Base; - sourceTree = ""; - }; - 807C7C0A20751F06006B600E /* General */ = { - isa = PBXGroup; - children = ( - D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */, - 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */, - 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */, - ); - path = General; - sourceTree = ""; - }; - 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { - isa = PBXGroup; - children = ( - 8076FDEB2049A5CB00114F28 /* Base */, - 8076FDE02048A69200114F28 /* Compose */, - 806C2ACE206BBAF200EE5F67 /* External */, - 80D5637320593245008896D6 /* Helpers */, - 807FB56C20472B2700E21429 /* Resources */, - 807FB57E2048376900E21429 /* Rooms */, - 807FB5802048378500E21429 /* Servers */, - 80977AC0204F374100C41435 /* State */, - 807FB55F2046E7DD00E21429 /* Info.plist */, - 807FB55C2046E7DD00E21429 /* Main.storyboard */, - 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */, - ); - path = Rocket.Chat.ShareExtension; - sourceTree = ""; - }; - 807FB56C20472B2700E21429 /* Resources */ = { - isa = PBXGroup; - children = ( - 80D5637120592D32008896D6 /* Assets.xcassets */, - 807FB57120472B6A00E21429 /* Localizable.strings */, - ); - path = Resources; - sourceTree = ""; - }; - 807FB57E2048376900E21429 /* Rooms */ = { - isa = PBXGroup; - children = ( - 80D0CE6520503C860056B17F /* SERoomCell.swift */, - 80D0CE6720503C970056B17F /* SERoomCell.xib */, - 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */, - 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */, - 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */, - ); - path = Rooms; - sourceTree = ""; - }; - 807FB5802048378500E21429 /* Servers */ = { - isa = PBXGroup; - children = ( - 80D0CE5F205016B40056B17F /* SEServerCell.swift */, - 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */, - 80D0CE63205034280056B17F /* SEServerCellModel.swift */, - 807FB568204729E500E21429 /* SEServersViewController.swift */, - 807FB581204837AF00E21429 /* SEServersViewModel.swift */, - ); - path = Servers; - sourceTree = ""; - }; - 80977AB7204EFBBB00C41435 /* Navigation */ = { - isa = PBXGroup; - children = ( - 80977AB8204EFBCC00C41435 /* SENavigation.swift */, - 800640F62049BA25006D990F /* SEScene.swift */, - 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */, - ); - path = Navigation; - sourceTree = ""; - }; - 80977AC0204F374100C41435 /* State */ = { - isa = PBXGroup; - children = ( - 80FA907B2057F43F0069038F /* ActionCreators */, - 80977AB7204EFBBB00C41435 /* Navigation */, - 80FA9064205313D10069038F /* Resources */, - 80977ABE204F36F200C41435 /* SESearchState.swift */, - 80977AC1204F37C200C41435 /* SEState.swift */, - 8076FD9920484A6000114F28 /* SEStore.swift */, - ); - path = State; - sourceTree = ""; - }; - 809B530C1FE2EF7C00833DD2 /* Reaction */ = { - isa = PBXGroup; - children = ( - 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */, - 809B53131FE3294400833DD2 /* ReactionListView.xib */, - 809B530F1FE2F17D00833DD2 /* ReactionView.swift */, - 809B53111FE2F2F900833DD2 /* ReactionView.xib */, - 8041C0412028C7EF007E21FA /* ReactorListView.swift */, - 8041C0432028C828007E21FA /* ReactorListView.xib */, - 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */, - ); - path = Reaction; - sourceTree = ""; - }; - 80A97EFD200628A300A2774C /* Views */ = { - isa = PBXGroup; - children = ( - 8020CCF31FEAD8AA003424F4 /* EmojiPicker */, - 809B530C1FE2EF7C00833DD2 /* Reaction */, - 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */, - 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */, - 806465ED1FED1AFE001F27DB /* EmojiView.swift */, - 806465EB1FED19B9001F27DB /* EmojiView.xib */, - ); - path = Views; - sourceTree = ""; - }; - 80A97EFE2006291E00A2774C /* External */ = { - isa = PBXGroup; - children = ( - 80A97EFF2006292500A2774C /* RCEmojiKit */, - ); - path = External; - sourceTree = ""; - }; - 80A97EFF2006292500A2774C /* RCEmojiKit */ = { - isa = PBXGroup; - children = ( - 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */, - 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */, - ); - path = RCEmojiKit; - sourceTree = ""; - }; - 80D563702058A8A7008896D6 /* Cells */ = { - isa = PBXGroup; - children = ( - 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */, - 80FA906920569F890069038F /* SEComposeFileCell.swift */, - 80FA906B20569FA10069038F /* SEComposeFileCell.xib */, - 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */, - 80FA90712056C1190069038F /* SEComposeTextCell.swift */, - 80FA90732056C1350069038F /* SEComposeTextCell.xib */, - 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */, - 80FE8DEF206587510099170E /* SEFileDetailView.swift */, - 80FE8DED206584EA0099170E /* SEFileDetailView.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 80D5637320593245008896D6 /* Helpers */ = { - isa = PBXGroup; - children = ( - 80D563742059325A008896D6 /* MimeType.swift */, - 8029B2F12059B6F60067157B /* VideoInfo.swift */, - 80DC9A6F206BAC8B00032BE0 /* mimetype.json */, - ); - path = Helpers; - sourceTree = ""; - }; - 80E99F2A1FD8B4AC00B70B59 /* API */ = { - isa = PBXGroup; - children = ( - 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */, - ); - path = API; - sourceTree = ""; - }; - 80E99F2D1FD8B4E200B70B59 /* Models */ = { - isa = PBXGroup; - children = ( - 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */, - 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */, - ); - path = Models; - sourceTree = ""; - }; - 80FA9064205313D10069038F /* Resources */ = { - isa = PBXGroup; - children = ( - 80FA9065205313E20069038F /* SEContent.swift */, - 80FA9067205314040069038F /* SEServer.swift */, - ); - path = Resources; - sourceTree = ""; - }; - 80FA907B2057F43F0069038F /* ActionCreators */ = { - isa = PBXGroup; - children = ( - 80D5637620593533008896D6 /* ParseItemProviders.swift */, - 80977AB5204EEF1E00C41435 /* SelectServer.swift */, - 80FA907C2057F4650069038F /* SubmitContent.swift */, - ); - path = ActionCreators; - sourceTree = ""; - }; - 897083CC1F8CF08100233561 /* Form */ = { - isa = PBXGroup; - children = ( - 897083CD1F8CF08100233561 /* Cells */, - 897083D21F8CF08100233561 /* FormTableViewCell.swift */, - ); - path = Form; - sourceTree = ""; - }; - 897083CD1F8CF08100233561 /* Cells */ = { - isa = PBXGroup; - children = ( - 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */, - 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */, - 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */, - 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */, - 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */, - 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 925FF74F1E8EFC9200982043 /* Preferences */ = { - isa = PBXGroup; - children = ( - 140A95DC202F1E4D003FD564 /* AppIcon */, - 0BBCC2C0204546BB001E3B6D /* Language */, - 99F41BCC20658AD900B240FC /* Profile */, - 994DA2B12065480300083FB8 /* Web Browser */, - 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */, - ); - path = Preferences; - sourceTree = ""; - }; - 99282260204DE0AE005D2067 /* Profile */ = { - isa = PBXGroup; - children = ( - 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */, - 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */, - 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */, - 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */, - ); - path = Profile; - sourceTree = ""; - }; - 994DA2B12065480300083FB8 /* Web Browser */ = { - isa = PBXGroup; - children = ( - 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */, - ); - path = "Web Browser"; - sourceTree = ""; - }; - 9960C82E2063F091004A034C /* Web Browser */ = { - isa = PBXGroup; - children = ( - 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */, - 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */, - ); - path = "Web Browser"; - sourceTree = ""; - }; - 9977302520725B3A009AF465 /* Emoji */ = { - isa = PBXGroup; - children = ( - 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */, - ); - path = Emoji; - sourceTree = ""; - }; - 9977302820727DA0009AF465 /* Emoji */ = { - isa = PBXGroup; - children = ( - 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */, - ); - path = Emoji; - sourceTree = ""; - }; - 998165C8204EBB5E0059D346 /* User */ = { - isa = PBXGroup; - children = ( - 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */, - 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */, - 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */, - ); - path = User; - sourceTree = ""; - }; - 99D888F92046239100E51306 /* User */ = { - isa = PBXGroup; - children = ( - 99D888FA204623A900E51306 /* UpdateUserRequest.swift */, - 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */, - 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */, - ); - path = User; - sourceTree = ""; - }; - 99F41BCC20658AD900B240FC /* Profile */ = { - isa = PBXGroup; - children = ( - 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */, - 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */, - ); - path = Profile; - sourceTree = ""; - }; - D18675E71F70A55D00406FB4 /* API */ = { - isa = PBXGroup; - children = ( - 8013F87E1FD6B66900EE1A4E /* Clients */, - 8013F8771FD6B61400EE1A4E /* Middlewares */, - D18675E81F70A56800406FB4 /* Requests */, - 80A63C561F71D2E400FE5AC4 /* APISpec.swift */, - 8073719B1F963FA400D53ADF /* APITestCase.swift */, - 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */, - 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */, - ); - path = API; - sourceTree = ""; - }; - D18675E81F70A56800406FB4 /* Requests */ = { - isa = PBXGroup; - children = ( - 802498EF1F7A9B92005477EC /* Authentication */, - 8013F88A1FD6B79900EE1A4E /* Command */, - 9977302820727DA0009AF465 /* Emoji */, - 807C7C0A20751F06006B600E /* General */, - 806C59A31FBB2F3700C32D0A /* Message */, - 80235D201F7442C100A56CA5 /* Subscription */, - 998165C8204EBB5E0059D346 /* User */, - ); - path = Requests; - sourceTree = ""; - }; - D1D535EA1F7081E6006625D2 /* API */ = { - isa = PBXGroup; - children = ( - 8013F86E1FD6B59D00EE1A4E /* Clients */, - 80213C0F1FE063B200809E14 /* HTTP */, - 8013F8741FD6B5D100EE1A4E /* Middlewares */, - D1D535EF1F70863C006625D2 /* Requests */, - D1D535EB1F7081FA006625D2 /* API.swift */, - 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */, - 8013F8691FD6B59900EE1A4E /* APIError.swift */, - D1D535ED1F708628006625D2 /* APIRequest.swift */, - 8067DAA5206D1883005E3369 /* APIResource.swift */, - D15C83851F70991F001AB155 /* APIResponse.swift */, - 8013F8681FD6B59900EE1A4E /* Version.swift */, - ); - path = API; - sourceTree = ""; - }; - D1D535EF1F70863C006625D2 /* Requests */ = { - isa = PBXGroup; - children = ( - 802498EC1F7A82CD005477EC /* Authentication */, - 8013F8831FD6B74800EE1A4E /* Command */, - 9977302520725B3A009AF465 /* Emoji */, - 80054CFA1FDAFD3A00F5ECF9 /* General */, - 806C59A01FBB0BA700C32D0A /* Message */, - 80235D1C1F740AAC00A56CA5 /* Subscription */, - 99D888F92046239100E51306 /* User */, - ); - path = Requests; - sourceTree = ""; - }; - D1DA25261F695AC700DB6ABB /* Controllers */ = { - isa = PBXGroup; - children = ( - D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */, - 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */, - 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */, - 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */, - 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */, - ); - path = Controllers; - sourceTree = ""; - }; - D32E28201DFD86AC00D6019C /* Launcher */ = { - isa = PBXGroup; - children = ( - D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */, - D32E28221DFD86C300D6019C /* LauncherProtocol.swift */, - 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */, - 411119B51F680DB00019854B /* NetworkCoordinator.swift */, - D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */, - 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */, - ); - path = Launcher; - sourceTree = ""; - }; - D3CFAFBE1E907FC100BADC0A /* Chat */ = { - isa = PBXGroup; - children = ( - 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */, - 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */, - ); - path = Chat; - sourceTree = ""; - }; - EE693BBD0CC2727847214E2D /* Pods */ = { - isa = PBXGroup; - children = ( - BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */, - 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */, - 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */, - 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */, - AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */, - FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */, - 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */, - 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */, - F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; + 0B3A9760202C4DE10019CA92 /* Resources */ = { + isa = PBXGroup; + children = ( + 14F8A210202E5B2A00175FDC /* AlternateIcons */, + 41DF76E91D2C50710028DBF8 /* Assets.xcassets */, + 41EB22381E5F056600AA3AE7 /* Localizable.strings */, + 80307E431FD75DC0006AD9EF /* VoiceOver.strings */, + ); + path = Resources; + sourceTree = ""; + }; + 0B3A9767202C75A60019CA92 /* ChangeAppIcon */ = { + isa = PBXGroup; + children = ( + 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */, + 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */, + 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */, + ); + path = ChangeAppIcon; + sourceTree = ""; + }; + 0B9AB2BF20444EB300ABEA05 /* Language */ = { + isa = PBXGroup; + children = ( + 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */, + 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */, + 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */, + 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */, + ); + path = Language; + sourceTree = ""; + }; + 0BBCC2C0204546BB001E3B6D /* Language */ = { + isa = PBXGroup; + children = ( + 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */, + ); + path = Language; + sourceTree = ""; + }; + 106DAA428B5BF7289FB70C65 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */, + 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */, + 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 140A95DC202F1E4D003FD564 /* AppIcon */ = { + isa = PBXGroup; + children = ( + 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */, + ); + path = AppIcon; + sourceTree = ""; + }; + 140A95E2202F5321003FD564 /* Drawing */ = { + isa = PBXGroup; + children = ( + 14A6A82F20421DED008C210D /* Color Picker */, + 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */, + 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */, + 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */, + 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */, + 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */, + 140A95E3202F536D003FD564 /* DrawingViewController.swift */, + 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */, + ); + path = Drawing; + sourceTree = ""; + }; + 140C84EA1FC9DB9600032A59 /* CreateChannel */ = { + isa = PBXGroup; + children = ( + 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */, + ); + path = CreateChannel; + sourceTree = ""; + }; + 14A6A82F20421DED008C210D /* Color Picker */ = { + isa = PBXGroup; + children = ( + 14A6A83020421DF8008C210D /* ColorPickerView.swift */, + ); + path = "Color Picker"; + sourceTree = ""; + }; + 14F8A210202E5B2A00175FDC /* AlternateIcons */ = { + isa = PBXGroup; + children = ( + 14F8A211202E5B3200175FDC /* Black */, + 14F8A276202E654900175FDC /* Blue */, + 14F8A247202E649F00175FDC /* BnW */, + 14F8A262202E653600175FDC /* Grey */, + 14F8A212202E5B3B00175FDC /* Red */, + 14F8A275202E654400175FDC /* White */, + ); + path = AlternateIcons; + sourceTree = ""; + }; + 14F8A211202E5B3200175FDC /* Black */ = { + isa = PBXGroup; + children = ( + 14F8A219202E5CBE00175FDC /* Black-29@2x.png */, + 14F8A213202E5CBD00175FDC /* Black-29@3x.png */, + 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */, + 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */, + 14F8A218202E5CBE00175FDC /* Black-60@2x.png */, + 14F8A217202E5CBE00175FDC /* Black-60@3x.png */, + 14F8A216202E5CBE00175FDC /* Black-76@2x.png */, + 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */, + 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */, + ); + path = Black; + sourceTree = ""; + }; + 14F8A212202E5B3B00175FDC /* Red */ = { + isa = PBXGroup; + children = ( + 14F8A232202E5D0400175FDC /* Red-29@2x.png */, + 14F8A230202E5D0400175FDC /* Red-29@3x.png */, + 14F8A236202E5D0500175FDC /* Red-40@2x.png */, + 14F8A235202E5D0500175FDC /* Red-40@3x.png */, + 14F8A234202E5D0400175FDC /* Red-60@2x.png */, + 14F8A22F202E5D0400175FDC /* Red-60@3x.png */, + 14F8A233202E5D0400175FDC /* Red-76@2x.png */, + 14F8A238202E5D0600175FDC /* Red-76@3x.png */, + 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */, + ); + path = Red; + sourceTree = ""; + }; + 14F8A247202E649F00175FDC /* BnW */ = { + isa = PBXGroup; + children = ( + 14F8A24D202E64B100175FDC /* BnW-29@2x.png */, + 14F8A250202E64B100175FDC /* BnW-29@3x.png */, + 14F8A252202E64B100175FDC /* BnW-40@2x.png */, + 14F8A24C202E64B100175FDC /* BnW-40@3x.png */, + 14F8A24E202E64B100175FDC /* BnW-60@2x.png */, + 14F8A24F202E64B100175FDC /* BnW-60@3x.png */, + 14F8A251202E64B100175FDC /* BnW-76@2x.png */, + 14F8A254202E64B200175FDC /* BnW-76@3x.png */, + 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */, + ); + path = BnW; + sourceTree = ""; + }; + 14F8A262202E653600175FDC /* Grey */ = { + isa = PBXGroup; + children = ( + 14F8A264202E653D00175FDC /* Grey-29@2x.png */, + 14F8A269202E653E00175FDC /* Grey-29@3x.png */, + 14F8A263202E653D00175FDC /* Grey-40@2x.png */, + 14F8A268202E653E00175FDC /* Grey-40@3x.png */, + 14F8A26B202E653E00175FDC /* Grey-60@2x.png */, + 14F8A26A202E653E00175FDC /* Grey-60@3x.png */, + 14F8A267202E653D00175FDC /* Grey-76@2x.png */, + 14F8A265202E653D00175FDC /* Grey-76@3x.png */, + 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */, + ); + path = Grey; + sourceTree = ""; + }; + 14F8A275202E654400175FDC /* White */ = { + isa = PBXGroup; + children = ( + 14F8A27D202E658F00175FDC /* White-29@2x.png */, + 14F8A27C202E658F00175FDC /* White-29@3x.png */, + 14F8A27E202E658F00175FDC /* White-40@2x.png */, + 14F8A278202E658E00175FDC /* White-40@3x.png */, + 14F8A27B202E658F00175FDC /* White-60@2x.png */, + 14F8A27F202E658F00175FDC /* White-60@3x.png */, + 14F8A277202E658E00175FDC /* White-76@2x.png */, + 14F8A279202E658E00175FDC /* White-76@3x.png */, + 14F8A27A202E658F00175FDC /* White-83.5@2x.png */, + ); + path = White; + sourceTree = ""; + }; + 14F8A276202E654900175FDC /* Blue */ = { + isa = PBXGroup; + children = ( + 14F8A28F202E65C700175FDC /* Blue-29@2x.png */, + 14F8A289202E65C500175FDC /* Blue-29@3x.png */, + 14F8A28E202E65C600175FDC /* Blue-40@2x.png */, + 14F8A290202E65C700175FDC /* Blue-40@3x.png */, + 14F8A28A202E65C600175FDC /* Blue-60@2x.png */, + 14F8A28B202E65C600175FDC /* Blue-60@3x.png */, + 14F8A291202E65C700175FDC /* Blue-76@2x.png */, + 14F8A28C202E65C600175FDC /* Blue-76@3x.png */, + 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */, + ); + path = Blue; + sourceTree = ""; + }; + 3330329F2073905900A9514D /* SubscriptionManager */ = { + isa = PBXGroup; + children = ( + 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */, + 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */, + 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */, + 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */, + 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */, + ); + path = SubscriptionManager; + sourceTree = ""; + }; + 33A5C9C0206A565800FE1C8F /* Emojis */ = { + isa = PBXGroup; + children = ( + 33A5C9C8206A565800FE1C8F /* activity.json */, + 33A5C9C4206A565800FE1C8F /* flags.json */, + 33A5C9C7206A565800FE1C8F /* food.json */, + 33A5C9C9206A565800FE1C8F /* nature.json */, + 33A5C9C6206A565800FE1C8F /* objects.json */, + 33A5C9C5206A565800FE1C8F /* people.json */, + 33A5C9C3206A565800FE1C8F /* regional.json */, + 33A5C9C1206A565800FE1C8F /* symbols.json */, + 33A5C9C2206A565800FE1C8F /* travel.json */, + ); + path = Emojis; + sourceTree = ""; + }; + 33F73B292073BDD800F03F29 /* Notification */ = { + isa = PBXGroup; + children = ( + 33F73B2B2073BDF400F03F29 /* NotificationView.swift */, + 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */, + ); + path = Notification; + sourceTree = ""; + }; + 33F73B2E2073F1FC00F03F29 /* Notification */ = { + isa = PBXGroup; + children = ( + 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */, + 333207FE20766E4F00AD3290 /* NotificationViewController.xib */, + ); + path = Notification; + sourceTree = ""; + }; + 4102E3AB1E53272C004BAA82 /* Preferences */ = { + isa = PBXGroup; + children = ( + 0B3A9767202C75A60019CA92 /* ChangeAppIcon */, + 0B9AB2BF20444EB300ABEA05 /* Language */, + 99282260204DE0AE005D2067 /* Profile */, + 9960C82E2063F091004A034C /* Web Browser */, + 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, + 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */, + ); + path = Preferences; + sourceTree = ""; + }; + 411EDECE1E30F2D700BC7BE3 /* Uploader */ = { + isa = PBXGroup; + children = ( + 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */, + 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */, + ); + path = Uploader; + sourceTree = ""; + }; + 414A1FF41D4631F600093E10 /* Response */ = { + isa = PBXGroup; + children = ( + 414A1FF51D46320F00093E10 /* ResponseMessage.swift */, + 807371991F94E83600D53ADF /* SocketError.swift */, + 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */, + 414A1FFB1D46395900093E10 /* SocketResponse.swift */, + ); + path = Response; + sourceTree = ""; + }; + 414EFF901E54FE35004F001F /* Models */ = { + isa = PBXGroup; + children = ( + 414EFF911E54FE69004F001F /* AuthExtensions.swift */, + 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */, + 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */, + 41D7CA861E644E47000F38EA /* MessageExtensions.swift */, + D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */, + 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */, + ); + path = Models; + sourceTree = ""; + }; + 41534EE0208E43FF009C5A17 /* Launcher */ = { + isa = PBXGroup; + children = ( + 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */, + ); + path = Launcher; + sourceTree = ""; + }; + 4153E80320504BC800FBC26B /* Preferences */ = { + isa = PBXGroup; + children = ( + 4153E80420504BE700FBC26B /* ReusableViewText.swift */, + 412EF3C52050507C001689A3 /* ReusableViewText.xib */, + ); + path = Preferences; + sourceTree = ""; + }; + 41552F641D30307D0081438D /* Model */ = { + isa = PBXGroup; + children = ( + 8076FDB72048580A00114F28 /* AuthManager */, + 3330329F2073905900A9514D /* SubscriptionManager */, + 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */, + 805DEC341FFC03380033151B /* CustomEmojiManager.swift */, + 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */, + 41DC7A1C1D38471700896FC0 /* MessageManager.swift */, + 806401341FB09F8A00990572 /* PermissionManager.swift */, + 4162E1521D651A8800AAAE49 /* UserManager.swift */, + ); + path = Model; + sourceTree = ""; + }; + 41552F691D3035DB0081438D /* Managers */ = { + isa = PBXGroup; + children = ( + 41534EE0208E43FF009C5A17 /* Launcher */, + 419D78851FBDCF5A005FC7A2 /* Requests */, + 417A70011D47916C00FF46EE /* Socket */, + 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */, + 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */, + 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */, + 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */, + 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */, + 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */, + 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */, + 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */, + 411119B71F6825C30019854B /* NetworkManagerSpec.swift */, + 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */, + 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */, + 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */, + 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */, + 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */, + B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */, + 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */, + ); + path = Managers; + sourceTree = ""; + }; + 4161332F1D46CA2800E09DA2 /* Views */ = { + isa = PBXGroup; + children = ( + 41C275DD1D847FEE003C88CF /* Avatar */, + 416133301D46CA3100E09DA2 /* Cells */, + 41F167E51DAC450200775CCA /* Chat */, + 897083CC1F8CF08100233561 /* Form */, + 41ADDD471E9DBAE90007A458 /* Loader */, + 33F73B292073BDD800F03F29 /* Notification */, + 418C4DC41DC4C05000ABED4C /* Sections */, + 41A91AED1E51C4E5005C94B1 /* Subscriptions */, + 7758A7621F8FA34300FAA244 /* UIPickerView */, + ); + path = Views; + sourceTree = ""; + }; + 416133301D46CA3100E09DA2 /* Cells */ = { + isa = PBXGroup; + children = ( + 416133351D46CA7400E09DA2 /* Chat */, + 4153E80320504BC800FBC26B /* Preferences */, + 4192054A1D52F4E7004EEC5F /* Subscription */, + 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */, + 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 416133351D46CA7400E09DA2 /* Chat */ = { + isa = PBXGroup; + children = ( + 800FCD431F728E6A00D9A692 /* Info */, + 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */, + 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */, + 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */, + 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */, + 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */, + 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */, + 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */, + 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */, + 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */, + 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, + 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, + 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */, + 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */, + 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */, + 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, + 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, + 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */, + 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */, + 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, + 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, + D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, + 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, + 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, + 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */, + 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */, + 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, + 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, + ); + path = Chat; + sourceTree = ""; + }; + 416133361D46DB0900E09DA2 /* Models */ = { + isa = PBXGroup; + children = ( + 77C261281F97453600724A1F /* CustomFields */, + 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */, + 77C261241F97445300724A1F /* AuthSettingsSpec.swift */, + 416133391D46E0A200E09DA2 /* AuthSpec.swift */, + 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */, + D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */, + 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */, + 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */, + 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */, + 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */, + 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */, + D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */, + 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */, + 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */, + 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */, + 808792371FB14B3300EFE77F /* PermissionSpec.swift */, + 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */, + 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */, + 4161333B1D46E32F00E09DA2 /* UserSpec.swift */, + ); + path = Models; + sourceTree = ""; + }; + 416296F71F41B41100BCCEDD /* Helpers */ = { + isa = PBXGroup; + children = ( + 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */, + 35BCD302201A9FB800B4BE5A /* AskSpec.swift */, + 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */, + 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */, + 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */, + ); + path = Helpers; + sourceTree = ""; + }; + 4171ABA31E7C0556009FC3F0 /* Views */ = { + isa = PBXGroup; + children = ( + D3CFAFBE1E907FC100BADC0A /* Chat */, + 140C84EA1FC9DB9600032A59 /* CreateChannel */, + 418C743F1FA3626200499577 /* UIPickerView */, + 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */, + 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */, + ); + path = Views; + sourceTree = ""; + }; + 4174CB0A1D2D990F0086DAC8 /* Controllers */ = { + isa = PBXGroup; + children = ( + 4174CB101D2D997E0086DAC8 /* Auth */, + 4174CB111D2D99840086DAC8 /* Base */, + 41E2FA021D414ECC00238DFD /* Chat */, + 140A95E2202F5321003FD564 /* Drawing */, + 33F73B2E2073F1FC00F03F29 /* Notification */, + 4102E3AB1E53272C004BAA82 /* Preferences */, + 41E2FA031D414ED400238DFD /* Subscriptions */, + 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */, + ); + path = Controllers; + sourceTree = ""; + }; + 4174CB0B1D2D99170086DAC8 /* Storyboards */ = { + isa = PBXGroup; + children = ( + 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */, + 41E2F9FE1D414DE800238DFD /* Chat.storyboard */, + 140A95E0202F526C003FD564 /* Drawing.storyboard */, + 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */, + 4102E3A91E532323004BAA82 /* Preferences.storyboard */, + 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */, + ); + path = Storyboards; + sourceTree = ""; + }; + 4174CB101D2D997E0086DAC8 /* Auth */ = { + isa = PBXGroup; + children = ( + 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */, + 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */, + 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */, + 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */, + 80D955C1202154A300E3F281 /* CASViewController.swift */, + 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */, + 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */, + 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */, + 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */, + 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */, + 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */, + 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */, + ); + path = Auth; + sourceTree = ""; + }; + 4174CB111D2D99840086DAC8 /* Base */ = { + isa = PBXGroup; + children = ( + 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */, + 4174CB121D2D99960086DAC8 /* BaseViewController.swift */, + ); + path = Base; + sourceTree = ""; + }; + 4174CB181D2D9D940086DAC8 /* Managers */ = { + isa = PBXGroup; + children = ( + D32E28201DFD86AC00D6019C /* Launcher */, + 41552F641D30307D0081438D /* Model */, + 419D78811FBDB78D005FC7A2 /* Requests */, + 41F1702C1D425358007E6948 /* Socket */, + 411EDECE1E30F2D700BC7BE3 /* Uploader */, + 4101BF001F8D0A1700F67E89 /* AppManager.swift */, + 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */, + 419ECCA31F3CA21A005F224B /* DownloadManager.swift */, + 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */, + 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */, + D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */, + 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */, + 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */, + 335F4F02207A31D3005E14AF /* NotificationManager.swift */, + 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */, + 597ECBA31E3708B10041C5C5 /* PushManager.swift */, + 41499C8E1F2A116900790EA7 /* ServerManager.swift */, + B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */, + 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */, + 41B554C61FBF0F9D000510B7 /* WindowManager.swift */, + ); + path = Managers; + sourceTree = ""; + }; + 4174CB1D1D2DB3270086DAC8 /* Extensions */ = { + isa = PBXGroup; + children = ( + 8013F8631FD5E11100EE1A4E /* API */, + 414EFF901E54FE35004F001F /* Models */, + 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */, + 597ECBA11E3708A50041C5C5 /* DataExtension.swift */, + 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */, + 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */, + 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */, + D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */, + 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */, + 8076FDA8204853DE00114F28 /* RealmExecute.swift */, + 8076FDA32048533000114F28 /* String+Random.swift */, + 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */, + 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */, + 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */, + D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */, + 41494B911D63C6280004F369 /* UIImageExtension.swift */, + 419205481D52EDE6004EEC5F /* UILabelExtension.swift */, + 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */, + 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */, + 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */, + 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */, + 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */, + 41BAE3E61D71B26C00C2445A /* URLExtension.swift */, + 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 417A70011D47916C00FF46EE /* Socket */ = { + isa = PBXGroup; + children = ( + 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */, + 41552F671D3035D80081438D /* SocketManagerSpec.swift */, + ); + path = Socket; + sourceTree = ""; + }; + 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */ = { + isa = PBXGroup; + children = ( + 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */, + 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */, + ); + path = WebViewEmbedded; + sourceTree = ""; + }; + 418C4DC41DC4C05000ABED4C /* Sections */ = { + isa = PBXGroup; + children = ( + 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */, + 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */, + 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */, + 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */, + ); + path = Sections; + sourceTree = ""; + }; + 418C743F1FA3626200499577 /* UIPickerView */ = { + isa = PBXGroup; + children = ( + 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */, + 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */, + ); + path = UIPickerView; + sourceTree = ""; + }; + 4192054A1D52F4E7004EEC5F /* Subscription */ = { + isa = PBXGroup; + children = ( + 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */, + 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */, + 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */, + 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */, + 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 4199A9861DABCC2E0035F820 /* External */ = { + isa = PBXGroup; + children = ( + 4199A9871DABCC570035F820 /* RCEmojiKit */, + ); + path = External; + sourceTree = ""; + }; + 4199A9871DABCC570035F820 /* RCEmojiKit */ = { + isa = PBXGroup; + children = ( + 33A5C9C0206A565800FE1C8F /* Emojis */, + 80A97EFD200628A300A2774C /* Views */, + 8069D26D1FFF876D00C75926 /* Emoji.swift */, + 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */, + 807FB53C2044B49800E21429 /* Emojione+Transform.swift */, + 4199A9881DABCC570035F820 /* Emojione.swift */, + 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */, + 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */, + 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */, + 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */, + 33A5C9BD206A561400FE1C8F /* emojiNames.json */, + ); + path = RCEmojiKit; + sourceTree = ""; + }; + 419D78811FBDB78D005FC7A2 /* Requests */ = { + isa = PBXGroup; + children = ( + 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */, + ); + path = Requests; + sourceTree = ""; + }; + 419D78851FBDCF5A005FC7A2 /* Requests */ = { + isa = PBXGroup; + children = ( + 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */, + ); + path = Requests; + sourceTree = ""; + }; + 41A79C0D1D2F084F00A1968E /* Models */ = { + isa = PBXGroup; + children = ( + 8076FDAC2048566100114F28 /* Auth */, + 41BD37D71E290D7400CBC4C2 /* Base */, + 7798B4131F852AE30074B2F4 /* CustomFields */, + 41BD37DF1E290F1500CBC4C2 /* Handler */, + 41BD37DE1E290F1000CBC4C2 /* Mapping */, + 8076FDCF2048644300114F28 /* Message */, + 8076FDC120485A0B00114F28 /* Subscription */, + 8076FDD4204864D400114F28 /* User */, + 41900C261D9FE35400308EF4 /* Attachment.swift */, + 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */, + 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */, + 8013F8661FD6B4F400EE1A4E /* Command.swift */, + 805DEC361FFC08870033151B /* CustomEmoji.swift */, + 8073719F1F96937100D53ADF /* LoginService.swift */, + 806401301FB09DE800990572 /* Permission.swift */, + ); + path = Models; + sourceTree = ""; + }; + 41A91AED1E51C4E5005C94B1 /* Subscriptions */ = { + isa = PBXGroup; + children = ( + 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */, + 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */, + 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */, + A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */, + ); + path = Subscriptions; + sourceTree = ""; + }; + 41ADDD471E9DBAE90007A458 /* Loader */ = { + isa = PBXGroup; + children = ( + 41ADDD481E9DBB100007A458 /* LoaderView.swift */, + ); + path = Loader; + sourceTree = ""; + }; + 41B96363207E48690068F1A6 /* Validators */ = { + isa = PBXGroup; + children = ( + 41B96361207E48260068F1A6 /* MessageTextValidator.swift */, + ); + path = Validators; + sourceTree = ""; + }; + 41BD37D71E290D7400CBC4C2 /* Base */ = { + isa = PBXGroup; + children = ( + 4112DC551FFFB9B1005995E1 /* BaseModel.swift */, + 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */, + 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */, + ); + path = Base; + sourceTree = ""; + }; + 41BD37DE1E290F1000CBC4C2 /* Mapping */ = { + isa = PBXGroup; + children = ( + 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */, + 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */, + D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */, + 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */, + 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */, + D10E9C211F643616007F1796 /* MentionModelMapping.swift */, + 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */, + 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */, + 806401321FB09EC400990572 /* PermissionModelMapping.swift */, + 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */, + 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */, + ); + path = Mapping; + sourceTree = ""; + }; + 41BD37DF1E290F1500CBC4C2 /* Handler */ = { + isa = PBXGroup; + children = ( + 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */, + 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */, + 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */, + ); + path = Handler; + sourceTree = ""; + }; + 41C275DD1D847FEE003C88CF /* Avatar */ = { + isa = PBXGroup; + children = ( + 41C275DE1D848005003C88CF /* AvatarView.swift */, + 41C275E01D84815C003C88CF /* AvatarView.xib */, + ); + path = Avatar; + sourceTree = ""; + }; + 41D701D41E67103C00FED2EE /* Helpers */ = { + isa = PBXGroup; + children = ( + 41B96363207E48690068F1A6 /* Validators */, + 80307E3A1FD75BD3006AD9EF /* VoiceOver */, + 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */, + 802A4E23204D730F0072CD23 /* AppGroup.swift */, + 35BCD300201A57EA00B4BE5A /* Ask.swift */, + 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */, + 800F38EC2019492D0005CB78 /* DeepLink.swift */, + 80DC9A6B206BA95600032BE0 /* Localized.swift */, + 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */, + 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */, + 413996161F3B44500075F96E /* UploadHelper.swift */, + ); + path = Helpers; + sourceTree = ""; + }; + 41DC7A201D386B2C00896FC0 /* Extensions */ = { + isa = PBXGroup; + children = ( + 80E99F2A1FD8B4AC00B70B59 /* API */, + 80E99F2D1FD8B4E200B70B59 /* Models */, + 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */, + 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */, + D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */, + 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */, + 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */, + 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 41DF76D61D2C50710028DBF8 = { + isa = PBXGroup; + children = ( + 106DAA428B5BF7289FB70C65 /* Frameworks */, + EE693BBD0CC2727847214E2D /* Pods */, + 41DF76E01D2C50710028DBF8 /* Products */, + 41DF76E11D2C50710028DBF8 /* Rocket.Chat */, + 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */, + 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */, + 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */, + ); + sourceTree = ""; + }; + 41DF76E01D2C50710028DBF8 /* Products */ = { + isa = PBXGroup; + children = ( + 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */, + 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */, + 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */, + 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */, + ); + name = Products; + sourceTree = ""; + }; + 41DF76E11D2C50710028DBF8 /* Rocket.Chat */ = { + isa = PBXGroup; + children = ( + D1D535EA1F7081E6006625D2 /* API */, + 4174CB0A1D2D990F0086DAC8 /* Controllers */, + 4174CB1D1D2DB3270086DAC8 /* Extensions */, + 4199A9861DABCC2E0035F820 /* External */, + 41D701D41E67103C00FED2EE /* Helpers */, + 4174CB181D2D9D940086DAC8 /* Managers */, + 41A79C0D1D2F084F00A1968E /* Models */, + 0B3A9760202C4DE10019CA92 /* Resources */, + 4174CB0B1D2D99170086DAC8 /* Storyboards */, + 4161332F1D46CA2800E09DA2 /* Views */, + 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */, + 3353DBF7206787E500738D1C /* Themeable.swift */, + 41DF76EE1D2C50720028DBF8 /* Info.plist */, + 41833F4D1DEF16B600E54655 /* Keys.plist */, + 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, + 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */, + ); + path = Rocket.Chat; + sourceTree = ""; + }; + 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */ = { + isa = PBXGroup; + children = ( + D18675E71F70A55D00406FB4 /* API */, + D1DA25261F695AC700DB6ABB /* Controllers */, + 41DC7A201D386B2C00896FC0 /* Extensions */, + 80A97EFE2006291E00A2774C /* External */, + 416296F71F41B41100BCCEDD /* Helpers */, + 41552F691D3035DB0081438D /* Managers */, + 416133361D46DB0900E09DA2 /* Models */, + 925FF74F1E8EFC9200982043 /* Preferences */, + 4171ABA31E7C0556009FC3F0 /* Views */, + 41DF76F91D2C50720028DBF8 /* Info.plist */, + 803782B61FB4751D00DED049 /* RealmTestCase.swift */, + ); + path = Rocket.ChatTests; + sourceTree = ""; + }; + 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */ = { + isa = PBXGroup; + children = ( + 41DF77041D2C50720028DBF8 /* Info.plist */, + 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */, + ); + path = Rocket.ChatUITests; + sourceTree = ""; + }; + 41E2FA021D414ECC00238DFD /* Chat */ = { + isa = PBXGroup; + children = ( + 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */, + 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */, + 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */, + 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */, + 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */, + 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */, + 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */, + 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */, + 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */, + 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */, + 41E2FA061D41513C00238DFD /* ChatViewController.swift */, + 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */, + 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */, + 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */, + 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */, + ); + path = Chat; + sourceTree = ""; + }; + 41E2FA031D414ED400238DFD /* Subscriptions */ = { + isa = PBXGroup; + children = ( + 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */, + 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */, + 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */, + 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */, + ); + path = Subscriptions; + sourceTree = ""; + }; + 41F167E51DAC450200775CCA /* Chat */ = { + isa = PBXGroup; + children = ( + 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */, + 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */, + 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */, + 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */, + 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */, + 339B6929205042D300F97392 /* KeyboardFrameView.swift */, + 1435BFA21F9B601600FB2768 /* RCTextView.swift */, + 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */, + 80CFB5711F8D697100FC9715 /* ReplyView.xib */, + ); + path = Chat; + sourceTree = ""; + }; + 41F1702C1D425358007E6948 /* Socket */ = { + isa = PBXGroup; + children = ( + 414A1FF41D4631F600093E10 /* Response */, + 414A1FF91D46395400093E10 /* SocketManager.swift */, + ); + path = Socket; + sourceTree = ""; + }; + 7758A7621F8FA34300FAA244 /* UIPickerView */ = { + isa = PBXGroup; + children = ( + 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */, + 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */, + ); + path = UIPickerView; + sourceTree = ""; + }; + 7798B4131F852AE30074B2F4 /* CustomFields */ = { + isa = PBXGroup; + children = ( + 7798B4181F852D670074B2F4 /* CustomField.swift */, + 7798B4141F852B720074B2F4 /* SelectField.swift */, + 77BA81501F87C4CB00F295F4 /* TextField.swift */, + ); + path = CustomFields; + sourceTree = ""; + }; + 77C261281F97453600724A1F /* CustomFields */ = { + isa = PBXGroup; + children = ( + 77C261291F97453600724A1F /* CustomFieldsSpec.swift */, + 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */, + 77C2612B1F97453600724A1F /* TextFieldSpec.swift */, + ); + path = CustomFields; + sourceTree = ""; + }; + 80054CFA1FDAFD3A00F5ECF9 /* General */ = { + isa = PBXGroup; + children = ( + D1D535F01F70864C006625D2 /* InfoRequest.swift */, + 807C7C11207522EF006B600E /* LoginServicesRequest.swift */, + 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */, + 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */, + 807C7C0720751EDB006B600E /* SpotlightRequest.swift */, + ); + path = General; + sourceTree = ""; + }; + 800FCD431F728E6A00D9A692 /* Info */ = { + isa = PBXGroup; + children = ( + 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */, + 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */, + 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */, + 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */, + 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */, + 800FCD491F728E6A00D9A692 /* MemberCell.swift */, + 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */, + ); + path = Info; + sourceTree = ""; + }; + 8013F8631FD5E11100EE1A4E /* API */ = { + isa = PBXGroup; + children = ( + 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */, + ); + path = API; + sourceTree = ""; + }; + 8013F86E1FD6B59D00EE1A4E /* Clients */ = { + isa = PBXGroup; + children = ( + 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */, + 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */, + 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */, + 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */, + 807C7C0520751ED1006B600E /* SpotlightClient.swift */, + 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */, + ); + path = Clients; + sourceTree = ""; + }; + 8013F8741FD6B5D100EE1A4E /* Middlewares */ = { + isa = PBXGroup; + children = ( + 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */, + ); + path = Middlewares; + sourceTree = ""; + }; + 8013F8771FD6B61400EE1A4E /* Middlewares */ = { + isa = PBXGroup; + children = ( + 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */, + ); + path = Middlewares; + sourceTree = ""; + }; + 8013F87E1FD6B66900EE1A4E /* Clients */ = { + isa = PBXGroup; + children = ( + 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */, + 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */, + 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */, + 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */, + ); + path = Clients; + sourceTree = ""; + }; + 8013F8831FD6B74800EE1A4E /* Command */ = { + isa = PBXGroup; + children = ( + 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */, + 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */, + ); + path = Command; + sourceTree = ""; + }; + 8013F88A1FD6B79900EE1A4E /* Command */ = { + isa = PBXGroup; + children = ( + 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */, + ); + path = Command; + sourceTree = ""; + }; + 8020CCF31FEAD8AA003424F4 /* EmojiPicker */ = { + isa = PBXGroup; + children = ( + 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */, + 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */, + 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */, + 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */, + ); + path = EmojiPicker; + sourceTree = ""; + }; + 80213C0F1FE063B200809E14 /* HTTP */ = { + isa = PBXGroup; + children = ( + 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */, + ); + path = HTTP; + sourceTree = ""; + }; + 80235D1C1F740AAC00A56CA5 /* Subscription */ = { + isa = PBXGroup; + children = ( + 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */, + 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */, + 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */, + 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */, + 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 80235D201F7442C100A56CA5 /* Subscription */ = { + isa = PBXGroup; + children = ( + 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */, + 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */, + 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */, + 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 802498EC1F7A82CD005477EC /* Authentication */ = { + isa = PBXGroup; + children = ( + D18675EB1F716A0D00406FB4 /* LoginRequest.swift */, + 802498ED1F7A8380005477EC /* MeRequest.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 802498EF1F7A9B92005477EC /* Authentication */ = { + isa = PBXGroup; + children = ( + D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */, + 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 80307E3A1FD75BD3006AD9EF /* VoiceOver */ = { + isa = PBXGroup; + children = ( + 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */, + 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */, + ); + path = VoiceOver; + sourceTree = ""; + }; + 806C2ACE206BBAF200EE5F67 /* External */ = { + isa = PBXGroup; + children = ( + 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */, + ); + path = External; + sourceTree = ""; + }; + 806C59A01FBB0BA700C32D0A /* Message */ = { + isa = PBXGroup; + children = ( + 806728FE20079734009FE94D /* DeleteMessageRequest.swift */, + 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */, + 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */, + 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */, + 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */, + 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */, + ); + path = Message; + sourceTree = ""; + }; + 806C59A31FBB2F3700C32D0A /* Message */ = { + isa = PBXGroup; + children = ( + 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */, + 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */, + 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */, + 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */, + ); + path = Message; + sourceTree = ""; + }; + 8076FDAC2048566100114F28 /* Auth */ = { + isa = PBXGroup; + children = ( + 41A79C121D2F09F200A1968E /* Auth.swift */, + 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */, + 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */, + 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */, + 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */, + 8076FDB42048571200114F28 /* AuthUser.swift */, + ); + path = Auth; + sourceTree = ""; + }; + 8076FDB72048580A00114F28 /* AuthManager */ = { + isa = PBXGroup; + children = ( + 41552F651D30308C0081438D /* AuthManager.swift */, + 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */, + 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */, + 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */, + ); + path = AuthManager; + sourceTree = ""; + }; + 8076FDC120485A0B00114F28 /* Subscription */ = { + isa = PBXGroup; + children = ( + 41DAE93D1D318F350098E068 /* Subscription.swift */, + 8076FDC62048632300114F28 /* SubscriptionQueries.swift */, + 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */, + 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 8076FDCF2048644300114F28 /* Message */ = { + isa = PBXGroup; + children = ( + D10E9C191F643457007F1796 /* Channel.swift */, + 4159720B1D3DB854002258F4 /* Email.swift */, + 4159720D1D3DB882002258F4 /* Mention.swift */, + 41DC7A1A1D38454500896FC0 /* Message.swift */, + 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */, + 8076FDD02048646500114F28 /* MessageReply.swift */, + 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */, + ); + path = Message; + sourceTree = ""; + }; + 8076FDD4204864D400114F28 /* User */ = { + isa = PBXGroup; + children = ( + 41A79C0E1D2F085F00A1968E /* User.swift */, + 8076FDD5204864E700114F28 /* UserQueries.swift */, + 8076FDD72048654F00114F28 /* UserUtils.swift */, + ); + path = User; + sourceTree = ""; + }; + 8076FDE02048A69200114F28 /* Compose */ = { + isa = PBXGroup; + children = ( + 80D563702058A8A7008896D6 /* Cells */, + 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */, + 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */, + 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */, + 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */, + 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */, + ); + path = Compose; + sourceTree = ""; + }; + 8076FDEB2049A5CB00114F28 /* Base */ = { + isa = PBXGroup; + children = ( + 80D0CE6E20509C100056B17F /* SEAvatarView.swift */, + 80D0CE7020509C230056B17F /* SEAvatarView.xib */, + 80D0CE61205023710056B17F /* SECell.swift */, + 8076FDEC2049A5F600114F28 /* SECellModel.swift */, + 802A4E102049C7340072CD23 /* SENavigationController.swift */, + 8076FDD920489F5900114F28 /* SEViewController.swift */, + 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */, + ); + path = Base; + sourceTree = ""; + }; + 807C7C0A20751F06006B600E /* General */ = { + isa = PBXGroup; + children = ( + D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */, + 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */, + 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */, + ); + path = General; + sourceTree = ""; + }; + 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { + isa = PBXGroup; + children = ( + 8076FDEB2049A5CB00114F28 /* Base */, + 8076FDE02048A69200114F28 /* Compose */, + 806C2ACE206BBAF200EE5F67 /* External */, + 80D5637320593245008896D6 /* Helpers */, + 807FB56C20472B2700E21429 /* Resources */, + 807FB57E2048376900E21429 /* Rooms */, + 807FB5802048378500E21429 /* Servers */, + 80977AC0204F374100C41435 /* State */, + 807FB55F2046E7DD00E21429 /* Info.plist */, + 807FB55C2046E7DD00E21429 /* Main.storyboard */, + 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */, + ); + path = Rocket.Chat.ShareExtension; + sourceTree = ""; + }; + 807FB56C20472B2700E21429 /* Resources */ = { + isa = PBXGroup; + children = ( + 80D5637120592D32008896D6 /* Assets.xcassets */, + 807FB57120472B6A00E21429 /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; + 807FB57E2048376900E21429 /* Rooms */ = { + isa = PBXGroup; + children = ( + 80D0CE6520503C860056B17F /* SERoomCell.swift */, + 80D0CE6720503C970056B17F /* SERoomCell.xib */, + 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */, + 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */, + 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */, + ); + path = Rooms; + sourceTree = ""; + }; + 807FB5802048378500E21429 /* Servers */ = { + isa = PBXGroup; + children = ( + 80D0CE5F205016B40056B17F /* SEServerCell.swift */, + 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */, + 80D0CE63205034280056B17F /* SEServerCellModel.swift */, + 807FB568204729E500E21429 /* SEServersViewController.swift */, + 807FB581204837AF00E21429 /* SEServersViewModel.swift */, + ); + path = Servers; + sourceTree = ""; + }; + 80977AB7204EFBBB00C41435 /* Navigation */ = { + isa = PBXGroup; + children = ( + 80977AB8204EFBCC00C41435 /* SENavigation.swift */, + 800640F62049BA25006D990F /* SEScene.swift */, + 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */, + ); + path = Navigation; + sourceTree = ""; + }; + 80977AC0204F374100C41435 /* State */ = { + isa = PBXGroup; + children = ( + 80FA907B2057F43F0069038F /* ActionCreators */, + 80977AB7204EFBBB00C41435 /* Navigation */, + 80FA9064205313D10069038F /* Resources */, + 80977ABE204F36F200C41435 /* SESearchState.swift */, + 80977AC1204F37C200C41435 /* SEState.swift */, + 8076FD9920484A6000114F28 /* SEStore.swift */, + ); + path = State; + sourceTree = ""; + }; + 809B530C1FE2EF7C00833DD2 /* Reaction */ = { + isa = PBXGroup; + children = ( + 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */, + 809B53131FE3294400833DD2 /* ReactionListView.xib */, + 809B530F1FE2F17D00833DD2 /* ReactionView.swift */, + 809B53111FE2F2F900833DD2 /* ReactionView.xib */, + 8041C0412028C7EF007E21FA /* ReactorListView.swift */, + 8041C0432028C828007E21FA /* ReactorListView.xib */, + 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */, + ); + path = Reaction; + sourceTree = ""; + }; + 80A97EFD200628A300A2774C /* Views */ = { + isa = PBXGroup; + children = ( + 8020CCF31FEAD8AA003424F4 /* EmojiPicker */, + 809B530C1FE2EF7C00833DD2 /* Reaction */, + 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */, + 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */, + 806465ED1FED1AFE001F27DB /* EmojiView.swift */, + 806465EB1FED19B9001F27DB /* EmojiView.xib */, + ); + path = Views; + sourceTree = ""; + }; + 80A97EFE2006291E00A2774C /* External */ = { + isa = PBXGroup; + children = ( + 80A97EFF2006292500A2774C /* RCEmojiKit */, + ); + path = External; + sourceTree = ""; + }; + 80A97EFF2006292500A2774C /* RCEmojiKit */ = { + isa = PBXGroup; + children = ( + 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */, + 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */, + ); + path = RCEmojiKit; + sourceTree = ""; + }; + 80D563702058A8A7008896D6 /* Cells */ = { + isa = PBXGroup; + children = ( + 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */, + 80FA906920569F890069038F /* SEComposeFileCell.swift */, + 80FA906B20569FA10069038F /* SEComposeFileCell.xib */, + 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */, + 80FA90712056C1190069038F /* SEComposeTextCell.swift */, + 80FA90732056C1350069038F /* SEComposeTextCell.xib */, + 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */, + 80FE8DEF206587510099170E /* SEFileDetailView.swift */, + 80FE8DED206584EA0099170E /* SEFileDetailView.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 80D5637320593245008896D6 /* Helpers */ = { + isa = PBXGroup; + children = ( + 80D563742059325A008896D6 /* MimeType.swift */, + 8029B2F12059B6F60067157B /* VideoInfo.swift */, + 80DC9A6F206BAC8B00032BE0 /* mimetype.json */, + ); + path = Helpers; + sourceTree = ""; + }; + 80E99F2A1FD8B4AC00B70B59 /* API */ = { + isa = PBXGroup; + children = ( + 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */, + ); + path = API; + sourceTree = ""; + }; + 80E99F2D1FD8B4E200B70B59 /* Models */ = { + isa = PBXGroup; + children = ( + 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */, + 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */, + ); + path = Models; + sourceTree = ""; + }; + 80FA9064205313D10069038F /* Resources */ = { + isa = PBXGroup; + children = ( + 80FA9065205313E20069038F /* SEContent.swift */, + 80FA9067205314040069038F /* SEServer.swift */, + ); + path = Resources; + sourceTree = ""; + }; + 80FA907B2057F43F0069038F /* ActionCreators */ = { + isa = PBXGroup; + children = ( + 80D5637620593533008896D6 /* ParseItemProviders.swift */, + 80977AB5204EEF1E00C41435 /* SelectServer.swift */, + 80FA907C2057F4650069038F /* SubmitContent.swift */, + ); + path = ActionCreators; + sourceTree = ""; + }; + 897083CC1F8CF08100233561 /* Form */ = { + isa = PBXGroup; + children = ( + 897083CD1F8CF08100233561 /* Cells */, + 897083D21F8CF08100233561 /* FormTableViewCell.swift */, + ); + path = Form; + sourceTree = ""; + }; + 897083CD1F8CF08100233561 /* Cells */ = { + isa = PBXGroup; + children = ( + 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */, + 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */, + 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */, + 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */, + 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */, + 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 925FF74F1E8EFC9200982043 /* Preferences */ = { + isa = PBXGroup; + children = ( + 140A95DC202F1E4D003FD564 /* AppIcon */, + 0BBCC2C0204546BB001E3B6D /* Language */, + 99F41BCC20658AD900B240FC /* Profile */, + 994DA2B12065480300083FB8 /* Web Browser */, + 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */, + ); + path = Preferences; + sourceTree = ""; + }; + 99282260204DE0AE005D2067 /* Profile */ = { + isa = PBXGroup; + children = ( + 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */, + 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */, + 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */, + 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */, + ); + path = Profile; + sourceTree = ""; + }; + 994DA2B12065480300083FB8 /* Web Browser */ = { + isa = PBXGroup; + children = ( + 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */, + ); + path = "Web Browser"; + sourceTree = ""; + }; + 9960C82E2063F091004A034C /* Web Browser */ = { + isa = PBXGroup; + children = ( + 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */, + 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */, + ); + path = "Web Browser"; + sourceTree = ""; + }; + 9977302520725B3A009AF465 /* Emoji */ = { + isa = PBXGroup; + children = ( + 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */, + ); + path = Emoji; + sourceTree = ""; + }; + 9977302820727DA0009AF465 /* Emoji */ = { + isa = PBXGroup; + children = ( + 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */, + ); + path = Emoji; + sourceTree = ""; + }; + 998165C8204EBB5E0059D346 /* User */ = { + isa = PBXGroup; + children = ( + 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */, + 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */, + 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */, + ); + path = User; + sourceTree = ""; + }; + 99D888F92046239100E51306 /* User */ = { + isa = PBXGroup; + children = ( + 99D888FA204623A900E51306 /* UpdateUserRequest.swift */, + 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */, + 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */, + ); + path = User; + sourceTree = ""; + }; + 99F41BCC20658AD900B240FC /* Profile */ = { + isa = PBXGroup; + children = ( + 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */, + 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */, + ); + path = Profile; + sourceTree = ""; + }; + D18675E71F70A55D00406FB4 /* API */ = { + isa = PBXGroup; + children = ( + 8013F87E1FD6B66900EE1A4E /* Clients */, + 8013F8771FD6B61400EE1A4E /* Middlewares */, + D18675E81F70A56800406FB4 /* Requests */, + 80A63C561F71D2E400FE5AC4 /* APISpec.swift */, + 8073719B1F963FA400D53ADF /* APITestCase.swift */, + 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */, + 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */, + ); + path = API; + sourceTree = ""; + }; + D18675E81F70A56800406FB4 /* Requests */ = { + isa = PBXGroup; + children = ( + 802498EF1F7A9B92005477EC /* Authentication */, + 8013F88A1FD6B79900EE1A4E /* Command */, + 9977302820727DA0009AF465 /* Emoji */, + 807C7C0A20751F06006B600E /* General */, + 806C59A31FBB2F3700C32D0A /* Message */, + 80235D201F7442C100A56CA5 /* Subscription */, + 998165C8204EBB5E0059D346 /* User */, + ); + path = Requests; + sourceTree = ""; + }; + D1D535EA1F7081E6006625D2 /* API */ = { + isa = PBXGroup; + children = ( + 8013F86E1FD6B59D00EE1A4E /* Clients */, + 80213C0F1FE063B200809E14 /* HTTP */, + 8013F8741FD6B5D100EE1A4E /* Middlewares */, + D1D535EF1F70863C006625D2 /* Requests */, + D1D535EB1F7081FA006625D2 /* API.swift */, + 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */, + 8013F8691FD6B59900EE1A4E /* APIError.swift */, + D1D535ED1F708628006625D2 /* APIRequest.swift */, + 8067DAA5206D1883005E3369 /* APIResource.swift */, + D15C83851F70991F001AB155 /* APIResponse.swift */, + 8013F8681FD6B59900EE1A4E /* Version.swift */, + ); + path = API; + sourceTree = ""; + }; + D1D535EF1F70863C006625D2 /* Requests */ = { + isa = PBXGroup; + children = ( + 802498EC1F7A82CD005477EC /* Authentication */, + 8013F8831FD6B74800EE1A4E /* Command */, + 9977302520725B3A009AF465 /* Emoji */, + 80054CFA1FDAFD3A00F5ECF9 /* General */, + 806C59A01FBB0BA700C32D0A /* Message */, + 80235D1C1F740AAC00A56CA5 /* Subscription */, + 99D888F92046239100E51306 /* User */, + ); + path = Requests; + sourceTree = ""; + }; + D1DA25261F695AC700DB6ABB /* Controllers */ = { + isa = PBXGroup; + children = ( + D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */, + 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */, + 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */, + 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */, + 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */, + ); + path = Controllers; + sourceTree = ""; + }; + D32E28201DFD86AC00D6019C /* Launcher */ = { + isa = PBXGroup; + children = ( + D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */, + D32E28221DFD86C300D6019C /* LauncherProtocol.swift */, + 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */, + 411119B51F680DB00019854B /* NetworkCoordinator.swift */, + D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */, + 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */, + ); + path = Launcher; + sourceTree = ""; + }; + D3CFAFBE1E907FC100BADC0A /* Chat */ = { + isa = PBXGroup; + children = ( + 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */, + 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */, + ); + path = Chat; + sourceTree = ""; + }; + EE693BBD0CC2727847214E2D /* Pods */ = { + isa = PBXGroup; + children = ( + BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */, + 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */, + 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */, + 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */, + AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */, + FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */, + 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */, + 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */, + F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */; - buildPhases = ( - 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */, - D37272A11E13E60E00A25E1A /* SwiftLint */, - 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */, - 41DF76DB1D2C50710028DBF8 /* Sources */, - 41DF76DC1D2C50710028DBF8 /* Frameworks */, - 41DF76DD1D2C50710028DBF8 /* Resources */, - FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */, - FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */, - 807FB5672046E7DD00E21429 /* Embed App Extensions */, - ); - buildRules = ( - ); - dependencies = ( - 807FB5612046E7DD00E21429 /* PBXTargetDependency */, - ); - name = Rocket.Chat; - productName = Rocket.Chat; - productReference = 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */; - productType = "com.apple.product-type.application"; - }; - 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */; - buildPhases = ( - 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */, - F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */, - 41DF76EF1D2C50720028DBF8 /* Sources */, - 41DF76F01D2C50720028DBF8 /* Frameworks */, - 41DF76F11D2C50720028DBF8 /* Resources */, - DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */, - DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */, - ); - name = Rocket.ChatTests; - productName = Rocket.ChatTests; - productReference = 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */; - buildPhases = ( - 41DF76FA1D2C50720028DBF8 /* Sources */, - 41DF76FB1D2C50720028DBF8 /* Frameworks */, - 41DF76FC1D2C50720028DBF8 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 41DF77001D2C50720028DBF8 /* PBXTargetDependency */, - ); - name = Rocket.ChatUITests; - productName = Rocket.ChatUITests; - productReference = 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; - 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */; - buildPhases = ( - EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */, - 807FB5542046E7DD00E21429 /* Sources */, - 807FB5552046E7DD00E21429 /* Frameworks */, - 807FB5562046E7DD00E21429 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Rocket.Chat.ShareExtension; - productName = Rocket.Chat.ShareExtension; - productReference = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; - productType = "com.apple.product-type.app-extension"; - }; + 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */; + buildPhases = ( + 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */, + D37272A11E13E60E00A25E1A /* SwiftLint */, + 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */, + 41DF76DB1D2C50710028DBF8 /* Sources */, + 41DF76DC1D2C50710028DBF8 /* Frameworks */, + 41DF76DD1D2C50710028DBF8 /* Resources */, + FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */, + FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */, + 807FB5672046E7DD00E21429 /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + 807FB5612046E7DD00E21429 /* PBXTargetDependency */, + ); + name = Rocket.Chat; + productName = Rocket.Chat; + productReference = 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */; + productType = "com.apple.product-type.application"; + }; + 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */; + buildPhases = ( + 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */, + F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */, + 41DF76EF1D2C50720028DBF8 /* Sources */, + 41DF76F01D2C50720028DBF8 /* Frameworks */, + 41DF76F11D2C50720028DBF8 /* Resources */, + DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */, + DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */, + ); + name = Rocket.ChatTests; + productName = Rocket.ChatTests; + productReference = 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */; + buildPhases = ( + 41DF76FA1D2C50720028DBF8 /* Sources */, + 41DF76FB1D2C50720028DBF8 /* Frameworks */, + 41DF76FC1D2C50720028DBF8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 41DF77001D2C50720028DBF8 /* PBXTargetDependency */, + ); + name = Rocket.ChatUITests; + productName = Rocket.ChatUITests; + productReference = 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */; + buildPhases = ( + EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */, + 807FB5542046E7DD00E21429 /* Sources */, + 807FB5552046E7DD00E21429 /* Frameworks */, + 807FB5562046E7DD00E21429 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Rocket.Chat.ShareExtension; + productName = Rocket.Chat.ShareExtension; + productReference = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 41DF76D71D2C50710028DBF8 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0930; - ORGANIZATIONNAME = Rocket.Chat; - TargetAttributes = { - 41DF76DE1D2C50710028DBF8 = { - CreatedOnToolsVersion = 7.3.1; + 41DF76D71D2C50710028DBF8 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = Rocket.Chat; + TargetAttributes = { + 41DF76DE1D2C50710028DBF8 = { + CreatedOnToolsVersion = 7.3.1; DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - SystemCapabilities = { - com.apple.ApplicationGroups.iOS = { - enabled = 1; - }; - com.apple.BackgroundModes = { - enabled = 1; - }; - com.apple.Push = { - enabled = 1; - }; - com.apple.SafariKeychain = { - enabled = 1; - }; - com.apple.iCloud = { - enabled = 1; - }; - }; - }; - 41DF76F21D2C50720028DBF8 = { - CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - TestTargetID = 41DF76DE1D2C50710028DBF8; - }; - 41DF76FD1D2C50720028DBF8 = { - CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - TestTargetID = 41DF76DE1D2C50710028DBF8; - }; - 807FB5572046E7DD00E21429 = { - CreatedOnToolsVersion = 9.2; - DevelopmentTeam = S6UPZG7ZR3; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.ApplicationGroups.iOS = { - enabled = 1; - }; - }; - }; - }; - }; - buildConfigurationList = 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - "pt-BR", - de, - pl, - cs, - fr, - el, - es, - ); - mainGroup = 41DF76D61D2C50710028DBF8; - productRefGroup = 41DF76E01D2C50710028DBF8 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */, - 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */, - 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */, - 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */, - ); - }; + LastSwiftMigration = 0900; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + com.apple.BackgroundModes = { + enabled = 1; + }; + com.apple.Push = { + enabled = 1; + }; + com.apple.SafariKeychain = { + enabled = 1; + }; + com.apple.iCloud = { + enabled = 1; + }; + }; + }; + 41DF76F21D2C50720028DBF8 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = S6UPZG7ZR3; + LastSwiftMigration = 0900; + TestTargetID = 41DF76DE1D2C50710028DBF8; + }; + 41DF76FD1D2C50720028DBF8 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = S6UPZG7ZR3; + LastSwiftMigration = 0900; + TestTargetID = 41DF76DE1D2C50710028DBF8; + }; + 807FB5572046E7DD00E21429 = { + CreatedOnToolsVersion = 9.2; + DevelopmentTeam = S6UPZG7ZR3; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + }; + }; + }; + }; + buildConfigurationList = 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + "pt-BR", + de, + pl, + cs, + fr, + el, + es, + ); + mainGroup = 41DF76D61D2C50710028DBF8; + productRefGroup = 41DF76E01D2C50710028DBF8 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */, + 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */, + 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */, + 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */, + ); + }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 41DF76DD1D2C50710028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */, - 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */, - 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */, - 33A5C9CC206A565800FE1C8F /* regional.json in Resources */, - 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */, - 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */, - 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */, - 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */, - 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */, - 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */, - 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */, - 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */, - 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */, - 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */, - 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */, - 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */, - 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */, - 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */, - 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */, - 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */, - 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */, - 33A5C9CE206A565800FE1C8F /* people.json in Resources */, - 33A5C9D1206A565800FE1C8F /* activity.json in Resources */, - 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */, - 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */, - 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */, - 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */, - 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */, - 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */, - 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */, - 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */, - 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */, - 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */, - 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */, - 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */, - 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */, - 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */, - 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */, - 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */, - 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */, - 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */, - 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */, - 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */, - 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */, - 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */, - 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */, - 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */, - 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */, - 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */, - 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */, - 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */, - 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */, - 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */, - 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */, - 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */, - 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */, - 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */, - 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */, - 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */, - 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */, - 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */, - 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */, - 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */, - 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */, - 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */, - 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */, - 14F8A281202E659000175FDC /* White-40@3x.png in Resources */, - 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */, - 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */, - 33A5C9CB206A565800FE1C8F /* travel.json in Resources */, - 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */, - 14F8A287202E659000175FDC /* White-40@2x.png in Resources */, - 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */, - 14F8A288202E659000175FDC /* White-60@3x.png in Resources */, - 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */, - 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */, - 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */, - 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */, - 14F8A280202E659000175FDC /* White-76@2x.png in Resources */, - 33A5C9CD206A565800FE1C8F /* flags.json in Resources */, - 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */, - 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */, - 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */, - 14F8A284202E659000175FDC /* White-60@2x.png in Resources */, - 14F8A286202E659000175FDC /* White-29@2x.png in Resources */, - 14F8A282202E659000175FDC /* White-76@3x.png in Resources */, - 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */, - 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */, - 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */, - 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */, - 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */, - 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */, - 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */, - 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */, - 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */, - 33A5C9D2206A565800FE1C8F /* nature.json in Resources */, - 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */, - 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */, - 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */, - 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */, - 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */, - 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */, - 14F8A285202E659000175FDC /* White-29@3x.png in Resources */, - 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */, - 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */, - 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */, - 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */, - 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */, - 33A5C9D0206A565800FE1C8F /* food.json in Resources */, - 33A5C9CF206A565800FE1C8F /* objects.json in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76F11D2C50720028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FC1D2C50720028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5562046E7DD00E21429 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */, - 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */, - 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */, - 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */, - 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */, - 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */, - 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */, - 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */, - 80D5637220592D32008896D6 /* Assets.xcassets in Resources */, - 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 41DF76DD1D2C50710028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */, + 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */, + 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */, + 33A5C9CC206A565800FE1C8F /* regional.json in Resources */, + 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */, + 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */, + 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */, + 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */, + 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */, + 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */, + 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */, + 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */, + 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */, + 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */, + 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */, + 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */, + 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */, + 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */, + 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */, + 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */, + 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */, + 33A5C9CE206A565800FE1C8F /* people.json in Resources */, + 33A5C9D1206A565800FE1C8F /* activity.json in Resources */, + 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */, + 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */, + 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */, + 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */, + 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */, + 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */, + 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */, + 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */, + 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */, + 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */, + 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */, + 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */, + 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */, + 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */, + 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */, + 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */, + 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */, + 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */, + 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */, + 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */, + 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */, + 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */, + 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */, + 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */, + 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */, + 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */, + 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */, + 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */, + 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */, + 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */, + 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */, + 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */, + 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */, + 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */, + 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */, + 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */, + 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */, + 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */, + 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */, + 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */, + 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */, + 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */, + 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */, + 14F8A281202E659000175FDC /* White-40@3x.png in Resources */, + 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */, + 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */, + 33A5C9CB206A565800FE1C8F /* travel.json in Resources */, + 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */, + 14F8A287202E659000175FDC /* White-40@2x.png in Resources */, + 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */, + 14F8A288202E659000175FDC /* White-60@3x.png in Resources */, + 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */, + 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */, + 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */, + 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */, + 14F8A280202E659000175FDC /* White-76@2x.png in Resources */, + 33A5C9CD206A565800FE1C8F /* flags.json in Resources */, + 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */, + 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */, + 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */, + 14F8A284202E659000175FDC /* White-60@2x.png in Resources */, + 14F8A286202E659000175FDC /* White-29@2x.png in Resources */, + 14F8A282202E659000175FDC /* White-76@3x.png in Resources */, + 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */, + 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */, + 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */, + 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */, + 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */, + 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */, + 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */, + 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */, + 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */, + 33A5C9D2206A565800FE1C8F /* nature.json in Resources */, + 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */, + 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */, + 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */, + 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */, + 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */, + 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */, + 14F8A285202E659000175FDC /* White-29@3x.png in Resources */, + 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */, + 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */, + 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */, + 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */, + 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */, + 33A5C9D0206A565800FE1C8F /* food.json in Resources */, + 33A5C9CF206A565800FE1C8F /* objects.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76F11D2C50720028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FC1D2C50720028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5562046E7DD00E21429 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */, + 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */, + 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */, + 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */, + 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */, + 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */, + 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */, + 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */, + 80D5637220592D32008896D6 /* Assets.xcassets in Resources */, + 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.ChatTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - D37272A11E13E60E00A25E1A /* SwiftLint */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 12; - files = ( - ); - inputPaths = ( - ); - name = SwiftLint; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n \"${PODS_ROOT}/SwiftLint/swiftlint\"\nfi"; - }; - DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", - "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", - "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", - "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", - "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", - "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", - "${PODS_ROOT}/Instabug/Instabug.framework", - "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", - "${PODS_ROOT}/Instabug/InstabugCore.framework", - "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", - "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", - "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", - "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", - "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", - "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", - "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", - "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", - "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", - "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", - "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", - "${BUILT_PRODUCTS_DIR}/semver/semver.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", - "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", - "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "📦 Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat.ShareExtension-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", - "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", - "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", - "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", - "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", - "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", - "${PODS_ROOT}/Instabug/Instabug.framework", - "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", - "${PODS_ROOT}/Instabug/InstabugCore.framework", - "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", - "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", - "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", - "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", - "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", - "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", - "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", - "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", - "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", - "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", - "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", - "${BUILT_PRODUCTS_DIR}/semver/semver.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", - "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", - "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "📦 Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; + 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.ChatTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + D37272A11E13E60E00A25E1A /* SwiftLint */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 12; + files = ( + ); + inputPaths = ( + ); + name = SwiftLint; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n \"${PODS_ROOT}/SwiftLint/swiftlint\"\nfi"; + }; + DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", + "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", + "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", + "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", + "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", + "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", + "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", + "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", + "${PODS_ROOT}/Instabug/Instabug.framework", + "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", + "${PODS_ROOT}/Instabug/InstabugCore.framework", + "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", + "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", + "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", + "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", + "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", + "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", + "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", + "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", + "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", + "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", + "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", + "${BUILT_PRODUCTS_DIR}/semver/semver.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", + "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", + "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "📦 Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat.ShareExtension-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", + "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", + "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", + "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", + "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", + "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", + "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", + "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", + "${PODS_ROOT}/Instabug/Instabug.framework", + "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", + "${PODS_ROOT}/Instabug/InstabugCore.framework", + "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", + "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", + "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", + "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", + "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", + "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", + "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", + "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", + "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", + "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", + "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", + "${BUILT_PRODUCTS_DIR}/semver/semver.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", + "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", + "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "📦 Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 41DF76DB1D2C50710028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */, - 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */, - 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */, - 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */, - 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */, - 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */, - 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */, - 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */, - D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */, - 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */, - 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */, - 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */, - 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */, - 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */, - 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */, - 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */, - 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */, - 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */, - 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */, - 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */, - 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */, - 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */, - 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */, - 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */, - 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */, - 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */, - 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */, - 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */, - 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */, - 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */, - B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */, - 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */, - 41552F661D30308C0081438D /* AuthManager.swift in Sources */, - 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */, - 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */, - D10E9C1A1F643457007F1796 /* Channel.swift in Sources */, - 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */, - 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */, - 413996171F3B44500075F96E /* UploadHelper.swift in Sources */, - 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */, - 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */, - 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */, - 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */, - 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */, - 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */, - 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */, - 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */, - 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */, - 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */, - 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */, - 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */, - 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */, - 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */, - 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */, - 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */, - 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */, - 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */, - D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */, - D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */, - 8076FDA42048533000114F28 /* String+Random.swift in Sources */, - 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */, - 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */, - 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */, - 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */, - 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */, - 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */, - D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */, - 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */, - 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */, - 8076FDB52048571200114F28 /* AuthUser.swift in Sources */, - 4159720E1D3DB882002258F4 /* Mention.swift in Sources */, - 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */, - 806401311FB09DE800990572 /* Permission.swift in Sources */, - 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */, - 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */, - 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */, - 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */, - 4159720C1D3DB854002258F4 /* Email.swift in Sources */, - 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */, - 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */, - 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */, - 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */, - 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */, - 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, - 4199A9891DABCC570035F820 /* Emojione.swift in Sources */, - 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */, - 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */, - 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */, - 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */, - 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */, - 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */, - D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */, - 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */, - 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, - 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, - A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, - 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */, - 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */, - 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */, - 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */, - 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */, - 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */, - 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */, - 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */, - 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */, - 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */, - 41A79C131D2F09F200A1968E /* Auth.swift in Sources */, - 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */, - 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */, - 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */, - 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */, - 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */, - D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */, - D1D535EC1F7081FA006625D2 /* API.swift in Sources */, - 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */, - 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */, - 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */, - 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */, - 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */, - 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */, - 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */, - 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */, - 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */, - 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */, - 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */, - 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */, - 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */, - 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */, - 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */, - 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */, - 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */, - 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */, - 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */, - 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */, - 41A79C0F1D2F085F00A1968E /* User.swift in Sources */, - 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */, - 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */, - 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */, - 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */, - 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */, - 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */, - 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */, - 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */, - 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */, - 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */, - 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */, - 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */, - 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */, - 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */, - 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */, - 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */, - 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */, - 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */, - 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */, - 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */, - 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */, - 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */, - 8076FDD12048646500114F28 /* MessageReply.swift in Sources */, - D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */, - 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */, - 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */, - 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */, - 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */, - 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */, - 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */, - 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */, - 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */, - 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */, - 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */, - 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */, - 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */, - 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */, - 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */, - 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */, - 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */, - 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */, - 807371A01F96937100D53ADF /* LoginService.swift in Sources */, - 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */, - 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */, - 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */, - 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */, - 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */, - D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */, - 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */, - 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */, - 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */, - 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */, - 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */, - D15C83861F70991F001AB155 /* APIResponse.swift in Sources */, - 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */, - 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */, - 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */, - 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */, - 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */, - 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */, - 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */, - 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */, - 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */, - 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */, - 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */, - 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */, - 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */, - 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */, - 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */, - 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */, - 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */, - 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */, - 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */, - 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */, - 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */, - 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */, - 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */, - 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */, - 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */, - 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */, - 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */, - 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */, - 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */, - 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */, - 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */, - 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */, - 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */, - 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */, - 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */, - 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */, - 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */, - D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */, - 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */, - 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */, - 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */, - 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */, - 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */, - 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */, - 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */, - 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */, - 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */, - 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */, - 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */, - 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */, - 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */, - 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */, - 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */, - 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */, - 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */, - 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */, - D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */, - D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */, - 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */, - D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */, - 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */, - 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */, - D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */, - 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */, - 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */, - 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */, - 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */, - 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */, - 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */, - 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */, - 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, - 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, - 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, + 41DF76DB1D2C50710028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */, + 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */, + 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */, + 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */, + 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */, + 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */, + 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */, + 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */, + D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */, + 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */, + 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */, + 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */, + 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */, + 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */, + 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */, + 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */, + 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */, + 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */, + 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */, + 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */, + 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */, + 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */, + 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */, + 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */, + 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */, + 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */, + 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */, + 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */, + 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */, + 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */, + B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */, + 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */, + 41552F661D30308C0081438D /* AuthManager.swift in Sources */, + 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */, + 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */, + D10E9C1A1F643457007F1796 /* Channel.swift in Sources */, + 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */, + 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */, + 413996171F3B44500075F96E /* UploadHelper.swift in Sources */, + 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */, + 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */, + 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */, + 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */, + 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */, + 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */, + 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */, + 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */, + 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */, + 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */, + 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */, + 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */, + 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */, + 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */, + 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */, + 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */, + 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */, + 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */, + D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */, + D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */, + 8076FDA42048533000114F28 /* String+Random.swift in Sources */, + 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */, + 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */, + 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */, + 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */, + 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */, + 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */, + D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */, + 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */, + 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */, + 8076FDB52048571200114F28 /* AuthUser.swift in Sources */, + 4159720E1D3DB882002258F4 /* Mention.swift in Sources */, + 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */, + 806401311FB09DE800990572 /* Permission.swift in Sources */, + 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */, + 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */, + 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */, + 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */, + 4159720C1D3DB854002258F4 /* Email.swift in Sources */, + 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */, + 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */, + 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */, + 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */, + 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */, + 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, + 4199A9891DABCC570035F820 /* Emojione.swift in Sources */, + 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */, + 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */, + 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */, + 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */, + 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */, + 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */, + D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */, + 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */, + 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, + 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, + A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, + 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */, + 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */, + 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */, + 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */, + 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */, + 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */, + 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */, + 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */, + 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */, + 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */, + 41A79C131D2F09F200A1968E /* Auth.swift in Sources */, + 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */, + 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */, + 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */, + 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */, + 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */, + D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */, + D1D535EC1F7081FA006625D2 /* API.swift in Sources */, + 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */, + 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */, + 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */, + 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */, + 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */, + 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */, + 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */, + 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */, + 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */, + 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */, + 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */, + 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */, + 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */, + 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */, + 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */, + 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */, + 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */, + 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */, + 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */, + 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */, + 41A79C0F1D2F085F00A1968E /* User.swift in Sources */, + 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */, + 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */, + 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */, + 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */, + 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */, + 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */, + 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */, + 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */, + 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */, + 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */, + 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */, + 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */, + 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */, + 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */, + 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */, + 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */, + 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */, + 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */, + 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */, + 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */, + 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */, + 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */, + 8076FDD12048646500114F28 /* MessageReply.swift in Sources */, + D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */, + 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */, + 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */, + 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */, + 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */, + 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */, + 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */, + 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */, + 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */, + 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */, + 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */, + 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */, + 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */, + 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */, + 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */, + 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */, + 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */, + 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */, + 807371A01F96937100D53ADF /* LoginService.swift in Sources */, + 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */, + 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */, + 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */, + 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */, + 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */, + D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */, + 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */, + 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */, + 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */, + 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */, + 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */, + D15C83861F70991F001AB155 /* APIResponse.swift in Sources */, + 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */, + 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */, + 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */, + 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */, + 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */, + 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */, + 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */, + 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */, + 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */, + 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */, + 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */, + 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */, + 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */, + 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */, + 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */, + 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */, + 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */, + 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */, + 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */, + 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */, + 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */, + 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */, + 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */, + 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */, + 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */, + 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */, + 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */, + 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */, + 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */, + 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */, + 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */, + 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */, + 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */, + 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */, + 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */, + 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */, + 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */, + D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */, + 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */, + 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */, + 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */, + 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */, + 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */, + 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */, + 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */, + 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */, + 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */, + 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */, + 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */, + 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */, + 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */, + 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */, + 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */, + 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */, + 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */, + 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */, + D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */, + D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */, + 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */, + D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */, + 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */, + 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */, + D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */, + 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */, + 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */, + 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */, + 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */, + 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */, + 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */, + 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */, + 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, + 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, + 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, 3353DBF8206787E500738D1C /* Themeable.swift in Sources */, 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */, 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */, - 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */, - 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */, - 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */, - 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */, - 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */, - 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */, - 4129937E208E25C200E12C49 /* PreferencesViewController.swift in Sources */, - 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */, - 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */, - 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */, - 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */, - 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */, - 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */, - 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */, - 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */, - 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */, - 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */, - 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */, - 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */, - 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */, - 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */, - 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */, - 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */, - 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */, - 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */, - 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */, - 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */, - 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */, - 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */, - 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76EF1D2C50720028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */, - 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */, - 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */, - 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */, - D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */, - 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */, - 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */, - 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */, - D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */, - 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */, - 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */, - 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */, - 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */, - 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */, - 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */, - 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */, - 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */, - 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */, - 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */, - 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */, - 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */, - 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */, - 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */, - 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */, - 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */, - 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */, - 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */, - 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */, - 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */, - 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */, - D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */, - 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */, - 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */, - 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */, - 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */, - 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */, - 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */, - 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */, - 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */, - 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */, - 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */, - 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */, - 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */, - 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */, - 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */, - 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */, - 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */, - 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */, - 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */, - 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */, - 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */, - 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */, - 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */, - D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */, - 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */, - 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */, - 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */, - 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */, - 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */, - 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */, - 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */, - 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */, - 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */, - 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */, - 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */, - 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */, - 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */, - 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */, - 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */, - 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */, - 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */, - 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */, - 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */, - B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */, - 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */, - 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */, - 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */, - 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */, - 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */, - 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */, - 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */, - 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */, - 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */, - 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */, - 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */, - D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */, - 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */, - 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */, - 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */, - 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */, - 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */, - 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */, - 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */, - 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */, - 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */, - 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */, - 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */, - 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */, - 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */, - 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */, - 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */, - D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */, - 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FA1D2C50720028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5542046E7DD00E21429 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4100B2842087779D00E2883A /* LogManager.swift in Sources */, - 80D0CE62205023710056B17F /* SECell.swift in Sources */, - 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */, - 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */, - 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */, - 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */, - 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */, - 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */, - 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */, - 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */, - 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */, - 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */, - 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */, - 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */, - 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */, - 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */, - 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */, - 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */, - 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */, - 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */, - 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */, - 80977AC2204F37C200C41435 /* SEState.swift in Sources */, - 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */, - 8076FDCA204863B900114F28 /* Channel.swift in Sources */, - 8076FDBD2048598100114F28 /* Subscription.swift in Sources */, - 804273DE204EBD51006DF420 /* APIClient.swift in Sources */, - 8076FDCB204863C500114F28 /* Attachment.swift in Sources */, - 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */, - 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */, - 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */, - 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */, - 8076FDC82048639700114F28 /* Message.swift in Sources */, - 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */, - 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */, - 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */, - 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */, - 80FA9066205313E20069038F /* SEContent.swift in Sources */, - 804273E0204EBD51006DF420 /* Version.swift in Sources */, - 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */, - 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */, - 8076FDA62048536800114F28 /* BaseModel.swift in Sources */, - 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */, - 804273DF204EBD51006DF420 /* APIError.swift in Sources */, - 806DB94320687697004ED8ED /* Alert.swift in Sources */, - 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */, - 800640F72049BA25006D990F /* SEScene.swift in Sources */, - 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */, - 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */, - 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */, - 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */, - 8076FDB3204856E200114F28 /* Auth.swift in Sources */, - 8076FDC9204863AF00114F28 /* Mention.swift in Sources */, - 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */, - 8076FDD22048648D00114F28 /* Email.swift in Sources */, - 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */, - 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */, - 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */, - 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */, - 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */, - 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */, - 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */, - 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */, - 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */, - 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */, - 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */, - 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */, - 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */, - 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */, - 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */, - 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */, - 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */, - 80D563752059325A008896D6 /* MimeType.swift in Sources */, - 8076FDA52048534200114F28 /* String+Random.swift in Sources */, - 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */, - 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */, - 8076FDCE2048642400114F28 /* User.swift in Sources */, - 804273DD204EBD51006DF420 /* API.swift in Sources */, - 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */, - 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */, - 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */, - 80FA9068205314040069038F /* SEServer.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */, + 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */, + 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */, + 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */, + 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */, + 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */, + 4129937E208E25C200E12C49 /* (null) in Sources */, + 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */, + 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */, + 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */, + 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */, + 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */, + 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */, + 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */, + 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */, + 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */, + 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */, + 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */, + 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */, + 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */, + 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */, + 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */, + 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */, + 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */, + 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */, + 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */, + 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */, + 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */, + 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */, + 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76EF1D2C50720028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */, + 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */, + 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */, + 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */, + D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */, + 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */, + 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */, + 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */, + D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */, + 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */, + 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */, + 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */, + 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */, + 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */, + 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */, + 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */, + 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */, + 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */, + 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */, + 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */, + 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */, + 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */, + 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */, + 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */, + 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */, + 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */, + 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */, + 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */, + 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */, + 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */, + D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */, + 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */, + 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */, + 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */, + 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */, + 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */, + 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */, + 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */, + 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */, + 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */, + 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */, + 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */, + 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */, + 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */, + 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */, + 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */, + 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */, + 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */, + 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */, + 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */, + 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */, + 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */, + 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */, + D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */, + 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */, + 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */, + 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */, + 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */, + 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */, + 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */, + 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */, + 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */, + 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */, + 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */, + 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */, + 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */, + 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */, + 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */, + 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */, + 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */, + 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */, + 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */, + 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */, + B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */, + 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */, + 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */, + 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */, + 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */, + 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */, + 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */, + 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */, + 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */, + 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */, + 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */, + 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */, + D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */, + 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */, + 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */, + 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */, + 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */, + 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */, + 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */, + 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */, + 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */, + 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */, + 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */, + 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */, + 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */, + 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */, + 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */, + 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */, + D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */, + 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FA1D2C50720028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5542046E7DD00E21429 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4100B2842087779D00E2883A /* LogManager.swift in Sources */, + 80D0CE62205023710056B17F /* SECell.swift in Sources */, + 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */, + 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */, + 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */, + 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */, + 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */, + 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */, + 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */, + 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */, + 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */, + 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */, + 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */, + 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */, + 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */, + 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */, + 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */, + 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */, + 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */, + 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */, + 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */, + 80977AC2204F37C200C41435 /* SEState.swift in Sources */, + 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */, + 8076FDCA204863B900114F28 /* Channel.swift in Sources */, + 8076FDBD2048598100114F28 /* Subscription.swift in Sources */, + 804273DE204EBD51006DF420 /* APIClient.swift in Sources */, + 8076FDCB204863C500114F28 /* Attachment.swift in Sources */, + 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */, + 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */, + 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */, + 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */, + 8076FDC82048639700114F28 /* Message.swift in Sources */, + 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */, + 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */, + 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */, + 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */, + 80FA9066205313E20069038F /* SEContent.swift in Sources */, + 804273E0204EBD51006DF420 /* Version.swift in Sources */, + 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */, + 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */, + 8076FDA62048536800114F28 /* BaseModel.swift in Sources */, + 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */, + 804273DF204EBD51006DF420 /* APIError.swift in Sources */, + 806DB94320687697004ED8ED /* Alert.swift in Sources */, + 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */, + 800640F72049BA25006D990F /* SEScene.swift in Sources */, + 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */, + 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */, + 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */, + 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */, + 8076FDB3204856E200114F28 /* Auth.swift in Sources */, + 8076FDC9204863AF00114F28 /* Mention.swift in Sources */, + 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */, + 8076FDD22048648D00114F28 /* Email.swift in Sources */, + 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */, + 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */, + 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */, + 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */, + 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */, + 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */, + 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */, + 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */, + 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */, + 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */, + 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */, + 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */, + 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */, + 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */, + 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */, + 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */, + 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */, + 80D563752059325A008896D6 /* MimeType.swift in Sources */, + 8076FDA52048534200114F28 /* String+Random.swift in Sources */, + 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */, + 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */, + 8076FDCE2048642400114F28 /* User.swift in Sources */, + 804273DD204EBD51006DF420 /* API.swift in Sources */, + 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */, + 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */, + 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */, + 80FA9068205314040069038F /* SEServer.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; - targetProxy = 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */; - }; - 41DF77001D2C50720028DBF8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; - targetProxy = 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */; - }; - 807FB5612046E7DD00E21429 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */; - targetProxy = 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */; - }; + 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; + targetProxy = 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */; + }; + 41DF77001D2C50720028DBF8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; + targetProxy = 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */; + }; + 807FB5612046E7DD00E21429 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */; + targetProxy = 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 41DF76EC1D2C50720028DBF8 /* Base */, - ); - name = LaunchScreen.storyboard; - path = .; - sourceTree = ""; - }; - 41EB22381E5F056600AA3AE7 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 41A6191A1FA7065400CFFA69 /* cs */, - 41EB223B1E5F19EB00AA3AE7 /* de */, - 848088BB204370E8005022E8 /* el */, - 41EB22371E5F056600AA3AE7 /* en */, - 412184A520472F7900DAAA88 /* es */, - 35D2F140200A45E800B4BE5A /* fr */, - 1499781C1FA605CE007E013D /* pl */, - 41EB223A1E5F057F00AA3AE7 /* pt-BR */, - ); - name = Localizable.strings; - path = .; - sourceTree = ""; - }; - 80307E431FD75DC0006AD9EF /* VoiceOver.strings */ = { - isa = PBXVariantGroup; - children = ( - 80307E481FD75DD5006AD9EF /* cs */, - 80307E451FD75DCF006AD9EF /* de */, - 848088BC204370E9005022E8 /* el */, - 80307E421FD75DC0006AD9EF /* en */, - 412184A620472F7900DAAA88 /* es */, - 80307E461FD75DD1006AD9EF /* fr */, - 80307E471FD75DD2006AD9EF /* pl */, - 80307E441FD75DCB006AD9EF /* pt-BR */, - ); - name = VoiceOver.strings; - path = .; - sourceTree = ""; - }; - 807FB55C2046E7DD00E21429 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 807FB55D2046E7DD00E21429 /* Base */, - ); - name = Main.storyboard; - path = .; - sourceTree = ""; - }; - 807FB57120472B6A00E21429 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 807FB57420472B7000E21429 /* cs */, - 807FB57220472B6D00E21429 /* de */, - 807FB57620472B7300E21429 /* el */, - 807FB57720472B8200E21429 /* en */, - 807FB57520472B7200E21429 /* fr */, - 807FB57320472B6F00E21429 /* pl */, - 807FB57020472B6A00E21429 /* pt-BR */, - ); - name = Localizable.strings; - path = .; - sourceTree = ""; - }; - 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */ = { - isa = PBXVariantGroup; - children = ( - 80C7DD631FF46B8700E6647C /* cs */, - 80C7DD621FF46B8600E6647C /* de */, - 848088BA204370E8005022E8 /* el */, - 80C7DD5F1FF46B8000E6647C /* en */, - 412184A420472F7900DAAA88 /* es */, - 80C7DD651FF46B8C00E6647C /* fr */, - 80C7DD641FF46B8800E6647C /* pl */, - 80C7DD611FF46B8300E6647C /* pt-BR */, - ); - name = RCEmojiKit.strings; - path = .; - sourceTree = ""; - }; + 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 41DF76EC1D2C50720028DBF8 /* Base */, + ); + name = LaunchScreen.storyboard; + path = .; + sourceTree = ""; + }; + 41EB22381E5F056600AA3AE7 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 41A6191A1FA7065400CFFA69 /* cs */, + 41EB223B1E5F19EB00AA3AE7 /* de */, + 848088BB204370E8005022E8 /* el */, + 41EB22371E5F056600AA3AE7 /* en */, + 412184A520472F7900DAAA88 /* es */, + 35D2F140200A45E800B4BE5A /* fr */, + 1499781C1FA605CE007E013D /* pl */, + 41EB223A1E5F057F00AA3AE7 /* pt-BR */, + ); + name = Localizable.strings; + path = .; + sourceTree = ""; + }; + 80307E431FD75DC0006AD9EF /* VoiceOver.strings */ = { + isa = PBXVariantGroup; + children = ( + 80307E481FD75DD5006AD9EF /* cs */, + 80307E451FD75DCF006AD9EF /* de */, + 848088BC204370E9005022E8 /* el */, + 80307E421FD75DC0006AD9EF /* en */, + 412184A620472F7900DAAA88 /* es */, + 80307E461FD75DD1006AD9EF /* fr */, + 80307E471FD75DD2006AD9EF /* pl */, + 80307E441FD75DCB006AD9EF /* pt-BR */, + ); + name = VoiceOver.strings; + path = .; + sourceTree = ""; + }; + 807FB55C2046E7DD00E21429 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 807FB55D2046E7DD00E21429 /* Base */, + ); + name = Main.storyboard; + path = .; + sourceTree = ""; + }; + 807FB57120472B6A00E21429 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 807FB57420472B7000E21429 /* cs */, + 807FB57220472B6D00E21429 /* de */, + 807FB57620472B7300E21429 /* el */, + 807FB57720472B8200E21429 /* en */, + 807FB57520472B7200E21429 /* fr */, + 807FB57320472B6F00E21429 /* pl */, + 807FB57020472B6A00E21429 /* pt-BR */, + ); + name = Localizable.strings; + path = .; + sourceTree = ""; + }; + 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */ = { + isa = PBXVariantGroup; + children = ( + 80C7DD631FF46B8700E6647C /* cs */, + 80C7DD621FF46B8600E6647C /* de */, + 848088BA204370E8005022E8 /* el */, + 80C7DD5F1FF46B8000E6647C /* en */, + 412184A420472F7900DAAA88 /* es */, + 80C7DD651FF46B8C00E6647C /* fr */, + 80C7DD641FF46B8800E6647C /* pl */, + 80C7DD611FF46B8300E6647C /* pt-BR */, + ); + name = RCEmojiKit.strings; + path = .; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 41DF77051D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 41DF77061D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 41DF77081D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + 41DF77051D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 41DF77061D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 41DF77081D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_SWIFT_FLAGS = "$(inherited) -Onone -D DEBUG \"-D\" \"COCOAPODS\""; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_SWIFT_FLAGS = "$(inherited) -Onone -D DEBUG \"-D\" \"COCOAPODS\""; PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_DISABLE_SAFETY_CHECKS = NO; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 41DF77091D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_DISABLE_SAFETY_CHECKS = NO; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Debug; + }; + 41DF77091D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - 41DF770B1D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Debug; - }; - 41DF770C1D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Release; - }; - 41DF770E1D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Debug; - }; - 41DF770F1D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Release; - }; - 41E69F0420050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Beta; - }; - 41E69F0520050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Release; + }; + 41DF770B1D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Debug; + }; + 41DF770C1D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Release; + }; + 41DF770E1D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Debug; + }; + 41DF770F1D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Release; + }; + 41E69F0420050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Beta; + }; + 41E69F0520050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-D\" \"BETA\""; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-D\" \"BETA\""; PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Beta; - }; - 41E69F0620050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Beta; - }; - 41E69F0720050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Beta; - }; - 807FB5632046E7DD00E21429 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 807FB5642046E7DD00E21429 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 807FB5652046E7DD00E21429 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Beta; - }; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Beta; + }; + 41E69F0620050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Beta; + }; + 41E69F0720050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Beta; + }; + 807FB5632046E7DD00E21429 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 807FB5642046E7DD00E21429 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 807FB5652046E7DD00E21429 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Beta; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF77051D2C50720028DBF8 /* Debug */, - 41DF77061D2C50720028DBF8 /* Release */, - 41E69F0420050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF77081D2C50720028DBF8 /* Debug */, - 41DF77091D2C50720028DBF8 /* Release */, - 41E69F0520050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF770B1D2C50720028DBF8 /* Debug */, - 41DF770C1D2C50720028DBF8 /* Release */, - 41E69F0620050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF770E1D2C50720028DBF8 /* Debug */, - 41DF770F1D2C50720028DBF8 /* Release */, - 41E69F0720050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 807FB5632046E7DD00E21429 /* Debug */, - 807FB5642046E7DD00E21429 /* Release */, - 807FB5652046E7DD00E21429 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; + 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF77051D2C50720028DBF8 /* Debug */, + 41DF77061D2C50720028DBF8 /* Release */, + 41E69F0420050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF77081D2C50720028DBF8 /* Debug */, + 41DF77091D2C50720028DBF8 /* Release */, + 41E69F0520050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF770B1D2C50720028DBF8 /* Debug */, + 41DF770C1D2C50720028DBF8 /* Release */, + 41E69F0620050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF770E1D2C50720028DBF8 /* Debug */, + 41DF770F1D2C50720028DBF8 /* Release */, + 41E69F0720050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 807FB5632046E7DD00E21429 /* Debug */, + 807FB5642046E7DD00E21429 /* Release */, + 807FB5652046E7DD00E21429 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ - }; - rootObject = 41DF76D71D2C50710028DBF8 /* Project object */; + }; + rootObject = 41DF76D71D2C50710028DBF8 /* Project object */; } diff --git a/Rocket.Chat/Info.plist b/Rocket.Chat/Info.plist index f7d429307e..8b34099fa0 100644 --- a/Rocket.Chat/Info.plist +++ b/Rocket.Chat/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - Rocket.Test + Rocket.Chat CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIcons diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index 05d26038eb..3d8718505e 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -18,8 +18,9 @@ class Theme: NSObject { let tintColor: UIColor let focusedBackground: UIColor let auxiliaryBackground: UIColor + var mutedAccent: UIColor = #colorLiteral(red: 0.9953911901, green: 0.9881951213, blue: 1, alpha: 0.3031745158) - init(backgroundColor: UIColor, titleText: UIColor, bodyText: UIColor, auxiliaryText: UIColor, hyperlinkText: UIColor, tintColor: UIColor, focusedBackground: UIColor, auxiliaryBackground: UIColor) { + init(backgroundColor: UIColor, titleText: UIColor, bodyText: UIColor, auxiliaryText: UIColor, hyperlinkText: UIColor, tintColor: UIColor, focusedBackground: UIColor, auxiliaryBackground: UIColor, mutedAccent: UIColor?) { self.backgroundColor = backgroundColor self.titleText = titleText self.bodyText = bodyText @@ -28,6 +29,9 @@ class Theme: NSObject { self.tintColor = tintColor self.focusedBackground = focusedBackground self.auxiliaryBackground = auxiliaryBackground + if let mutedAccent = mutedAccent { + self.mutedAccent = mutedAccent + } } static let dark = Theme( @@ -38,7 +42,8 @@ class Theme: NSObject { hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), focusedBackground: #colorLiteral(red: 0.1433121264, green: 0.1433121264, blue: 0.1433121264, alpha: 1), - auxiliaryBackground: #colorLiteral(red: 0, green: 0.1019607843, blue: 0.3254901961, alpha: 1) + auxiliaryBackground: #colorLiteral(red: 0, green: 0.1019607843, blue: 0.3254901961, alpha: 1), + mutedAccent: nil ) } @@ -71,7 +76,7 @@ extension SLKTextView { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) self.textColor = theme.bodyText - self.layer.borderColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.2984980193) + self.layer.borderColor = theme.mutedAccent.cgColor self.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.04910321301) } } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift index e0db60073c..4d244d83ef 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift @@ -13,4 +13,12 @@ final class ChatMessageDaySeparator: UICollectionViewCell { static let identifier = "ChatMessageDaySeparator" @IBOutlet weak var labelTitle: UILabel! + @IBOutlet weak var seperatorLine: UIView! +} + +extension ChatMessageDaySeparator { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + seperatorLine.backgroundColor = theme.mutedAccent + } } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.xib b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.xib index 14719f71cf..ebf7221bea 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.xib +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.xib @@ -1,11 +1,11 @@ - + - + @@ -48,6 +48,7 @@ + From 1c411afea96d1d09864b048a9f63068ef476dadd Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 25 Apr 2018 11:41:15 +0530 Subject: [PATCH 005/124] Accent colors applied --- Rocket.Chat/Themeable.swift | 17 ++++++++++++++--- .../Cells/Chat/ChatMessageDaySeparator.swift | 1 + .../Cells/Chat/ChatMessageUnreadSeparator.swift | 9 +++++++++ .../Cells/Chat/ChatMessageUnreadSeparator.xib | 5 +++-- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index 3d8718505e..f360552e82 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -18,9 +18,10 @@ class Theme: NSObject { let tintColor: UIColor let focusedBackground: UIColor let auxiliaryBackground: UIColor - var mutedAccent: UIColor = #colorLiteral(red: 0.9953911901, green: 0.9881951213, blue: 1, alpha: 0.3031745158) + let mutedAccent: UIColor + let strongAccent: UIColor - init(backgroundColor: UIColor, titleText: UIColor, bodyText: UIColor, auxiliaryText: UIColor, hyperlinkText: UIColor, tintColor: UIColor, focusedBackground: UIColor, auxiliaryBackground: UIColor, mutedAccent: UIColor?) { + init(backgroundColor: UIColor, titleText: UIColor, bodyText: UIColor, auxiliaryText: UIColor, hyperlinkText: UIColor, tintColor: UIColor, focusedBackground: UIColor, auxiliaryBackground: UIColor, mutedAccent: UIColor?, strongAccent: UIColor?) { self.backgroundColor = backgroundColor self.titleText = titleText self.bodyText = bodyText @@ -29,8 +30,17 @@ class Theme: NSObject { self.tintColor = tintColor self.focusedBackground = focusedBackground self.auxiliaryBackground = auxiliaryBackground + if let mutedAccent = mutedAccent { self.mutedAccent = mutedAccent + } else { + self.mutedAccent = #colorLiteral(red: 0.9953911901, green: 0.9881951213, blue: 1, alpha: 0.3031745158) + } + + if let strongAccent = strongAccent { + self.strongAccent = strongAccent + } else { + self.strongAccent = #colorLiteral(red: 0.9720572829, green: 0.3783821166, blue: 0.446572125, alpha: 1) } } @@ -43,7 +53,8 @@ class Theme: NSObject { tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), focusedBackground: #colorLiteral(red: 0.1433121264, green: 0.1433121264, blue: 0.1433121264, alpha: 1), auxiliaryBackground: #colorLiteral(red: 0, green: 0.1019607843, blue: 0.3254901961, alpha: 1), - mutedAccent: nil + mutedAccent: nil, + strongAccent: nil ) } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift index 4d244d83ef..32305e1a69 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift @@ -20,5 +20,6 @@ extension ChatMessageDaySeparator { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) seperatorLine.backgroundColor = theme.mutedAccent + labelTitle.textColor = theme.auxiliaryText } } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageUnreadSeparator.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageUnreadSeparator.swift index 1f837b1d4e..f318c45d8d 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageUnreadSeparator.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageUnreadSeparator.swift @@ -13,4 +13,13 @@ final class ChatMessageUnreadSeparator: UICollectionViewCell { static let identifier = "ChatMessageUnreadSeparator" @IBOutlet weak var labelTitle: UILabel! + @IBOutlet weak var seperatorLine: UIView! +} + +extension ChatMessageUnreadSeparator { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + seperatorLine.backgroundColor = theme.strongAccent + labelTitle.textColor = theme.strongAccent + } } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageUnreadSeparator.xib b/Rocket.Chat/Views/Cells/Chat/ChatMessageUnreadSeparator.xib index 7315dd27c3..8c1c4a94bc 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageUnreadSeparator.xib +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageUnreadSeparator.xib @@ -1,11 +1,11 @@ - + - + @@ -50,6 +50,7 @@ + From 78c6929d95a1acba5a01c36cd3a060e117b6e22d Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 26 Apr 2018 00:07:03 +0530 Subject: [PATCH 006/124] Fixed theming for the status bar and the text input bar --- .../Controllers/Chat/ChatViewController.swift | 31 ++++--------------- .../NotificationViewController.swift | 5 +++ Rocket.Chat/Models/ChatNotification.swift | 2 +- Rocket.Chat/Themeable.swift | 19 ++++++++++++ .../TransparentToTouchesWindow.swift | 1 + 5 files changed, 32 insertions(+), 26 deletions(-) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index 6eeafed6ea..8ec79bc287 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -400,36 +400,17 @@ final class ChatViewController: SLKTextViewController { if !textInputbar.subviews.contains(textInputbarBackground) { insertTextInputbarBackground() } - - // Making the old background for textInputView, transparent - // after the safeAreaInsets are set. (Initially zero) - // This helps improve the translucency effect of the bar. - if !oldTextInputbarBgIsTransparent, view.safeAreaInsets.bottom > 0 { - textInputbar.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default) - textInputbar.backgroundColor = UIColor.clear - textInputbar.barTintColor = UIColor.clear - oldTextInputbarBgIsTransparent = true - } - - if let textInputbarHC = textInputbarBackgroundHeightConstraint, textInputbarHC.constant != view.safeAreaInsets.bottom { - textInputbarHC.constant = view.safeAreaInsets.bottom - } } } private func insertTextInputbarBackground() { - if #available(iOS 11.0, *) { - textInputbar.insertSubview(textInputbarBackground, at: 0) - textInputbarBackground.applyTheme(AppDelegate.theme) - textInputbarBackground.translatesAutoresizingMaskIntoConstraints = false - - textInputbarBackgroundHeightConstraint = textInputbarBackground.heightAnchor.constraint(equalTo: textInputbar.heightAnchor, multiplier: 1, constant: view.safeAreaInsets.bottom) - textInputbarBackgroundHeightConstraint?.isActive = true + textInputbar.insertSubview(textInputbarBackground, at: 0) + textInputbarBackground.translatesAutoresizingMaskIntoConstraints = false - textInputbarBackground.widthAnchor.constraint(equalTo: textInputbar.widthAnchor).isActive = true - textInputbarBackground.topAnchor.constraint(equalTo: textInputbar.topAnchor).isActive = true - textInputbarBackground.centerXAnchor.constraint(equalTo: textInputbar.centerXAnchor).isActive = true - } + textInputbarBackground.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true + textInputbarBackground.widthAnchor.constraint(equalTo: textInputbar.widthAnchor).isActive = true + textInputbarBackground.topAnchor.constraint(equalTo: textInputbar.topAnchor).isActive = true + textInputbarBackground.centerXAnchor.constraint(equalTo: textInputbar.centerXAnchor).isActive = true } // MARK: SlackTextViewController diff --git a/Rocket.Chat/Controllers/Notification/NotificationViewController.swift b/Rocket.Chat/Controllers/Notification/NotificationViewController.swift index 924d2fa716..b7138a00f8 100644 --- a/Rocket.Chat/Controllers/Notification/NotificationViewController.swift +++ b/Rocket.Chat/Controllers/Notification/NotificationViewController.swift @@ -48,6 +48,11 @@ final class NotificationViewController: UIViewController { view.clipsToBounds = true } + // TODO: This does not belong here + override var preferredStatusBarStyle: UIStatusBarStyle { + return UIApplication.shared.delegate?.window??.rootViewController?.preferredStatusBarStyle ?? .default + } + override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() diff --git a/Rocket.Chat/Models/ChatNotification.swift b/Rocket.Chat/Models/ChatNotification.swift index f4338b7f96..415380e901 100644 --- a/Rocket.Chat/Models/ChatNotification.swift +++ b/Rocket.Chat/Models/ChatNotification.swift @@ -38,7 +38,7 @@ extension ChatNotification { extension ChatNotification.Payload { struct Sender: Codable, Equatable { let id: String - let name: String + let name: String? let username: String enum CodingKeys: String, CodingKey { diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index f360552e82..bdb72a409f 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -62,6 +62,7 @@ class Theme: NSObject { @objc func applyTheme(_ theme: Theme) } +// TODO: These do not belong here extension UIView: Themeable { func applyTheme(_ theme: Theme) { backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) @@ -81,6 +82,11 @@ extension UICollectionView { super.insertSubview(view, at: index) view.applyTheme(AppDelegate.theme) } + + open override func addSubview(_ view: UIView) { + super.addSubview(view) + view.applyTheme(AppDelegate.theme) + } } extension SLKTextView { @@ -119,5 +125,18 @@ extension UIToolbar { self.isTranslucent = false self.barTintColor = theme.focusedBackground self.tintColor = theme.tintColor + self.barStyle = .black + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme(AppDelegate.theme) + } +} + +extension SLKTextInputbar { + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme(AppDelegate.theme) } } diff --git a/Rocket.Chat/Views/Notification/TransparentToTouchesWindow.swift b/Rocket.Chat/Views/Notification/TransparentToTouchesWindow.swift index 3392cfb716..b8dea88efd 100644 --- a/Rocket.Chat/Views/Notification/TransparentToTouchesWindow.swift +++ b/Rocket.Chat/Views/Notification/TransparentToTouchesWindow.swift @@ -20,4 +20,5 @@ class TransparentToTouchesWindow: UIWindow { } return nil } + } From 3cce9ce2d43edb68d3b55109ab3a1932ead8a8dc Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 26 Apr 2018 00:14:01 +0530 Subject: [PATCH 007/124] fixed preferences --- Rocket.Chat.xcodeproj/project.pbxproj | 4 ++++ Rocket.Chat/AppDelegate.swift | 1 + 2 files changed, 5 insertions(+) diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index f9f41e2345..f1cc0251c0 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -111,6 +111,7 @@ 33A5C9D1206A565800FE1C8F /* activity.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C8206A565800FE1C8F /* activity.json */; }; 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; + 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */; }; 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; @@ -757,6 +758,7 @@ 33A5C9C8206A565800FE1C8F /* activity.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = activity.json; sourceTree = ""; }; 33A5C9C9206A565800FE1C8F /* nature.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = nature.json; sourceTree = ""; }; 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatNotification.swift; sourceTree = ""; }; + 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; @@ -1549,6 +1551,7 @@ 99282260204DE0AE005D2067 /* Profile */, 9960C82E2063F091004A034C /* Web Browser */, 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, + 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */, 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */, ); path = Preferences; @@ -3675,6 +3678,7 @@ 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */, 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */, 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */, + 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */, 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */, 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */, 8076FDD12048646500114F28 /* MessageReply.swift in Sources */, diff --git a/Rocket.Chat/AppDelegate.swift b/Rocket.Chat/AppDelegate.swift index 78e6dc55ed..e865ec4ead 100644 --- a/Rocket.Chat/AppDelegate.swift +++ b/Rocket.Chat/AppDelegate.swift @@ -16,6 +16,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var notificationWindow: UIWindow? + // TODO: This does not belong here static let theme = Theme.dark func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { From f7b6f62b8e345a31729c12b791389b8b1ffe0119 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 26 Apr 2018 01:40:56 +0530 Subject: [PATCH 008/124] Fix PreferencesViewController mapping in project --- Rocket.Chat.xcodeproj/project.pbxproj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 2942b2c861..416ef3f2f8 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -528,7 +528,6 @@ 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; - 80D41DF6208FC57100034D1F /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D41DF5208FC57100034D1F /* PreferencesViewController.swift */; }; 80D5637220592D32008896D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80D5637120592D32008896D6 /* Assets.xcassets */; }; 80D563752059325A008896D6 /* MimeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D563742059325A008896D6 /* MimeType.swift */; }; 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5637620593533008896D6 /* ParseItemProviders.swift */; }; @@ -1176,7 +1175,6 @@ 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCellModel.swift; sourceTree = ""; }; 80D0CE6E20509C100056B17F /* SEAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEAvatarView.swift; sourceTree = ""; }; 80D0CE7020509C230056B17F /* SEAvatarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEAvatarView.xib; sourceTree = ""; }; - 80D41DF5208FC57100034D1F /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; 80D5637120592D32008896D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 80D563742059325A008896D6 /* MimeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MimeType.swift; sourceTree = ""; }; 80D5637620593533008896D6 /* ParseItemProviders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseItemProviders.swift; sourceTree = ""; }; @@ -1558,7 +1556,6 @@ 0B9AB2BF20444EB300ABEA05 /* Language */, 99282260204DE0AE005D2067 /* Profile */, 9960C82E2063F091004A034C /* Web Browser */, - 80D41DF5208FC57100034D1F /* PreferencesViewController.swift */, 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */, 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */, @@ -3666,7 +3663,6 @@ 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */, 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */, 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */, - 80D41DF6208FC57100034D1F /* PreferencesViewController.swift in Sources */, 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */, 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */, 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */, From 4a5551e535020fbfc89999d61efe8bb0cb0a08f7 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 26 Apr 2018 02:28:30 +0530 Subject: [PATCH 009/124] Emoji picker themed --- .../Chat/ChatControllerMessageActions.swift | 1 + .../Views/EmojiPicker/EmojiPicker.swift | 7 +++++++ Rocket.Chat/Themeable.swift | 21 +++++++++++++++++++ 3 files changed, 29 insertions(+) diff --git a/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift b/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift index 92e52bf317..ff86476374 100644 --- a/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift +++ b/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift @@ -192,6 +192,7 @@ extension ChatViewController { } controller.customEmojis = CustomEmoji.emojis() + controller.view.applyTheme(AppDelegate.theme) if UIDevice.current.userInterfaceIdiom == .phone { self.navigationController?.pushViewController(controller, animated: true) diff --git a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift index dbbf595e9c..154bab8048 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift @@ -337,3 +337,10 @@ private class EmojiPickerSectionHeaderView: UICollectionReusableView { fatalError("init(coder:) has not been implemented") } } + +extension EmojiPicker { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + skinToneButton.backgroundColor = currentSkinTone.color + } +} diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index bdb72a409f..76bd4abfa8 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -77,6 +77,13 @@ extension UILabel { } } +extension UISearchBar { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + barStyle = .black + } +} + extension UICollectionView { open override func insertSubview(_ view: UIView, at index: Int) { super.insertSubview(view, at: index) @@ -134,6 +141,20 @@ extension UIToolbar { } } +extension UITabBar { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + self.barTintColor = theme.focusedBackground + self.tintColor = theme.tintColor + self.barStyle = .black + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme(AppDelegate.theme) + } +} + extension SLKTextInputbar { open override func insertSubview(_ view: UIView, at index: Int) { super.insertSubview(view, at: index) From ab22b09b25a202c36bc4d77ca683edad53bd7a9a Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 26 Apr 2018 02:33:43 +0530 Subject: [PATCH 010/124] adapted keyboard appearance --- Rocket.Chat/Themeable.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index 76bd4abfa8..b746597773 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -81,6 +81,8 @@ extension UISearchBar { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) barStyle = .black + tintColor = theme.hyperlinkText + keyboardAppearance = .dark } } @@ -156,6 +158,11 @@ extension UITabBar { } extension SLKTextInputbar { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + textView.keyboardAppearance = .dark + } + open override func insertSubview(_ view: UIView, at index: Int) { super.insertSubview(view, at: index) view.applyTheme(AppDelegate.theme) From dd24b8a4f80883a364e4ee460d588f4e95257644 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 26 Apr 2018 02:41:07 +0530 Subject: [PATCH 011/124] TODO comment added --- Rocket.Chat/Themeable.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index b746597773..b19db6356a 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -86,6 +86,8 @@ extension UISearchBar { } } +// TODO: The add/insertSubview methods should not be overridden for UICollectionView, +// but rather for a subclass of the same. extension UICollectionView { open override func insertSubview(_ view: UIView, at index: Int) { super.insertSubview(view, at: index) From b050beffe3e4514aff3084ef3961d72b98966e3f Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 26 Apr 2018 03:57:28 +0530 Subject: [PATCH 012/124] updated MessageTextFontAttributes --- Rocket.Chat/Helpers/MessageTextFontAttributes.swift | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Rocket.Chat/Helpers/MessageTextFontAttributes.swift b/Rocket.Chat/Helpers/MessageTextFontAttributes.swift index 8db99966cc..734958c4c3 100644 --- a/Rocket.Chat/Helpers/MessageTextFontAttributes.swift +++ b/Rocket.Chat/Helpers/MessageTextFontAttributes.swift @@ -12,9 +12,16 @@ struct MessageTextFontAttributes { static let defaultFontSize = CGFloat(15) - static let defaultFontColor = AppDelegate.theme.bodyText //UIColor.darkGray - static let systemFontColor = AppDelegate.theme.auxiliaryText //UIColor.lightGray - static let failedFontColor = AppDelegate.theme.auxiliaryBackground //UIColor.lightGray + // TODO: Probably should not be changed here + static var defaultFontColor: UIColor { + return AppDelegate.theme.bodyText + } //UIColor.darkGray + static var systemFontColor: UIColor { + return AppDelegate.theme.auxiliaryText + } //UIColor.lightGray + static var failedFontColor: UIColor { + return AppDelegate.theme.auxiliaryBackground + } //UIColor.lightGray static let defaultFont = UIFont.systemFont(ofSize: defaultFontSize) static let italicFont = UIFont.italicSystemFont(ofSize: defaultFontSize) From be28f995ac27780a0ab402ccf7dc4454c8fe4336 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Fri, 27 Apr 2018 02:05:22 +0530 Subject: [PATCH 013/124] Changed how the theme is stored. --- Rocket.Chat.xcodeproj/project.pbxproj | 4 +++ Rocket.Chat/Storyboards/Chat.storyboard | 2 +- Rocket.Chat/Themeable.swift | 39 ++++++++++++++++++++----- Rocket.Chat/Views/Chat/ChatView.swift | 13 +++++++++ 4 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 Rocket.Chat/Views/Chat/ChatView.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 416ef3f2f8..bd191c4e95 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -99,6 +99,7 @@ 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; 3353DBF8206787E500738D1C /* Themeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Themeable.swift */; }; 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; + 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8B920926E5700EEA225 /* ChatView.swift */; }; 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; @@ -749,6 +750,7 @@ 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; 3353DBF7206787E500738D1C /* Themeable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Themeable.swift; sourceTree = ""; }; 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; + 3370D8B920926E5700EEA225 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; }; 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; @@ -2218,6 +2220,7 @@ 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */, 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */, 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */, + 3370D8B920926E5700EEA225 /* ChatView.swift */, 339B6929205042D300F97392 /* KeyboardFrameView.swift */, 1435BFA21F9B601600FB2768 /* RCTextView.swift */, 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */, @@ -3603,6 +3606,7 @@ 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */, 8076FDB52048571200114F28 /* AuthUser.swift in Sources */, 4159720E1D3DB882002258F4 /* Mention.swift in Sources */, + 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */, 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */, 806401311FB09DE800990572 /* Permission.swift in Sources */, 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */, diff --git a/Rocket.Chat/Storyboards/Chat.storyboard b/Rocket.Chat/Storyboards/Chat.storyboard index 0937d60532..c6a21f9720 100644 --- a/Rocket.Chat/Storyboards/Chat.storyboard +++ b/Rocket.Chat/Storyboards/Chat.storyboard @@ -26,7 +26,7 @@ - + diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index b19db6356a..433e4c1edf 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -59,7 +59,8 @@ class Theme: NSObject { } @objc protocol Themeable { - @objc func applyTheme(_ theme: Theme) + func applyTheme(_ theme: Theme) + var theme: Theme? { get } } // TODO: These do not belong here @@ -68,6 +69,8 @@ extension UIView: Themeable { backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) subviews.forEach { $0.applyTheme(theme) } } + + var theme: Theme? { return nil } } extension UILabel { @@ -89,14 +92,20 @@ extension UISearchBar { // TODO: The add/insertSubview methods should not be overridden for UICollectionView, // but rather for a subclass of the same. extension UICollectionView { + override var theme: Theme? { return superview?.theme } + open override func insertSubview(_ view: UIView, at index: Int) { super.insertSubview(view, at: index) - view.applyTheme(AppDelegate.theme) + if let theme = theme { + view.applyTheme(theme) + } } open override func addSubview(_ view: UIView) { super.addSubview(view) - view.applyTheme(AppDelegate.theme) + if let theme = theme { + view.applyTheme(theme) + } } } @@ -117,6 +126,8 @@ extension UITextView { } extension UINavigationBar { + override var theme: Theme? { return AppDelegate.theme } + override func applyTheme(_ theme: Theme) { super.applyTheme(theme) self.subviews.forEach { $0.applyTheme(theme) } @@ -126,11 +137,15 @@ extension UINavigationBar { open override func insertSubview(_ view: UIView, at index: Int) { super.insertSubview(view, at: index) - view.applyTheme(AppDelegate.theme) + if let theme = theme { + view.applyTheme(theme) + } } } extension UIToolbar { + override var theme: Theme? { return AppDelegate.theme } + override func applyTheme(_ theme: Theme) { super.applyTheme(theme) self.isTranslucent = false @@ -141,11 +156,15 @@ extension UIToolbar { open override func insertSubview(_ view: UIView, at index: Int) { super.insertSubview(view, at: index) - view.applyTheme(AppDelegate.theme) + if let theme = theme { + view.applyTheme(theme) + } } } extension UITabBar { + override var theme: Theme? { return AppDelegate.theme } + override func applyTheme(_ theme: Theme) { super.applyTheme(theme) self.barTintColor = theme.focusedBackground @@ -155,11 +174,15 @@ extension UITabBar { open override func insertSubview(_ view: UIView, at index: Int) { super.insertSubview(view, at: index) - view.applyTheme(AppDelegate.theme) + if let theme = theme { + view.applyTheme(theme) + } } } extension SLKTextInputbar { + override var theme: Theme? { return AppDelegate.theme } + override func applyTheme(_ theme: Theme) { super.applyTheme(theme) textView.keyboardAppearance = .dark @@ -167,6 +190,8 @@ extension SLKTextInputbar { open override func insertSubview(_ view: UIView, at index: Int) { super.insertSubview(view, at: index) - view.applyTheme(AppDelegate.theme) + if let theme = theme { + view.applyTheme(theme) + } } } diff --git a/Rocket.Chat/Views/Chat/ChatView.swift b/Rocket.Chat/Views/Chat/ChatView.swift new file mode 100644 index 0000000000..e887032c74 --- /dev/null +++ b/Rocket.Chat/Views/Chat/ChatView.swift @@ -0,0 +1,13 @@ +// +// ChatView.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 4/27/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class ChatView: UIView { + override var theme: Theme? { return AppDelegate.theme } +} From c91c155ec74e9841bae872320d58dcc61ff8cb6e Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Fri, 27 Apr 2018 02:16:05 +0530 Subject: [PATCH 014/124] Resolved conflicts --- Rocket.Chat/Storyboards/Chat.storyboard | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Rocket.Chat/Storyboards/Chat.storyboard b/Rocket.Chat/Storyboards/Chat.storyboard index 01b4cc9a0c..b6f0f0bb68 100644 --- a/Rocket.Chat/Storyboards/Chat.storyboard +++ b/Rocket.Chat/Storyboards/Chat.storyboard @@ -23,10 +23,6 @@ - - - - From 6c819046e1a5fa04e6cf3663f5befdfce246bbb3 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Fri, 27 Apr 2018 19:51:10 +0530 Subject: [PATCH 015/124] Refactoring --- Rocket.Chat.xcodeproj/project.pbxproj | 4 + Rocket.Chat/AppDelegate.swift | 3 - .../Chat/ChatControllerMessageActions.swift | 2 +- .../Controllers/Chat/ChatViewController.swift | 8 +- .../NSAttributedStringExtensions.swift | 2 +- .../Views/EmojiPicker/EmojiPicker.swift | 2 + .../Helpers/MessageTextFontAttributes.swift | 6 +- Rocket.Chat/Managers/ThemeManager.swift | 147 ++++++++++++++++++ Rocket.Chat/Themeable.swift | 138 ---------------- Rocket.Chat/Views/Chat/ChatView.swift | 2 +- 10 files changed, 161 insertions(+), 153 deletions(-) create mode 100644 Rocket.Chat/Managers/ThemeManager.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index bd191c4e95..b28f64c825 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -100,6 +100,7 @@ 3353DBF8206787E500738D1C /* Themeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Themeable.swift */; }; 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8B920926E5700EEA225 /* ChatView.swift */; }; + 3370D8BC2093570D00EEA225 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BB2093570D00EEA225 /* ThemeManager.swift */; }; 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; @@ -751,6 +752,7 @@ 3353DBF7206787E500738D1C /* Themeable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Themeable.swift; sourceTree = ""; }; 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; 3370D8B920926E5700EEA225 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; }; + 3370D8BB2093570D00EEA225 /* ThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManager.swift; sourceTree = ""; }; 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; @@ -1846,6 +1848,7 @@ 597ECBA31E3708B10041C5C5 /* PushManager.swift */, 41499C8E1F2A116900790EA7 /* ServerManager.swift */, B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */, + 3370D8BB2093570D00EEA225 /* ThemeManager.swift */, 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */, 41B554C61FBF0F9D000510B7 /* WindowManager.swift */, ); @@ -3642,6 +3645,7 @@ 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */, 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */, 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */, + 3370D8BC2093570D00EEA225 /* ThemeManager.swift in Sources */, 41A79C131D2F09F200A1968E /* Auth.swift in Sources */, 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */, 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */, diff --git a/Rocket.Chat/AppDelegate.swift b/Rocket.Chat/AppDelegate.swift index e865ec4ead..f46f8010a2 100644 --- a/Rocket.Chat/AppDelegate.swift +++ b/Rocket.Chat/AppDelegate.swift @@ -16,9 +16,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var notificationWindow: UIWindow? - // TODO: This does not belong here - static let theme = Theme.dark - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { Launcher().prepareToLaunch(with: launchOptions) diff --git a/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift b/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift index ff86476374..481dc5878d 100644 --- a/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift +++ b/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift @@ -192,7 +192,7 @@ extension ChatViewController { } controller.customEmojis = CustomEmoji.emojis() - controller.view.applyTheme(AppDelegate.theme) + controller.view.applyTheme(ThemeManager.theme) if UIDevice.current.userInterfaceIdiom == .phone { self.navigationController?.pushViewController(controller, animated: true) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index 2510e659bb..7c030fbefe 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -169,11 +169,8 @@ final class ChatViewController: SLKTextViewController { override func viewDidLoad() { super.viewDidLoad() - navigationController?.navigationBar.barStyle = .black navigationController?.navigationBar.isTranslucent = false -// navigationController?.navigationBar.barTintColor = UIColor.white -// navigationController?.navigationBar.tintColor = UIColor(rgb: 0x5B5B5B, alphaVal: 1) - navigationController?.navigationBar.applyTheme(AppDelegate.theme) + navigationController?.navigationBar.applyTheme(ThemeManager.theme) setNeedsStatusBarAppearanceUpdate() collectionView?.isPrefetchingEnabled = true @@ -278,7 +275,7 @@ final class ChatViewController: SLKTextViewController { let view = ChatTitleView.instantiateFromNib() self.navigationItem.titleView = view chatTitleView = view - view?.applyTheme(AppDelegate.theme) + view?.applyTheme(ThemeManager.theme) let gesture = UITapGestureRecognizer(target: self, action: #selector(chatTitleViewDidPressed)) chatTitleView?.addGestureRecognizer(gesture) @@ -332,7 +329,6 @@ final class ChatViewController: SLKTextViewController { let sizeHeight = collectionView?.contentSize.height ?? 0 let offset = CGPoint(x: 0, y: max(sizeHeight - boundsHeight, 0)) collectionView?.setContentOffset(offset, animated: animated) - scrollToBottomButtonIsVisible = false } internal func resetScrollToBottomButtonPosition() { diff --git a/Rocket.Chat/Extensions/NSAttributedStringExtensions.swift b/Rocket.Chat/Extensions/NSAttributedStringExtensions.swift index 3f274a7e13..3c5d84ce20 100644 --- a/Rocket.Chat/Extensions/NSAttributedStringExtensions.swift +++ b/Rocket.Chat/Extensions/NSAttributedStringExtensions.swift @@ -111,7 +111,7 @@ extension NSMutableAttributedString { background = .attention font = .white } else { - background = .white + background = .clear font = .link } diff --git a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift index 154bab8048..86ca79689c 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift @@ -339,6 +339,8 @@ private class EmojiPickerSectionHeaderView: UICollectionReusableView { } extension EmojiPicker { + override var theme: Theme? { return ThemeManager.theme } + override func applyTheme(_ theme: Theme) { super.applyTheme(theme) skinToneButton.backgroundColor = currentSkinTone.color diff --git a/Rocket.Chat/Helpers/MessageTextFontAttributes.swift b/Rocket.Chat/Helpers/MessageTextFontAttributes.swift index 734958c4c3..f879fc639b 100644 --- a/Rocket.Chat/Helpers/MessageTextFontAttributes.swift +++ b/Rocket.Chat/Helpers/MessageTextFontAttributes.swift @@ -14,13 +14,13 @@ struct MessageTextFontAttributes { // TODO: Probably should not be changed here static var defaultFontColor: UIColor { - return AppDelegate.theme.bodyText + return ThemeManager.theme.bodyText } //UIColor.darkGray static var systemFontColor: UIColor { - return AppDelegate.theme.auxiliaryText + return ThemeManager.theme.auxiliaryText } //UIColor.lightGray static var failedFontColor: UIColor { - return AppDelegate.theme.auxiliaryBackground + return ThemeManager.theme.auxiliaryBackground } //UIColor.lightGray static let defaultFont = UIFont.systemFont(ofSize: defaultFontSize) diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift new file mode 100644 index 0000000000..7a66f69d4e --- /dev/null +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -0,0 +1,147 @@ +// +// ThemeManager.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 4/27/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import Foundation +import SlackTextViewController + +struct ThemeManager { + static let theme = Theme.dark +} + +@objc protocol Themeable { + func applyTheme(_ theme: Theme) + var theme: Theme? { get } +} + +extension UIView: Themeable { + func applyTheme(_ theme: Theme) { + backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) + subviews.forEach { $0.applyTheme(theme) } + } + + var theme: Theme? { return superview?.theme } +} + +extension UILabel { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + textColor = theme.bodyText + } +} + +extension UISearchBar { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + barStyle = .black + tintColor = theme.hyperlinkText + keyboardAppearance = .dark + } +} + +extension UICollectionView { + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + if let theme = theme { + view.applyTheme(theme) + } + } + + open override func addSubview(_ view: UIView) { + super.addSubview(view) + if let theme = theme { + view.applyTheme(theme) + } + } +} + +extension SLKTextView { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + self.textColor = theme.bodyText + self.layer.borderColor = theme.mutedAccent.cgColor + self.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.04910321301) + } +} + +extension UITextView { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + self.tintColor = theme.hyperlinkText + } +} + +extension UINavigationBar { + override var theme: Theme? { return ThemeManager.theme } + + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + self.subviews.forEach { $0.applyTheme(theme) } + self.barTintColor = theme.backgroundColor + self.tintColor = theme.bodyText + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + if let theme = theme { + view.applyTheme(theme) + } + } +} + +extension UIToolbar { + override var theme: Theme? { return ThemeManager.theme } + + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + self.isTranslucent = false + self.barTintColor = theme.focusedBackground + self.tintColor = theme.tintColor + self.barStyle = .black + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + if let theme = theme { + view.applyTheme(theme) + } + } +} + +extension UITabBar { + override var theme: Theme? { return ThemeManager.theme } + + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + self.barTintColor = theme.focusedBackground + self.tintColor = theme.tintColor + self.barStyle = .black + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + if let theme = theme { + view.applyTheme(theme) + } + } +} + +extension SLKTextInputbar { + override var theme: Theme? { return ThemeManager.theme } + + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + textView.keyboardAppearance = .dark + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + if let theme = theme { + view.applyTheme(theme) + } + } +} diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index 433e4c1edf..e479abb0cf 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -57,141 +57,3 @@ class Theme: NSObject { strongAccent: nil ) } - -@objc protocol Themeable { - func applyTheme(_ theme: Theme) - var theme: Theme? { get } -} - -// TODO: These do not belong here -extension UIView: Themeable { - func applyTheme(_ theme: Theme) { - backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) - subviews.forEach { $0.applyTheme(theme) } - } - - var theme: Theme? { return nil } -} - -extension UILabel { - override func applyTheme(_ theme: Theme) { - super.applyTheme(theme) - textColor = theme.bodyText - } -} - -extension UISearchBar { - override func applyTheme(_ theme: Theme) { - super.applyTheme(theme) - barStyle = .black - tintColor = theme.hyperlinkText - keyboardAppearance = .dark - } -} - -// TODO: The add/insertSubview methods should not be overridden for UICollectionView, -// but rather for a subclass of the same. -extension UICollectionView { - override var theme: Theme? { return superview?.theme } - - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - if let theme = theme { - view.applyTheme(theme) - } - } - - open override func addSubview(_ view: UIView) { - super.addSubview(view) - if let theme = theme { - view.applyTheme(theme) - } - } -} - -extension SLKTextView { - override func applyTheme(_ theme: Theme) { - super.applyTheme(theme) - self.textColor = theme.bodyText - self.layer.borderColor = theme.mutedAccent.cgColor - self.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.04910321301) - } -} - -extension UITextView { - override func applyTheme(_ theme: Theme) { - super.applyTheme(theme) - self.tintColor = theme.hyperlinkText - } -} - -extension UINavigationBar { - override var theme: Theme? { return AppDelegate.theme } - - override func applyTheme(_ theme: Theme) { - super.applyTheme(theme) - self.subviews.forEach { $0.applyTheme(theme) } - self.barTintColor = theme.backgroundColor - self.tintColor = theme.bodyText - } - - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - if let theme = theme { - view.applyTheme(theme) - } - } -} - -extension UIToolbar { - override var theme: Theme? { return AppDelegate.theme } - - override func applyTheme(_ theme: Theme) { - super.applyTheme(theme) - self.isTranslucent = false - self.barTintColor = theme.focusedBackground - self.tintColor = theme.tintColor - self.barStyle = .black - } - - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - if let theme = theme { - view.applyTheme(theme) - } - } -} - -extension UITabBar { - override var theme: Theme? { return AppDelegate.theme } - - override func applyTheme(_ theme: Theme) { - super.applyTheme(theme) - self.barTintColor = theme.focusedBackground - self.tintColor = theme.tintColor - self.barStyle = .black - } - - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - if let theme = theme { - view.applyTheme(theme) - } - } -} - -extension SLKTextInputbar { - override var theme: Theme? { return AppDelegate.theme } - - override func applyTheme(_ theme: Theme) { - super.applyTheme(theme) - textView.keyboardAppearance = .dark - } - - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - if let theme = theme { - view.applyTheme(theme) - } - } -} diff --git a/Rocket.Chat/Views/Chat/ChatView.swift b/Rocket.Chat/Views/Chat/ChatView.swift index e887032c74..b77738633f 100644 --- a/Rocket.Chat/Views/Chat/ChatView.swift +++ b/Rocket.Chat/Views/Chat/ChatView.swift @@ -9,5 +9,5 @@ import UIKit class ChatView: UIView { - override var theme: Theme? { return AppDelegate.theme } + override var theme: Theme? { return ThemeManager.theme } } From a4a732060db1e809a1946bccfc281d9ba278f336 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Sat, 28 Apr 2018 13:05:36 +0530 Subject: [PATCH 016/124] Themes added --- .../Controllers/Chat/ChatViewController.swift | 2 +- .../NotificationViewController.swift | 1 + .../Helpers/MessageTextFontAttributes.swift | 2 +- Rocket.Chat/Managers/ThemeManager.swift | 17 +++++------ Rocket.Chat/Themeable.swift | 28 ++++++++++++++++++- Rocket.Chat/Views/Avatar/AvatarView.swift | 1 + .../Cells/Chat/ChatMessageDaySeparator.swift | 1 - .../Cells/Chat/ChatMessageTextView.swift | 1 + .../Views/Cells/Chat/ChatMessageURLView.swift | 1 + Rocket.Chat/Views/Chat/ChatTitleView.swift | 6 ++++ Rocket.Chat/Views/Chat/ChatTitleView.xib | 6 ++-- 11 files changed, 51 insertions(+), 15 deletions(-) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index 7c030fbefe..3dfeb2dcd8 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -210,7 +210,7 @@ final class ChatViewController: SLKTextViewController { } setupReplyView() - view.applyTheme(Theme.dark) + view.applyTheme(ThemeManager.theme) } override func viewWillAppear(_ animated: Bool) { diff --git a/Rocket.Chat/Controllers/Notification/NotificationViewController.swift b/Rocket.Chat/Controllers/Notification/NotificationViewController.swift index b7138a00f8..9671496793 100644 --- a/Rocket.Chat/Controllers/Notification/NotificationViewController.swift +++ b/Rocket.Chat/Controllers/Notification/NotificationViewController.swift @@ -50,6 +50,7 @@ final class NotificationViewController: UIViewController { // TODO: This does not belong here override var preferredStatusBarStyle: UIStatusBarStyle { + UIApplication.shared.delegate?.window??.rootViewController?.presentedViewController return UIApplication.shared.delegate?.window??.rootViewController?.preferredStatusBarStyle ?? .default } diff --git a/Rocket.Chat/Helpers/MessageTextFontAttributes.swift b/Rocket.Chat/Helpers/MessageTextFontAttributes.swift index f879fc639b..b97f7cd17b 100644 --- a/Rocket.Chat/Helpers/MessageTextFontAttributes.swift +++ b/Rocket.Chat/Helpers/MessageTextFontAttributes.swift @@ -20,7 +20,7 @@ struct MessageTextFontAttributes { return ThemeManager.theme.auxiliaryText } //UIColor.lightGray static var failedFontColor: UIColor { - return ThemeManager.theme.auxiliaryBackground + return ThemeManager.theme.auxiliaryText } //UIColor.lightGray static let defaultFont = UIFont.systemFont(ofSize: defaultFontSize) diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift index 7a66f69d4e..fb8dec88b8 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -10,7 +10,7 @@ import Foundation import SlackTextViewController struct ThemeManager { - static let theme = Theme.dark + static let theme = Theme.light } @objc protocol Themeable { @@ -39,7 +39,7 @@ extension UISearchBar { super.applyTheme(theme) barStyle = .black tintColor = theme.hyperlinkText - keyboardAppearance = .dark + keyboardAppearance = .light } } @@ -63,8 +63,8 @@ extension SLKTextView { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) self.textColor = theme.bodyText - self.layer.borderColor = theme.mutedAccent.cgColor - self.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.04910321301) + self.layer.borderColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.1518210827) + self.backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) } } @@ -81,8 +81,9 @@ extension UINavigationBar { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) self.subviews.forEach { $0.applyTheme(theme) } - self.barTintColor = theme.backgroundColor + self.barTintColor = theme.focusedBackground self.tintColor = theme.bodyText + self.barStyle = .default } open override func insertSubview(_ view: UIView, at index: Int) { @@ -101,7 +102,7 @@ extension UIToolbar { self.isTranslucent = false self.barTintColor = theme.focusedBackground self.tintColor = theme.tintColor - self.barStyle = .black + self.barStyle = .default } open override func insertSubview(_ view: UIView, at index: Int) { @@ -119,7 +120,7 @@ extension UITabBar { super.applyTheme(theme) self.barTintColor = theme.focusedBackground self.tintColor = theme.tintColor - self.barStyle = .black + self.barStyle = .default } open override func insertSubview(_ view: UIView, at index: Int) { @@ -135,7 +136,7 @@ extension SLKTextInputbar { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) - textView.keyboardAppearance = .dark + textView.keyboardAppearance = .default } open override func insertSubview(_ view: UIView, at index: Int) { diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index e479abb0cf..f0fa33e0a3 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -34,7 +34,7 @@ class Theme: NSObject { if let mutedAccent = mutedAccent { self.mutedAccent = mutedAccent } else { - self.mutedAccent = #colorLiteral(red: 0.9953911901, green: 0.9881951213, blue: 1, alpha: 0.3031745158) + self.mutedAccent = #colorLiteral(red: 0.4910559654, green: 0.4938107133, blue: 0.500592351, alpha: 0.1020851672) } if let strongAccent = strongAccent { @@ -44,6 +44,19 @@ class Theme: NSObject { } } + static let light = Theme( + backgroundColor: #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1), + titleText: #colorLiteral(red: 0.2, green: 0.2, blue: 0.2, alpha: 1), + bodyText: .darkGray, + auxiliaryText: .lightGray, + hyperlinkText: #colorLiteral(red: 0, green: 0.4784313725, blue: 1, alpha: 1), + tintColor: .black, + focusedBackground: #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1), + auxiliaryBackground: #colorLiteral(red: 0, green: 0.1019607843, blue: 0.3254901961, alpha: 1), + mutedAccent: nil, + strongAccent: nil + ) + static let dark = Theme( backgroundColor: #colorLiteral(red: 0.1215686275, green: 0.1215686275, blue: 0.1215686275, alpha: 1), titleText: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), @@ -56,4 +69,17 @@ class Theme: NSObject { mutedAccent: nil, strongAccent: nil ) + + static let black = Theme( + backgroundColor: #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1), + titleText: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), + bodyText: #colorLiteral(red: 0.9294117647, green: 0.9294117647, blue: 0.9294117647, alpha: 1), + auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.6980392157, blue: 0.6980392157, alpha: 1), + hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), + tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), + focusedBackground: #colorLiteral(red: 0.04620946944, green: 0.04620946944, blue: 0.04620946944, alpha: 1), + auxiliaryBackground: #colorLiteral(red: 0, green: 0.1019607843, blue: 0.3254901961, alpha: 1), + mutedAccent: nil, + strongAccent: nil + ) } diff --git a/Rocket.Chat/Views/Avatar/AvatarView.swift b/Rocket.Chat/Views/Avatar/AvatarView.swift index 69eae7b7e8..c353ece362 100644 --- a/Rocket.Chat/Views/Avatar/AvatarView.swift +++ b/Rocket.Chat/Views/Avatar/AvatarView.swift @@ -176,5 +176,6 @@ final class AvatarView: UIView { extension AvatarView { override func applyTheme(_ theme: Theme) { self.subviews.forEach { $0.applyTheme(theme) } + labelInitials.textColor = .white } } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift index 32305e1a69..4d244d83ef 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift @@ -20,6 +20,5 @@ extension ChatMessageDaySeparator { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) seperatorLine.backgroundColor = theme.mutedAccent - labelTitle.textColor = theme.auxiliaryText } } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift index 40959710a7..1f700e64c9 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift @@ -130,5 +130,6 @@ extension ChatMessageTextView { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) viewLeftBorder.backgroundColor = theme.auxiliaryText + labelDescription.textColor = theme.auxiliaryText } } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.swift index db11baf764..8358e0690d 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageURLView.swift @@ -68,5 +68,6 @@ extension ChatMessageURLView { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) viewLeftBorder.backgroundColor = theme.auxiliaryText + labelURLDescription.textColor = theme.auxiliaryText } } diff --git a/Rocket.Chat/Views/Chat/ChatTitleView.swift b/Rocket.Chat/Views/Chat/ChatTitleView.swift index 65f998d91f..21ad2f4cb7 100644 --- a/Rocket.Chat/Views/Chat/ChatTitleView.swift +++ b/Rocket.Chat/Views/Chat/ChatTitleView.swift @@ -40,5 +40,11 @@ final class ChatTitleView: UIView { icon.tintColor = viewModel.iconColor } } +} +extension ChatTitleView { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + labelTitle.textColor = theme.titleText + } } diff --git a/Rocket.Chat/Views/Chat/ChatTitleView.xib b/Rocket.Chat/Views/Chat/ChatTitleView.xib index 2287662f37..3a65432e05 100644 --- a/Rocket.Chat/Views/Chat/ChatTitleView.xib +++ b/Rocket.Chat/Views/Chat/ChatTitleView.xib @@ -1,11 +1,11 @@ - + - + @@ -39,7 +39,7 @@ - + From 16a347cf3714e361c3110a52cb97444efb5c0780 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Sun, 29 Apr 2018 07:26:33 +0530 Subject: [PATCH 017/124] Theme observer added --- .../Chat/ChatControllerMessageActions.swift | 2 +- .../Controllers/Chat/ChatViewController.swift | 14 ++++++--- .../Views/Reaction/ReactionView.swift | 25 +++++++++++++--- Rocket.Chat/Managers/ThemeManager.swift | 29 ++++++++++++++----- .../Arrow Down.imageset/Contents.json | 3 ++ Rocket.Chat/Storyboards/Chat.storyboard | 21 ++++++++++---- Rocket.Chat/Themeable.swift | 28 +++++++++++++----- .../Views/Cells/Chat/ChatMessageCell.swift | 8 ++--- Rocket.Chat/Views/Chat/ChatView.swift | 10 +++++++ 9 files changed, 108 insertions(+), 32 deletions(-) diff --git a/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift b/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift index 481dc5878d..2d41b99d8a 100644 --- a/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift +++ b/Rocket.Chat/Controllers/Chat/ChatControllerMessageActions.swift @@ -192,7 +192,7 @@ extension ChatViewController { } controller.customEmojis = CustomEmoji.emojis() - controller.view.applyTheme(ThemeManager.theme) + ThemeManager.addObserver(controller.view) if UIDevice.current.userInterfaceIdiom == .phone { self.navigationController?.pushViewController(controller, animated: true) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index 3dfeb2dcd8..30504110ee 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -15,6 +15,13 @@ private let kEmptyCellIdentifier = "kEmptyCellIdentifier" // swiftlint:disable file_length type_body_length final class ChatViewController: SLKTextViewController { + @IBAction func changeTheme(_ sender: Any) { + if ThemeManager.theme == .light { + ThemeManager.theme = .dark + } else { + ThemeManager.theme = .light + } + } var activityIndicator: LoaderView! @IBOutlet weak var activityIndicatorContainer: UIView! { @@ -170,7 +177,7 @@ final class ChatViewController: SLKTextViewController { override func viewDidLoad() { super.viewDidLoad() navigationController?.navigationBar.isTranslucent = false - navigationController?.navigationBar.applyTheme(ThemeManager.theme) + ThemeManager.addObserver(navigationController?.navigationBar) setNeedsStatusBarAppearanceUpdate() collectionView?.isPrefetchingEnabled = true @@ -210,7 +217,7 @@ final class ChatViewController: SLKTextViewController { } setupReplyView() - view.applyTheme(ThemeManager.theme) + ThemeManager.addObserver(view) } override func viewWillAppear(_ animated: Bool) { @@ -275,7 +282,7 @@ final class ChatViewController: SLKTextViewController { let view = ChatTitleView.instantiateFromNib() self.navigationItem.titleView = view chatTitleView = view - view?.applyTheme(ThemeManager.theme) + ThemeManager.addObserver(chatTitleView) let gesture = UITapGestureRecognizer(target: self, action: #selector(chatTitleViewDidPressed)) chatTitleView?.addGestureRecognizer(gesture) @@ -283,7 +290,6 @@ final class ChatViewController: SLKTextViewController { private func setupScrollToBottomButton() { buttonScrollToBottom.layer.cornerRadius = 25 - buttonScrollToBottom.layer.borderColor = UIColor.lightGray.cgColor buttonScrollToBottom.layer.borderWidth = 1 } diff --git a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift index 6ec39a95c2..2755987894 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift @@ -54,10 +54,9 @@ final class ReactionView: UIView { countLabel.text = model.count - let colors = model.highlight ? (#colorLiteral(red: 0.3098039216, green: 0.6901960784, blue: 0.9882352941, alpha: 1), #colorLiteral(red: 0.7411764706, green: 0.8823529412, blue: 0.9960784314, alpha: 1), #colorLiteral(red: 0.9529411765, green: 0.9764705882, blue: 1, alpha: 1)) : (#colorLiteral(red: 0.6666666667, green: 0.6666666667, blue: 0.6666666667, alpha: 1), #colorLiteral(red: 0.9058823529, green: 0.9058823529, blue: 0.9058823529, alpha: 1), #colorLiteral(red: 0.9882352941, green: 0.9882352941, blue: 0.9882352941, alpha: 1)) - countLabel.textColor = colors.0 - contentView.layer.borderColor = colors.1.cgColor - contentView.backgroundColor = colors.2 + if let theme = theme { + self.applyTheme(theme) + } } override init(frame: CGRect) { @@ -103,3 +102,21 @@ extension ReactionView { } } } + +extension ReactionView { + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + + let colors: (UIColor, UIColor, UIColor) = { + if theme == .light { + return model.highlight ? (#colorLiteral(red: 0, green: 0.56, blue: 0.9882352941, alpha: 0.69), #colorLiteral(red: 0, green: 0.5516742082, blue: 0.9960784314, alpha: 0.26), #colorLiteral(red: 0, green: 0.4999999989, blue: 1, alpha: 0.05)) : (#colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.33), #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.09), #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.01)) + } else { + return model.highlight ? (#colorLiteral(red: 0, green: 0.56, blue: 0.9882352941, alpha: 0.69), #colorLiteral(red: 0, green: 0.5516742082, blue: 0.9960784314, alpha: 0.26), #colorLiteral(red: 0, green: 0.4999999989, blue: 1, alpha: 0.05)) : (#colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.33), #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.09), #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.01)) + } + }() + + countLabel.textColor = colors.0 + contentView.layer.borderColor = colors.1.cgColor + contentView.backgroundColor = colors.2 + } +} diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift index fb8dec88b8..73481f1eb0 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -10,7 +10,22 @@ import Foundation import SlackTextViewController struct ThemeManager { - static let theme = Theme.light + static var theme = Theme.dark { + didSet { + UIView.animate(withDuration: 0.3) { + observers.forEach { $0?.applyTheme(theme) } + } + } + } + + static var observers = [Themeable?]() + static func addObserver(_ observer: Themeable?) { + observers = observers.compactMap { $0 } + guard let observer = observer else { return } + observer.applyTheme(ThemeManager.theme) + weak var weakObserver = observer + observers.append(weakObserver) + } } @objc protocol Themeable { @@ -21,7 +36,7 @@ struct ThemeManager { extension UIView: Themeable { func applyTheme(_ theme: Theme) { backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) - subviews.forEach { $0.applyTheme(theme) } + self.subviews.forEach { $0.applyTheme(theme) } } var theme: Theme? { return superview?.theme } @@ -37,7 +52,7 @@ extension UILabel { extension UISearchBar { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) - barStyle = .black + barStyle = theme.appearence.barStyle tintColor = theme.hyperlinkText keyboardAppearance = .light } @@ -83,7 +98,7 @@ extension UINavigationBar { self.subviews.forEach { $0.applyTheme(theme) } self.barTintColor = theme.focusedBackground self.tintColor = theme.bodyText - self.barStyle = .default + self.barStyle = theme.appearence.barStyle } open override func insertSubview(_ view: UIView, at index: Int) { @@ -102,7 +117,7 @@ extension UIToolbar { self.isTranslucent = false self.barTintColor = theme.focusedBackground self.tintColor = theme.tintColor - self.barStyle = .default + self.barStyle = theme.appearence.barStyle } open override func insertSubview(_ view: UIView, at index: Int) { @@ -120,7 +135,7 @@ extension UITabBar { super.applyTheme(theme) self.barTintColor = theme.focusedBackground self.tintColor = theme.tintColor - self.barStyle = .default + self.barStyle = theme.appearence.barStyle } open override func insertSubview(_ view: UIView, at index: Int) { @@ -136,7 +151,7 @@ extension SLKTextInputbar { override func applyTheme(_ theme: Theme) { super.applyTheme(theme) - textView.keyboardAppearance = .default + textView.keyboardAppearance = theme.appearence.keyboardAppearence } open override func insertSubview(_ view: UIView, at index: Int) { diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Arrow Down.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Arrow Down.imageset/Contents.json index 978f15e572..63c4cb2312 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Arrow Down.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Arrow Down.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Storyboards/Chat.storyboard b/Rocket.Chat/Storyboards/Chat.storyboard index b6f0f0bb68..50895c103a 100644 --- a/Rocket.Chat/Storyboards/Chat.storyboard +++ b/Rocket.Chat/Storyboards/Chat.storyboard @@ -7,6 +7,7 @@ + @@ -55,14 +56,24 @@ + + + - - - - - + + + + + + + + + + + + diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index f0fa33e0a3..642f7168db 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -20,8 +20,17 @@ class Theme: NSObject { let auxiliaryBackground: UIColor let mutedAccent: UIColor let strongAccent: UIColor + let appearence: Appearence - init(backgroundColor: UIColor, titleText: UIColor, bodyText: UIColor, auxiliaryText: UIColor, hyperlinkText: UIColor, tintColor: UIColor, focusedBackground: UIColor, auxiliaryBackground: UIColor, mutedAccent: UIColor?, strongAccent: UIColor?) { + struct Appearence { + let barStyle: UIBarStyle + let keyboardAppearence: UIKeyboardAppearance + + static let dark = Appearence(barStyle: .black, keyboardAppearence: .dark) + static let light = Appearence(barStyle: .default, keyboardAppearence: .default) + } + + init(backgroundColor: UIColor, titleText: UIColor, bodyText: UIColor, auxiliaryText: UIColor, hyperlinkText: UIColor, tintColor: UIColor, focusedBackground: UIColor, auxiliaryBackground: UIColor, mutedAccent: UIColor?, strongAccent: UIColor?, appearence: Appearence) { self.backgroundColor = backgroundColor self.titleText = titleText self.bodyText = bodyText @@ -42,6 +51,8 @@ class Theme: NSObject { } else { self.strongAccent = #colorLiteral(red: 0.9720572829, green: 0.3783821166, blue: 0.446572125, alpha: 1) } + + self.appearence = appearence } static let light = Theme( @@ -52,9 +63,10 @@ class Theme: NSObject { hyperlinkText: #colorLiteral(red: 0, green: 0.4784313725, blue: 1, alpha: 1), tintColor: .black, focusedBackground: #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1), - auxiliaryBackground: #colorLiteral(red: 0, green: 0.1019607843, blue: 0.3254901961, alpha: 1), + auxiliaryBackground: #colorLiteral(red: 0.03921568627, green: 0.2666666667, blue: 0.4117647059, alpha: 1), mutedAccent: nil, - strongAccent: nil + strongAccent: nil, + appearence: .light ) static let dark = Theme( @@ -65,9 +77,10 @@ class Theme: NSObject { hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), focusedBackground: #colorLiteral(red: 0.1433121264, green: 0.1433121264, blue: 0.1433121264, alpha: 1), - auxiliaryBackground: #colorLiteral(red: 0, green: 0.1019607843, blue: 0.3254901961, alpha: 1), + auxiliaryBackground: #colorLiteral(red: 0.9999960065, green: 1, blue: 1, alpha: 1), mutedAccent: nil, - strongAccent: nil + strongAccent: nil, + appearence: .dark ) static let black = Theme( @@ -78,8 +91,9 @@ class Theme: NSObject { hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), focusedBackground: #colorLiteral(red: 0.04620946944, green: 0.04620946944, blue: 0.04620946944, alpha: 1), - auxiliaryBackground: #colorLiteral(red: 0, green: 0.1019607843, blue: 0.3254901961, alpha: 1), + auxiliaryBackground: #colorLiteral(red: 0.921431005, green: 0.9214526415, blue: 0.9214410186, alpha: 1), mutedAccent: nil, - strongAccent: nil + strongAccent: nil, + appearence: .dark ) } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift index bdab58502d..e80f1d0951 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift @@ -249,10 +249,10 @@ final class ChatMessageCell: UICollectionViewCell { if let text = MessageTextCacheManager.shared.message(for: message) { if message.temporary { text.setFontColor(MessageTextFontAttributes.systemFontColor) - } - - if message.failed { + } else if message.failed { text.setFontColor(MessageTextFontAttributes.failedFontColor) + } else { + text.setFontColor(MessageTextFontAttributes.defaultFontColor) } labelText.message = text @@ -348,7 +348,6 @@ extension ChatMessageCell { return total } - } // MARK: Reactions @@ -396,5 +395,6 @@ extension ChatMessageCell { super.applyTheme(theme) labelDate.textColor = theme.auxiliaryText labelUsername.textColor = theme.titleText + updateMessageContent() } } diff --git a/Rocket.Chat/Views/Chat/ChatView.swift b/Rocket.Chat/Views/Chat/ChatView.swift index b77738633f..82c18998b8 100644 --- a/Rocket.Chat/Views/Chat/ChatView.swift +++ b/Rocket.Chat/Views/Chat/ChatView.swift @@ -9,5 +9,15 @@ import UIKit class ChatView: UIView { + @IBOutlet weak var scrollToBottomButton: UIButton! +} + +extension ChatView { override var theme: Theme? { return ThemeManager.theme } + + override func applyTheme(_ theme: Theme) { + super.applyTheme(theme) + scrollToBottomButton.tintColor = theme.titleText + scrollToBottomButton.layer.borderColor = theme.auxiliaryText.cgColor + } } From 21f530e7fdf5d4ed997c5ba4c19acf9f442ea998 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Sun, 29 Apr 2018 11:52:56 +0530 Subject: [PATCH 018/124] Fix project files --- Rocket.Chat.xcodeproj/project.pbxproj | 30 ++++++++++++------- .../NotificationViewController.swift | 1 - 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index a60db99373..5fafbb9190 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -101,6 +101,11 @@ 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8B920926E5700EEA225 /* ChatView.swift */; }; 3370D8BC2093570D00EEA225 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BB2093570D00EEA225 /* ThemeManager.swift */; }; + 3370D8BE2095978800EEA225 /* UserActionSheetPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */; }; + 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */; }; + 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C12095995800EEA225 /* StarMessageRequest.swift */; }; + 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */; }; + 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */; }; 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; @@ -753,6 +758,11 @@ 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; 3370D8B920926E5700EEA225 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; }; 3370D8BB2093570D00EEA225 /* ThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManager.swift; sourceTree = ""; }; + 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserActionSheetPresenter.swift; sourceTree = ""; }; + 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessage.swift; sourceTree = ""; }; + 3370D8C12095995800EEA225 /* StarMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequest.swift; sourceTree = ""; }; + 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequestSpec.swift; sourceTree = ""; }; + 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessageSpec.swift; sourceTree = ""; }; 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; @@ -2444,12 +2454,12 @@ children = ( 806728FE20079734009FE94D /* DeleteMessageRequest.swift */, 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */, - 80D41DFC2092378400034D1F /* StarMessageRequest.swift */, 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */, 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */, 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */, 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */, 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */, + 3370D8C12095995800EEA225 /* StarMessageRequest.swift */, ); path = Message; sourceTree = ""; @@ -2460,9 +2470,9 @@ 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */, 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */, 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */, - 80D41E00209248F800034D1F /* StarMessageRequestSpec.swift */, 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */, 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */, + 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */, ); path = Message; sourceTree = ""; @@ -2475,7 +2485,7 @@ 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */, 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */, 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */, - 80D41DFE20923AA600034D1F /* AuthCanStarMessage.swift */, + 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */, 8076FDB42048571200114F28 /* AuthUser.swift */, ); path = Auth; @@ -2685,7 +2695,7 @@ 80D41DFB2092152A00034D1F /* ActionSheets */ = { isa = PBXGroup; children = ( - 80D41DF92092147300034D1F /* UserActionSheetPresenter.swift */, + 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */, ); path = ActionSheets; sourceTree = ""; @@ -2693,8 +2703,8 @@ 80D41E0320924A6500034D1F /* Auth */ = { isa = PBXGroup; children = ( + 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */, 416133391D46E0A200E09DA2 /* AuthSpec.swift */, - 80D41E0420924A8200034D1F /* AuthCanStarMessageSpec.swift */, ); path = Auth; sourceTree = ""; @@ -3643,6 +3653,7 @@ 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */, 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */, 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */, + 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */, 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, 4199A9891DABCC570035F820 /* Emojione.swift in Sources */, 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */, @@ -3656,7 +3667,6 @@ 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, - 80D41DFF20923AA600034D1F /* AuthCanStarMessage.swift in Sources */, 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */, 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */, 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */, @@ -3688,6 +3698,7 @@ 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */, 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */, 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */, + 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */, 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */, 99DBB8742090360600382DB2 /* MessagesListControllerSearch.swift in Sources */, 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */, @@ -3728,6 +3739,7 @@ 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */, 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */, 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */, + 3370D8BE2095978800EEA225 /* UserActionSheetPresenter.swift in Sources */, 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */, 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */, 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */, @@ -3766,7 +3778,6 @@ 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */, 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */, 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */, - 80D41DFD2092378400034D1F /* StarMessageRequest.swift in Sources */, 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */, 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */, 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */, @@ -3825,7 +3836,6 @@ 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */, 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */, 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */, - 80D41DFA2092147300034D1F /* UserActionSheetPresenter.swift in Sources */, 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, @@ -3910,7 +3920,7 @@ 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */, 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */, 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */, - 80D41E0520924A8200034D1F /* AuthCanStarMessageSpec.swift in Sources */, + 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */, 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */, 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */, 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */, @@ -3948,7 +3958,7 @@ 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */, 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */, 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */, - 80D41E01209248F800034D1F /* StarMessageRequestSpec.swift in Sources */, + 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */, 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */, 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */, 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */, diff --git a/Rocket.Chat/Controllers/Notification/NotificationViewController.swift b/Rocket.Chat/Controllers/Notification/NotificationViewController.swift index 9671496793..b7138a00f8 100644 --- a/Rocket.Chat/Controllers/Notification/NotificationViewController.swift +++ b/Rocket.Chat/Controllers/Notification/NotificationViewController.swift @@ -50,7 +50,6 @@ final class NotificationViewController: UIViewController { // TODO: This does not belong here override var preferredStatusBarStyle: UIStatusBarStyle { - UIApplication.shared.delegate?.window??.rootViewController?.presentedViewController return UIApplication.shared.delegate?.window??.rootViewController?.preferredStatusBarStyle ?? .default } From 52bdfdf28819c455aafb67e9faa71219031238d3 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Sun, 29 Apr 2018 13:03:29 +0530 Subject: [PATCH 019/124] Messsage font colors now update on theme change --- Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift | 8 +++----- .../Views/Cells/Chat/ChatMessageDaySeparator.xib | 10 +++++++++- .../Views/Cells/Chat/ChatMessageUnreadSeparator.xib | 10 +++++++++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift index ffbc2992ac..0ee7ed7f7b 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageCell.swift @@ -245,14 +245,12 @@ final class ChatMessageCell: UICollectionViewCell { } } - fileprivate func updateMessageContent() { - if let text = MessageTextCacheManager.shared.message(for: message) { + fileprivate func updateMessageContent(force: Bool = false) { + if let text = force ? MessageTextCacheManager.shared.update(for: message) : MessageTextCacheManager.shared.message(for: message) { if message.temporary { text.setFontColor(MessageTextFontAttributes.systemFontColor) } else if message.failed { text.setFontColor(MessageTextFontAttributes.failedFontColor) - } else { - text.setFontColor(MessageTextFontAttributes.defaultFontColor) } labelText.message = text @@ -395,6 +393,6 @@ extension ChatMessageCell { super.applyTheme(theme) labelDate.textColor = theme.auxiliaryText labelUsername.textColor = theme.titleText - updateMessageContent() + updateMessageContent(force: true) } } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.xib b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.xib index ebf7221bea..d127467a87 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.xib +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.xib @@ -25,9 +25,13 @@ + + + + diff --git a/Rocket.Chat/Views/Chat/RCTextView.swift b/Rocket.Chat/Views/Chat/RCTextView.swift index 88d20f48bb..03e0fc76a0 100644 --- a/Rocket.Chat/Views/Chat/RCTextView.swift +++ b/Rocket.Chat/Views/Chat/RCTextView.swift @@ -171,3 +171,11 @@ extension RCTextView: UITextViewDelegate { return false } } + +extension RCTextView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + customEmojiViews.forEach { $0.backgroundColor = theme.backgroundColor } + } +} diff --git a/Rocket.Chat/Views/Notification/TransparentToTouchesWindow.swift b/Rocket.Chat/Views/Notification/TransparentToTouchesWindow.swift index b8dea88efd..896a5565bc 100644 --- a/Rocket.Chat/Views/Notification/TransparentToTouchesWindow.swift +++ b/Rocket.Chat/Views/Notification/TransparentToTouchesWindow.swift @@ -21,4 +21,45 @@ class TransparentToTouchesWindow: UIWindow { return nil } + override init(frame: CGRect) { + super.init(frame: frame) + let originalSelector = #selector(UIViewController.setNeedsStatusBarAppearanceUpdate) + let swizzledSelector = #selector(UIViewController.swizzled_setNeedsStatusBarAppearanceUpdate) + + guard + let originalMethod = class_getInstanceMethod(UIViewController.self, originalSelector), + let swizzledMethod = class_getInstanceMethod(UIViewController.self, swizzledSelector) + else { + return + } + + let didAddMethod = class_addMethod( + UIViewController.self, + originalSelector, + method_getImplementation(swizzledMethod), + method_getTypeEncoding(swizzledMethod) + ) + + if didAddMethod { + class_replaceMethod( + UIViewController.self, + swizzledSelector, + method_getImplementation(originalMethod), + method_getTypeEncoding(originalMethod) + ) + } else { + method_exchangeImplementations(originalMethod, swizzledMethod) + } + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} + +extension UIViewController { + @objc func swizzled_setNeedsStatusBarAppearanceUpdate() { + self.swizzled_setNeedsStatusBarAppearanceUpdate() + (UIApplication.shared.delegate as? AppDelegate)?.notificationWindow?.rootViewController?.swizzled_setNeedsStatusBarAppearanceUpdate() + } } diff --git a/Rocket.Chat/Views/Themeable/NotThemeableView.swift b/Rocket.Chat/Views/Themeable/NotThemeableView.swift new file mode 100644 index 0000000000..cf6c271628 --- /dev/null +++ b/Rocket.Chat/Views/Themeable/NotThemeableView.swift @@ -0,0 +1,13 @@ +// +// NotThemeableView.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 4/29/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class NotThemeableView: UIView { + override var theme: Theme? { return nil } +} From a9f35d309377f376b1c8bee2af957866630a2cba Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 30 Apr 2018 04:04:41 +0530 Subject: [PATCH 024/124] Preferences themed --- .../Controllers/Base/BaseViewController.swift | 27 +++++++++++++------ .../ChangeAppIconViewController.swift | 2 +- .../Language/LanguageViewController.swift | 2 +- .../PreferencesViewController.swift | 2 +- .../EditProfileTableViewController.swift | 2 +- .../NewPasswordTableViewController.swift | 2 +- .../WebBrowserTableViewController.swift | 2 +- Rocket.Chat/Managers/ThemeManager.swift | 8 ++++++ .../Views/Cells/Chat/Info/MemberCell.xib | 8 +++--- 9 files changed, 37 insertions(+), 18 deletions(-) diff --git a/Rocket.Chat/Controllers/Base/BaseViewController.swift b/Rocket.Chat/Controllers/Base/BaseViewController.swift index 0fe78af594..48823f6f52 100644 --- a/Rocket.Chat/Controllers/Base/BaseViewController.swift +++ b/Rocket.Chat/Controllers/Base/BaseViewController.swift @@ -8,17 +8,28 @@ import UIKit +// swiftlint:disable private_over_fileprivate +fileprivate func baseViewDidLoad(controller: UIViewController) { + ThemeManager.addObserver(controller) + + controller.navigationItem.backBarButtonItem = UIBarButtonItem( + title: "", + style: .plain, + target: nil, + action: nil + ) +} + class BaseViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() + baseViewDidLoad(controller: self) + } +} - ThemeManager.addObserver(self) - - self.navigationItem.backBarButtonItem = UIBarButtonItem( - title: "", - style: .plain, - target: nil, - action: nil - ) +class BaseTableViewController: UITableViewController { + override func viewDidLoad() { + super.viewDidLoad() + baseViewDidLoad(controller: self) } } diff --git a/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconViewController.swift b/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconViewController.swift index 923a6e2fd1..53f75b0642 100644 --- a/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconViewController.swift +++ b/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconViewController.swift @@ -8,7 +8,7 @@ import UIKit -final class ChangeAppIconViewController: UIViewController { +final class ChangeAppIconViewController: BaseViewController { private let viewModel = ChangeAppIconViewModel() diff --git a/Rocket.Chat/Controllers/Preferences/Language/LanguageViewController.swift b/Rocket.Chat/Controllers/Preferences/Language/LanguageViewController.swift index d915b2b0a4..b29fdc682e 100644 --- a/Rocket.Chat/Controllers/Preferences/Language/LanguageViewController.swift +++ b/Rocket.Chat/Controllers/Preferences/Language/LanguageViewController.swift @@ -8,7 +8,7 @@ import UIKit -final class LanguageViewController: UIViewController { +final class LanguageViewController: BaseViewController { private let viewModel = LanguageViewModel() private let kAppLanguagesKey = "AppleLanguages" diff --git a/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift b/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift index 3a1583f0eb..257ad3c91c 100644 --- a/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift +++ b/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift @@ -14,7 +14,7 @@ import SafariServices import FLEX #endif -final class PreferencesViewController: UITableViewController { +final class PreferencesViewController: BaseTableViewController { private let kSectionProfile = 0 private let kSectionSettings = 1 diff --git a/Rocket.Chat/Controllers/Preferences/Profile/EditProfileTableViewController.swift b/Rocket.Chat/Controllers/Preferences/Profile/EditProfileTableViewController.swift index ef689b840b..c7565b7ada 100644 --- a/Rocket.Chat/Controllers/Preferences/Profile/EditProfileTableViewController.swift +++ b/Rocket.Chat/Controllers/Preferences/Profile/EditProfileTableViewController.swift @@ -11,7 +11,7 @@ import MBProgressHUD import SwiftyJSON // swiftlint:disable file_length type_body_length -class EditProfileTableViewController: UITableViewController, MediaPicker { +class EditProfileTableViewController: BaseTableViewController, MediaPicker { static let identifier = String(describing: EditProfileTableViewController.self) diff --git a/Rocket.Chat/Controllers/Preferences/Profile/NewPasswordTableViewController.swift b/Rocket.Chat/Controllers/Preferences/Profile/NewPasswordTableViewController.swift index 402954fad1..1207eb5c73 100644 --- a/Rocket.Chat/Controllers/Preferences/Profile/NewPasswordTableViewController.swift +++ b/Rocket.Chat/Controllers/Preferences/Profile/NewPasswordTableViewController.swift @@ -9,7 +9,7 @@ import UIKit import MBProgressHUD -class NewPasswordTableViewController: UITableViewController { +class NewPasswordTableViewController: BaseTableViewController { @IBOutlet weak var newPassword: UITextField! { didSet { diff --git a/Rocket.Chat/Controllers/Preferences/Web Browser/WebBrowserTableViewController.swift b/Rocket.Chat/Controllers/Preferences/Web Browser/WebBrowserTableViewController.swift index 9a67d44211..6da89545be 100644 --- a/Rocket.Chat/Controllers/Preferences/Web Browser/WebBrowserTableViewController.swift +++ b/Rocket.Chat/Controllers/Preferences/Web Browser/WebBrowserTableViewController.swift @@ -8,7 +8,7 @@ import UIKit -class WebBrowserTableViewController: UITableViewController { +class WebBrowserTableViewController: BaseTableViewController { let viewModel = WebBrowserViewModel() var updateDefaultWebBrowser: (() -> Void)? diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift index c095adfdd9..91d4b074de 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -54,6 +54,14 @@ extension UILabel { } } +extension UITextField { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + textColor = theme.titleText + } +} + extension UISearchBar { override func applyTheme() { super.applyTheme() diff --git a/Rocket.Chat/Views/Cells/Chat/Info/MemberCell.xib b/Rocket.Chat/Views/Cells/Chat/Info/MemberCell.xib index 622283e872..ff7e499c0e 100644 --- a/Rocket.Chat/Views/Cells/Chat/Info/MemberCell.xib +++ b/Rocket.Chat/Views/Cells/Chat/Info/MemberCell.xib @@ -1,11 +1,11 @@ - + - + @@ -16,10 +16,10 @@ - + - + From 060781f9c3579067255fec3ecbf38461238264cc Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 30 Apr 2018 10:33:25 +0530 Subject: [PATCH 025/124] Table view background corrected --- Rocket.Chat/Managers/ThemeManager.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift index 91d4b074de..2b075e161b 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -99,9 +99,9 @@ extension UITableView { super.applyTheme() guard let theme = theme else { return } if theme == .dark || theme == .black { - backgroundColor = theme.focusedBackground + backgroundColor = style == .grouped ? theme.focusedBackground : theme.backgroundColor } else { - backgroundColor = #colorLiteral(red: 0.937, green: 0.937, blue: 0.957, alpha: 1) + backgroundColor = style == .grouped ? #colorLiteral(red: 0.937, green: 0.937, blue: 0.957, alpha: 1) : theme.backgroundColor } separatorColor = theme.mutedAccent } From ab7b337f79436d2929f13bb29cd8e3a190cfdb1f Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 30 Apr 2018 10:43:40 +0530 Subject: [PATCH 026/124] Removed white background from custom emojis when used within messages --- Rocket.Chat/Views/Chat/RCTextView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Rocket.Chat/Views/Chat/RCTextView.swift b/Rocket.Chat/Views/Chat/RCTextView.swift index 03e0fc76a0..04c9c6b144 100644 --- a/Rocket.Chat/Views/Chat/RCTextView.swift +++ b/Rocket.Chat/Views/Chat/RCTextView.swift @@ -137,6 +137,7 @@ class HighlightLayoutManager: NSLayoutManager { textView.frame = bounds updateCustomEmojiViews() + applyTheme() } override func prepareForInterfaceBuilder() { From 18acd379e77455a0ac6fcac3a987bc3b8e865345 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 30 Apr 2018 13:29:23 +0530 Subject: [PATCH 027/124] Fixed status bar style for multiple windows --- .../TopTransparentViewController.swift | 51 ++++++++++++++++--- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/Rocket.Chat/Controllers/Notification/TopTransparentViewController.swift b/Rocket.Chat/Controllers/Notification/TopTransparentViewController.swift index c7969ae698..f3b66a725e 100644 --- a/Rocket.Chat/Controllers/Notification/TopTransparentViewController.swift +++ b/Rocket.Chat/Controllers/Notification/TopTransparentViewController.swift @@ -10,15 +10,54 @@ import UIKit class TopTransparentViewController: UIViewController { override var preferredStatusBarStyle: UIStatusBarStyle { - var topViewController = UIApplication.shared.delegate?.window??.rootViewController + guard + let transparentToTouchesWindow = UIApplication.shared.windows.first(where: { type(of: $0) == TransparentToTouchesWindow.self }), + let index = UIApplication.shared.windows.index(of: transparentToTouchesWindow), + let topInteractiveWindow = topInteractiveWindow(before: index), + let rootViewController = topInteractiveWindow.rootViewController + else { + return UIApplication.shared.keyWindow?.rootViewController?.preferredStatusBarStyle ?? .default + } + + return topViewController(for: rootViewController).preferredStatusBarStyle + } + + private func topViewController(for viewController: UIViewController) -> UIViewController { + if let visibleAfterTransitionViewController = viewController.transitionCoordinator?.viewController(forKey: .to) { + return visibleAfterTransitionViewController.navigationController ?? visibleAfterTransitionViewController + } + + if let presentedViewController = viewController.presentedViewController { + return topViewController(for: presentedViewController) + } - while let presentedViewController = topViewController?.presentedViewController, - let visibleAfterTransitionViewController = presentedViewController.transitionCoordinator?.viewController(forKey: .to), - visibleAfterTransitionViewController != topViewController { + return viewController + } - topViewController = topViewController?.presentedViewController + private func topInteractiveWindow(before index: Int) -> UIWindow? { + guard let window = UIApplication.shared.windows[safe: UIApplication.shared.windows.index(before: index)] else { return nil } + if type(of: window) == UIWindow.self { + return window + } else { + return topInteractiveWindow(before: index - 1) } + } + + override func viewDidLoad() { + super.viewDidLoad() + NotificationCenter.default.addObserver(self, selector: #selector(setNeedsStatusBarAppearanceUpdate), name: .UIWindowDidBecomeVisible, object: nil) + NotificationCenter.default.addObserver(self, selector: #selector(setNeedsStatusBarAppearanceUpdate), name: .UIWindowDidBecomeHidden, object: nil) + } + + deinit { + NotificationCenter.default.removeObserver(self) + } +} + +extension Collection { - return topViewController?.preferredStatusBarStyle ?? .default + /// Returns the element at the specified index only if, it is within bounds, otherwise returns nil. + subscript (safe index: Index) -> Element? { + return indices.contains(index) ? self[index] : nil } } From c8d8c701905354ed054106bcdaad26629469ce94 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 30 Apr 2018 16:38:27 +0530 Subject: [PATCH 028/124] New room view controller themed --- .../Controllers/Subscriptions/NewRoomViewController.swift | 2 ++ Rocket.Chat/Managers/ThemeManager.swift | 6 +++++- .../Icons/Subscriptions/Hashtag.imageset/Contents.json | 3 +++ .../Icons/Subscriptions/Mention.imageset/Contents.json | 3 +++ .../Views/Form/Cells/MentionsTextFieldTableViewCell.swift | 8 ++++++++ Rocket.Chat/Views/Form/Cells/TextFieldTableViewCell.swift | 8 ++++++++ 6 files changed, 29 insertions(+), 1 deletion(-) diff --git a/Rocket.Chat/Controllers/Subscriptions/NewRoomViewController.swift b/Rocket.Chat/Controllers/Subscriptions/NewRoomViewController.swift index 5a63057d0c..cc2145279a 100644 --- a/Rocket.Chat/Controllers/Subscriptions/NewRoomViewController.swift +++ b/Rocket.Chat/Controllers/Subscriptions/NewRoomViewController.swift @@ -95,6 +95,8 @@ class NewRoomViewController: BaseViewController { @IBOutlet weak var tableView: UITableView! override func viewDidLoad() { + super.viewDidLoad() + CheckTableViewCell.registerCell(for: tableView) TextFieldTableViewCell.registerCell(for: tableView) MentionsTextFieldTableViewCell.registerCell(for: tableView) diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift index 2b075e161b..4e7dc8935b 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -59,6 +59,10 @@ extension UITextField { super.applyTheme() guard let theme = theme else { return } textColor = theme.titleText + keyboardAppearance = theme.appearence.keyboardAppearence + if let placeholder = placeholder { + attributedPlaceholder = NSAttributedString(string: placeholder, attributes: [.foregroundColor: theme.mutedAccent]) + } } } @@ -68,7 +72,7 @@ extension UISearchBar { guard let theme = theme else { return } barStyle = theme.appearence.barStyle tintColor = theme.hyperlinkText - keyboardAppearance = .light + keyboardAppearance = theme.appearence.keyboardAppearence } } diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Hashtag.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Hashtag.imageset/Contents.json index f993fcea24..71e1fee711 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Hashtag.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Hashtag.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Mention.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Mention.imageset/Contents.json index b2c4abcbae..38fc993ebb 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Mention.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Mention.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Views/Form/Cells/MentionsTextFieldTableViewCell.swift b/Rocket.Chat/Views/Form/Cells/MentionsTextFieldTableViewCell.swift index 76e44a3857..ec41ddc3bd 100644 --- a/Rocket.Chat/Views/Form/Cells/MentionsTextFieldTableViewCell.swift +++ b/Rocket.Chat/Views/Form/Cells/MentionsTextFieldTableViewCell.swift @@ -114,3 +114,11 @@ final class MentionsTextFieldTableViewCell: UITableViewCell, FormTableViewCellPr } } } + +extension MentionsTextFieldTableViewCell { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + imgLeftIcon.tintColor = theme.titleText + } +} diff --git a/Rocket.Chat/Views/Form/Cells/TextFieldTableViewCell.swift b/Rocket.Chat/Views/Form/Cells/TextFieldTableViewCell.swift index b111dc70f4..1f4b0fa8c0 100644 --- a/Rocket.Chat/Views/Form/Cells/TextFieldTableViewCell.swift +++ b/Rocket.Chat/Views/Form/Cells/TextFieldTableViewCell.swift @@ -35,3 +35,11 @@ final class TextFieldTableViewCell: UITableViewCell, FormTableViewCellProtocol { delegate?.updateDictValue(key: key ?? "", value: textFieldInput.text ?? "") } } + +extension TextFieldTableViewCell { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + imgLeftIcon.tintColor = theme.titleText + } +} From 6115f8f6e3550e5396aee4b6468f6a83ab6d41fe Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 30 Apr 2018 17:34:18 +0530 Subject: [PATCH 029/124] Loader view themed --- Rocket.Chat/Managers/ThemeManager.swift | 8 ++++++++ Rocket.Chat/Themeable.swift | 4 ++-- .../Cells/Chat/Info/ChannelInfoDescriptionCell.swift | 7 +++++++ Rocket.Chat/Views/Loader/LoaderView.swift | 11 ++++++++++- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift index 4e7dc8935b..601662e327 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -121,6 +121,14 @@ extension UITableView { } } +extension UITableViewCell { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + detailTextLabel?.textColor = theme.auxiliaryText + } +} + extension SLKTextView { override func applyTheme() { super.applyTheme() diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index 07c2677cec..f182c939ce 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -88,7 +88,7 @@ class Theme: NSObject { hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), focusedBackground: #colorLiteral(red: 0.1433121264, green: 0.1433121264, blue: 0.1433121264, alpha: 1), - auxiliaryBackground: #colorLiteral(red: 0.9999960065, green: 1, blue: 1, alpha: 1), + auxiliaryBackground: #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1), mutedAccent: nil, strongAccent: nil, appearence: .dark @@ -102,7 +102,7 @@ class Theme: NSObject { hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), focusedBackground: #colorLiteral(red: 0.04620946944, green: 0.04620946944, blue: 0.04620946944, alpha: 1), - auxiliaryBackground: #colorLiteral(red: 0.921431005, green: 0.9214526415, blue: 0.9214410186, alpha: 1), + auxiliaryBackground: #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1), mutedAccent: nil, strongAccent: nil, appearence: .dark diff --git a/Rocket.Chat/Views/Cells/Chat/Info/ChannelInfoDescriptionCell.swift b/Rocket.Chat/Views/Cells/Chat/Info/ChannelInfoDescriptionCell.swift index 8b46848912..e410d2c217 100644 --- a/Rocket.Chat/Views/Cells/Chat/Info/ChannelInfoDescriptionCell.swift +++ b/Rocket.Chat/Views/Cells/Chat/Info/ChannelInfoDescriptionCell.swift @@ -32,5 +32,12 @@ final class ChannelInfoDescriptionCell: UITableViewCell, ChannelInfoCellProtocol labelDescription.text = data?.description } } +} +extension ChannelInfoDescriptionCell { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + labelDescription.textColor = theme.auxiliaryText + } } diff --git a/Rocket.Chat/Views/Loader/LoaderView.swift b/Rocket.Chat/Views/Loader/LoaderView.swift index 0e222229cb..1b85118300 100644 --- a/Rocket.Chat/Views/Loader/LoaderView.swift +++ b/Rocket.Chat/Views/Loader/LoaderView.swift @@ -60,7 +60,7 @@ class LoaderView: UIView { clockwise: false ) - circleLayer.fillColor = fillColor + circleLayer.fillColor = theme?.auxiliaryBackground.cgColor ?? fillColor circleLayer.backgroundColor = nil circleLayer.path = path.cgPath circleLayer.frame = CGRect(x: 0, y: 0, width: size.width, height: size.height) @@ -79,5 +79,14 @@ class LoaderView: UIView { layer.addSublayer(circle) } } +} +extension LoaderView { + override func applyTheme() { + super.applyTheme() + if isAnimating { + stopAnimating() + startAnimating() + } + } } From 7e53e271ffdf6ec284a7f32d81f9e9484e6ac74d Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 30 Apr 2018 21:19:57 +0530 Subject: [PATCH 030/124] Chat header status view themed --- .../Controllers/Chat/ChatControllerDocuments.swift | 3 +-- .../Chat/ChatControllerHeaderStatus.swift | 4 ++-- .../ChatControllerSocketConnectionHandler.swift | 3 +-- .../Controllers/Chat/ChatControllerUploader.swift | 3 +-- .../Controllers/Chat/ChatViewController.swift | 1 + Rocket.Chat/Managers/ThemeManager.swift | 12 ++++++++++-- Rocket.Chat/Views/Chat/ChatHeaderViewStatus.swift | 14 ++++++++++++++ 7 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Rocket.Chat/Controllers/Chat/ChatControllerDocuments.swift b/Rocket.Chat/Controllers/Chat/ChatControllerDocuments.swift index d8710bb03b..82c947a5cb 100644 --- a/Rocket.Chat/Controllers/Chat/ChatControllerDocuments.swift +++ b/Rocket.Chat/Controllers/Chat/ChatControllerDocuments.swift @@ -45,8 +45,7 @@ extension ChatViewController { let message = String(format: localized("chat.download.downloading_file"), filename) chatHeaderViewStatus?.labelTitle.text = message chatHeaderViewStatus?.buttonRefresh.isHidden = true - chatHeaderViewStatus?.backgroundColor = .RCLightGray() - chatHeaderViewStatus?.setTextColor(.RCDarkBlue()) + chatHeaderViewStatus?.applyTheme() chatHeaderViewStatus?.activityIndicator.startAnimating() // Download file and cache it to be used later diff --git a/Rocket.Chat/Controllers/Chat/ChatControllerHeaderStatus.swift b/Rocket.Chat/Controllers/Chat/ChatControllerHeaderStatus.swift index 237de8b50f..018c884ce8 100644 --- a/Rocket.Chat/Controllers/Chat/ChatControllerHeaderStatus.swift +++ b/Rocket.Chat/Controllers/Chat/ChatControllerHeaderStatus.swift @@ -19,6 +19,7 @@ extension ChatViewController { headerView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 44) view.addSubview(headerView) chatHeaderViewStatus = headerView + chatHeaderViewStatus?.applyTheme() // Shadow of the view headerView.layer.masksToBounds = false @@ -52,8 +53,7 @@ extension ChatViewController { chatHeaderViewStatus?.labelTitle.text = localized("chat.loading_messages") chatHeaderViewStatus?.buttonRefresh.isHidden = true - chatHeaderViewStatus?.backgroundColor = .RCLightGray() - chatHeaderViewStatus?.setTextColor(.RCDarkBlue()) + chatPreviewModeView?.applyTheme() chatHeaderViewStatus?.activityIndicator.startAnimating() } } diff --git a/Rocket.Chat/Controllers/Chat/ChatControllerSocketConnectionHandler.swift b/Rocket.Chat/Controllers/Chat/ChatControllerSocketConnectionHandler.swift index 3886dc176a..1847019ec1 100644 --- a/Rocket.Chat/Controllers/Chat/ChatControllerSocketConnectionHandler.swift +++ b/Rocket.Chat/Controllers/Chat/ChatControllerSocketConnectionHandler.swift @@ -26,8 +26,7 @@ extension ChatViewController: SocketConnectionHandler { chatHeaderViewStatus?.labelTitle.text = localized("connection.offline.banner.message") chatHeaderViewStatus?.buttonRefresh.isHidden = false - chatHeaderViewStatus?.backgroundColor = .RCLightGray() - chatHeaderViewStatus?.setTextColor(.RCDarkBlue()) + chatHeaderViewStatus?.applyTheme() } func socketDidReturnError(socket: SocketManager, error: SocketError) { diff --git a/Rocket.Chat/Controllers/Chat/ChatControllerUploader.swift b/Rocket.Chat/Controllers/Chat/ChatControllerUploader.swift index 4eb9f8c882..4ff92f0ac3 100644 --- a/Rocket.Chat/Controllers/Chat/ChatControllerUploader.swift +++ b/Rocket.Chat/Controllers/Chat/ChatControllerUploader.swift @@ -181,8 +181,7 @@ extension ChatViewController { let message = String(format: localized("chat.upload.uploading_file"), fileName) chatHeaderViewStatus?.labelTitle.text = message chatHeaderViewStatus?.buttonRefresh.isHidden = true - chatHeaderViewStatus?.backgroundColor = .RCLightGray() - chatHeaderViewStatus?.setTextColor(.RCDarkBlue()) + chatHeaderViewStatus?.applyTheme() chatHeaderViewStatus?.activityIndicator.startAnimating() } diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index e04db5e665..d6f3d6f2a0 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -227,6 +227,7 @@ final class ChatViewController: SLKTextViewController { @objc internal func reconnect() { chatHeaderViewStatus?.labelTitle.text = localized("connection.connecting.banner.message") + chatHeaderViewStatus?.applyTheme() chatHeaderViewStatus?.activityIndicator.startAnimating() chatHeaderViewStatus?.buttonRefresh.isHidden = true diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift index 601662e327..5206c550d8 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -81,8 +81,16 @@ extension UIActivityIndicatorView { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - activityIndicatorViewStyle = .gray - color = .white +// activityIndicatorViewStyle = .gray + tintColor = theme.bodyText + } +} + +extension UIRefreshControl { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + tintColor = theme.bodyText } } diff --git a/Rocket.Chat/Views/Chat/ChatHeaderViewStatus.swift b/Rocket.Chat/Views/Chat/ChatHeaderViewStatus.swift index 659a81dd78..6595150602 100644 --- a/Rocket.Chat/Views/Chat/ChatHeaderViewStatus.swift +++ b/Rocket.Chat/Views/Chat/ChatHeaderViewStatus.swift @@ -43,3 +43,17 @@ final class ChatHeaderViewStatus: UIView { } } + +extension ChatHeaderViewStatus { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + if theme == .light { + backgroundColor = .RCLightGray() + setTextColor(.RCDarkBlue()) + } else { + backgroundColor = UIColor.RCDarkGray() + setTextColor(theme.bodyText) + } + } +} From 7ec7a84cd7afda447ebe6ab249a4ed90ef16e95f Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Tue, 1 May 2018 01:11:10 +0530 Subject: [PATCH 031/124] Preference controller added for changing theme --- Rocket.Chat.xcodeproj/project.pbxproj | 20 ++++ .../PreferencesViewController.swift | 6 + .../Preferences/PreferencesViewModel.swift | 3 +- .../Theme/ThemePreferenceController.swift | 57 ++++++++++ .../Theme/ThemePreferenceViewModel.swift | 28 +++++ Rocket.Chat/Managers/ThemeManager.swift | 14 ++- .../Resources/cs.lproj/Localizable.strings | 8 ++ .../Resources/de.lproj/Localizable.strings | 8 ++ .../Resources/el.lproj/Localizable.strings | 8 ++ .../Resources/en.lproj/Localizable.strings | 8 ++ .../Resources/es.lproj/Localizable.strings | 8 ++ .../Resources/fr.lproj/Localizable.strings | 7 ++ .../Resources/pl.lproj/Localizable.strings | 8 ++ .../Resources/pt-BR.lproj/Localizable.strings | 8 ++ .../Storyboards/Preferences.storyboard | 107 +++++++++++++++--- Rocket.Chat/Themeable.swift | 2 +- .../Preferences/ThemePreferenceCell.swift | 80 +++++++++++++ 17 files changed, 362 insertions(+), 18 deletions(-) create mode 100644 Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceController.swift create mode 100644 Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceViewModel.swift create mode 100644 Rocket.Chat/Views/Cells/Preferences/ThemePreferenceCell.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index f8ef907a94..880031bc30 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -109,6 +109,9 @@ 3370D8C82095F56B00EEA225 /* SubscriptionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C72095F56A00EEA225 /* SubscriptionsView.swift */; }; 3370D8CE2096261F00EEA225 /* NotThemeableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */; }; 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */; }; + 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */; }; + 3370D8D620977D8600EEA225 /* ThemePreferenceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */; }; + 3370D8D820977E9C00EEA225 /* ThemePreferenceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */; }; 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; @@ -769,6 +772,9 @@ 3370D8C72095F56A00EEA225 /* SubscriptionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionsView.swift; sourceTree = ""; }; 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotThemeableView.swift; sourceTree = ""; }; 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopTransparentViewController.swift; sourceTree = ""; }; + 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceCell.swift; sourceTree = ""; }; + 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceViewModel.swift; sourceTree = ""; }; + 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceController.swift; sourceTree = ""; }; 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; @@ -1543,6 +1549,15 @@ path = Themeable; sourceTree = ""; }; + 3370D8D420977D4500EEA225 /* Theme */ = { + isa = PBXGroup; + children = ( + 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */, + 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */, + ); + path = Theme; + sourceTree = ""; + }; 33A5C9C0206A565800FE1C8F /* Emojis */ = { isa = PBXGroup; children = ( @@ -1584,6 +1599,7 @@ 0B3A9767202C75A60019CA92 /* ChangeAppIcon */, 0B9AB2BF20444EB300ABEA05 /* Language */, 99282260204DE0AE005D2067 /* Profile */, + 3370D8D420977D4500EEA225 /* Theme */, 9960C82E2063F091004A034C /* Web Browser */, 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */, @@ -1637,6 +1653,7 @@ isa = PBXGroup; children = ( 4153E80420504BE700FBC26B /* ReusableViewText.swift */, + 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */, 412EF3C52050507C001689A3 /* ReusableViewText.xib */, ); path = Preferences; @@ -3588,6 +3605,7 @@ files = ( 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */, 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */, + 3370D8D820977E9C00EEA225 /* ThemePreferenceController.swift in Sources */, 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */, 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */, 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */, @@ -3681,6 +3699,7 @@ 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */, D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */, 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */, + 3370D8D620977D8600EEA225 /* ThemePreferenceViewModel.swift in Sources */, 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, @@ -3810,6 +3829,7 @@ 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */, 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */, 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */, + 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */, 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */, 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */, 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */, diff --git a/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift b/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift index 257ad3c91c..61aab550a3 100644 --- a/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift +++ b/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift @@ -78,6 +78,12 @@ final class PreferencesViewController: BaseTableViewController { } } + @IBOutlet weak var labelTheme: UILabel! { + didSet { + labelTheme.text = viewModel.theme + } + } + @IBOutlet weak var labelDefaultWebBrowser: UILabel! { didSet { labelDefaultWebBrowser.text = WebBrowserManager.browser.name diff --git a/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift b/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift index 179c475ea5..dcd613db8e 100644 --- a/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift +++ b/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift @@ -22,6 +22,7 @@ final class PreferencesViewModel { internal let language = localized("myaccount.settings.language") internal let appicon = localized("myaccount.settings.appicon") internal let webBrowser = localized("myaccount.settings.web_browser") + internal let theme = localized("theme.settings.title") internal let licenseURL = URL(string: "https://github.com/RocketChat/Rocket.Chat.iOS/blob/develop/LICENSE") @@ -87,7 +88,7 @@ final class PreferencesViewModel { internal func numberOfRowsInSection(_ section: Int) -> Int { switch section { case 0: return 1 - case 1: return (canChangeAppIcon ? 4 : 3) + case 1: return (canChangeAppIcon ? 5 : 4) case 2: return 3 case 3: return 1 case 4: return (canOpenFLEX ? 1 : 0) diff --git a/Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceController.swift b/Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceController.swift new file mode 100644 index 0000000000..68047d9511 --- /dev/null +++ b/Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceController.swift @@ -0,0 +1,57 @@ +// +// ThemePreferenceController.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 4/30/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class ThemePreferenceController: BaseTableViewController { + + let viewModel = ThemePreferenceViewModel() + + override func viewDidLoad() { + super.viewDidLoad() + navigationItem.title = viewModel.title + } +} + +extension ThemePreferenceController { + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return viewModel.cellHeight + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return viewModel.themes.count + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + guard let cell = tableView.dequeueReusableCell(withIdentifier: ThemePreferenceCell.identifier, for: indexPath) as? ThemePreferenceCell else { + return UITableViewCell() + } + cell.cellTheme = viewModel.themes[indexPath.row].theme + cell.titleLabel.text = viewModel.themes[indexPath.row].title + cell.baseColorView.backgroundColor = viewModel.themes[indexPath.row].theme.backgroundColor + cell.auxiliaryColorView.backgroundColor = viewModel.themes[indexPath.row].theme.bodyText + + return cell + } + + override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + return viewModel.header + } + + override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? { + return viewModel.footer + } +} + +extension ThemePreferenceController { + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + let selectedTheme = viewModel.themes[indexPath.row].theme + ThemeManager.theme = selectedTheme + tableView.deselectRow(at: indexPath, animated: true) + } +} diff --git a/Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceViewModel.swift b/Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceViewModel.swift new file mode 100644 index 0000000000..f971680c5b --- /dev/null +++ b/Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceViewModel.swift @@ -0,0 +1,28 @@ +// +// ThemePreferenceViewModel.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 4/30/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import Foundation + +struct ThemePreferenceViewModel { + let themes: [(title: String, theme: Theme)] = ThemeManager.themes.map { (localized("theme." + $0.title), $0.theme) } + + let cellIdentifier = ThemePreferenceCell.identifier + let cellHeight = ThemePreferenceCell.cellHeight + + internal var title: String { + return localized("theme.settings.title") + } + + internal var header: String { + return localized("theme.settings.header") + } + + internal var footer: String { + return localized("theme.settings.footer") + } +} diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift index 5206c550d8..cc5d4da46a 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -10,14 +10,22 @@ import Foundation import SlackTextViewController struct ThemeManager { - static var theme = Theme.dark { + static var theme = themes.first(where: { $0.title == UserDefaults.standard.string(forKey: userDefaultsKey) })?.theme ?? Theme.light { + didSet { - UIView.animate(withDuration: 0.3) { - observers.forEach { $0?.applyTheme() } + UIView.animate( + withDuration: 0.3, + animations: ({ observers.forEach { $0?.applyTheme() } }) + ) { _ in + let themeName = themes.first(where: { $0.theme == theme })?.title + UserDefaults.standard.set(themeName, forKey: userDefaultsKey) } } } + static let userDefaultsKey = "RCTheme" + static let themes: [(title: String, theme: Theme)] = [("light", .light), ("dark", .dark), ("black", .black)] + static var observers = [Themeable?]() static func addObserver(_ observer: Themeable?) { observers = observers.compactMap { $0 } diff --git a/Rocket.Chat/Resources/cs.lproj/Localizable.strings b/Rocket.Chat/Resources/cs.lproj/Localizable.strings index 1403db32f6..46450cab6c 100644 --- a/Rocket.Chat/Resources/cs.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/cs.lproj/Localizable.strings @@ -305,3 +305,11 @@ // User Action Sheet "user_action_sheet.conversation" = "Conversation"; // TODO + +// Theme +"theme.settings.title" = "Theme"; // TODO +"theme.settings.header" = "ALL THEMES"; // TODO +"theme.settings.footer" = "Applying a theme will change how the app looks."; // TODO +"theme.light" = "Light"; // TODO +"theme.dark" = "Dark"; // TODO +"theme.black" = "Black"; // TODO diff --git a/Rocket.Chat/Resources/de.lproj/Localizable.strings b/Rocket.Chat/Resources/de.lproj/Localizable.strings index 0c9d69d3c0..1c7dea41a4 100644 --- a/Rocket.Chat/Resources/de.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/de.lproj/Localizable.strings @@ -305,3 +305,11 @@ // User Action Sheet "user_action_sheet.conversation" = "Conversation"; // TODO + +// Theme +"theme.settings.title" = "Theme"; // TODO +"theme.settings.header" = "ALL THEMES"; // TODO +"theme.settings.footer" = "Applying a theme will change how the app looks."; // TODO +"theme.light" = "Light"; // TODO +"theme.dark" = "Dark"; // TODO +"theme.black" = "Black"; // TODO diff --git a/Rocket.Chat/Resources/el.lproj/Localizable.strings b/Rocket.Chat/Resources/el.lproj/Localizable.strings index 4915c23b72..6d75e74ebe 100644 --- a/Rocket.Chat/Resources/el.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/el.lproj/Localizable.strings @@ -305,3 +305,11 @@ // User Action Sheet "user_action_sheet.conversation" = "Conversation"; // TODO + +// Theme +"theme.settings.title" = "Theme"; // TODO +"theme.settings.header" = "ALL THEMES"; // TODO +"theme.settings.footer" = "Applying a theme will change how the app looks."; // TODO +"theme.light" = "Light"; // TODO +"theme.dark" = "Dark"; // TODO +"theme.black" = "Black"; // TODO diff --git a/Rocket.Chat/Resources/en.lproj/Localizable.strings b/Rocket.Chat/Resources/en.lproj/Localizable.strings index 3e931b3505..4f523fc2a0 100644 --- a/Rocket.Chat/Resources/en.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/en.lproj/Localizable.strings @@ -305,3 +305,11 @@ // User Action Sheet "user_action_sheet.conversation" = "Conversation"; + +// Theme +"theme.settings.title" = "Theme"; +"theme.settings.header" = "ALL THEMES"; +"theme.settings.footer" = "Applying a theme will change how the app looks."; +"theme.light" = "Light"; +"theme.dark" = "Dark"; +"theme.black" = "Black"; diff --git a/Rocket.Chat/Resources/es.lproj/Localizable.strings b/Rocket.Chat/Resources/es.lproj/Localizable.strings index 8a762cd8b5..bae0d5a377 100644 --- a/Rocket.Chat/Resources/es.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/es.lproj/Localizable.strings @@ -305,3 +305,11 @@ // User Action Sheet "user_action_sheet.conversation" = "Conversation"; // TODO + +// Theme +"theme.settings.title" = "Theme"; // TODO +"theme.settings.header" = "ALL THEMES"; // TODO +"theme.settings.footer" = "Applying a theme will change how the app looks."; // TODO +"theme.light" = "Light"; // TODO +"theme.dark" = "Dark"; // TODO +"theme.black" = "Black"; // TODO diff --git a/Rocket.Chat/Resources/fr.lproj/Localizable.strings b/Rocket.Chat/Resources/fr.lproj/Localizable.strings index 6d3878bb8e..0ea7010a49 100644 --- a/Rocket.Chat/Resources/fr.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/fr.lproj/Localizable.strings @@ -307,3 +307,10 @@ // User Action Sheet "user_action_sheet.conversation" = "Conversation"; // TODO +// Theme +"theme.settings.title" = "Theme"; // TODO +"theme.settings.header" = "ALL THEMES"; // TODO +"theme.settings.footer" = "Applying a theme will change how the app looks."; // TODO +"theme.light" = "Light"; // TODO +"theme.dark" = "Dark"; // TODO +"theme.black" = "Black"; // TODO diff --git a/Rocket.Chat/Resources/pl.lproj/Localizable.strings b/Rocket.Chat/Resources/pl.lproj/Localizable.strings index 5366efa5fb..257dd510be 100644 --- a/Rocket.Chat/Resources/pl.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/pl.lproj/Localizable.strings @@ -305,3 +305,11 @@ // User Action Sheet "user_action_sheet.conversation" = "Conversation"; // TODO + +// Theme +"theme.settings.title" = "Theme"; // TODO +"theme.settings.header" = "ALL THEMES"; // TODO +"theme.settings.footer" = "Applying a theme will change how the app looks."; // TODO +"theme.light" = "Light"; // TODO +"theme.dark" = "Dark"; // TODO +"theme.black" = "Black"; // TODO diff --git a/Rocket.Chat/Resources/pt-BR.lproj/Localizable.strings b/Rocket.Chat/Resources/pt-BR.lproj/Localizable.strings index 12f7ec4121..1ded7d8d89 100644 --- a/Rocket.Chat/Resources/pt-BR.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/pt-BR.lproj/Localizable.strings @@ -305,3 +305,11 @@ // User Action Sheet "user_action_sheet.conversation" = "Conversa"; + +// Theme +"theme.settings.title" = "Theme"; // TODO +"theme.settings.header" = "ALL THEMES"; // TODO +"theme.settings.footer" = "Applying a theme will change how the app looks."; // TODO +"theme.light" = "Light"; // TODO +"theme.dark" = "Dark"; // TODO +"theme.black" = "Black"; // TODO diff --git a/Rocket.Chat/Storyboards/Preferences.storyboard b/Rocket.Chat/Storyboards/Preferences.storyboard index 203525ec55..150a14e2d2 100644 --- a/Rocket.Chat/Storyboards/Preferences.storyboard +++ b/Rocket.Chat/Storyboards/Preferences.storyboard @@ -96,31 +96,51 @@ - + - + + + + + + + + + + + + + - - + @@ -128,7 +148,7 @@ - + @@ -145,7 +165,7 @@ - + @@ -162,7 +182,7 @@ - + @@ -191,7 +211,7 @@ We track crashes on Fabric, but this is optional for you if you don't want us to track it. Please keep in mind that this information help us understading the crashes that you are having while using the app. - + @@ -224,7 +244,7 @@ - + @@ -258,15 +278,16 @@ - + + - + @@ -312,7 +333,7 @@ - + @@ -575,6 +596,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index f182c939ce..ad22025dbb 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -54,7 +54,7 @@ class Theme: NSObject { if let mutedAccent = mutedAccent { self.mutedAccent = mutedAccent } else { - self.mutedAccent = #colorLiteral(red: 0.4910559654, green: 0.4938107133, blue: 0.500592351, alpha: 0.1020851672) + self.mutedAccent = #colorLiteral(red: 0.491, green: 0.4938107133, blue: 0.500592351, alpha: 0.15) } if let strongAccent = strongAccent { diff --git a/Rocket.Chat/Views/Cells/Preferences/ThemePreferenceCell.swift b/Rocket.Chat/Views/Cells/Preferences/ThemePreferenceCell.swift new file mode 100644 index 0000000000..5acdc47557 --- /dev/null +++ b/Rocket.Chat/Views/Cells/Preferences/ThemePreferenceCell.swift @@ -0,0 +1,80 @@ +// +// ThemePreferenceCell.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 4/30/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class ThemePreferenceCell: UITableViewCell { + + static let identifier = "ThemePreferenceCell" + static let cellHeight: CGFloat = 78 + + let borderWidth: CGFloat = 1.0 + let borderColor = #colorLiteral(red: 0.4980838895, green: 0.4951269031, blue: 0.5003594756, alpha: 0.1950449486).cgColor + + var cellTheme: Theme? { + didSet { + setViewsForTheme() + } + } + + func setViewsForTheme() { + baseColorView.backgroundColor = cellTheme?.backgroundColor + auxiliaryColorView.backgroundColor = cellTheme?.bodyText + + if ThemeManager.theme == cellTheme { + checkLabel.isHidden = false + } else { + checkLabel.isHidden = true + } + } + + @IBOutlet weak var checkLabel: UILabel! { + didSet { + checkLabel.isHidden = true + } + } + + @IBOutlet weak var baseColorView: UIView! { + didSet { + baseColorView.layer.cornerRadius = 4 + baseColorView.layer.masksToBounds = true + baseColorView.layer.borderWidth = borderWidth + baseColorView.layer.borderColor = borderColor + } + } + + @IBOutlet weak var auxiliaryColorView: UIView! { + didSet { + auxiliaryColorView.layer.cornerRadius = 4 + auxiliaryColorView.layer.masksToBounds = true + auxiliaryColorView.layer.borderWidth = borderWidth + auxiliaryColorView.layer.borderColor = borderColor + } + } + + @IBOutlet weak var titleLabel: UILabel! +} + +extension ThemePreferenceCell { + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + setViewsForTheme() + } + + override func setHighlighted(_ highlighted: Bool, animated: Bool) { + super.setHighlighted(highlighted, animated: animated) + setViewsForTheme() + } +} + +extension ThemePreferenceCell { + override func applyTheme() { + super.applyTheme() + setViewsForTheme() + } +} From 4892ee0823a80259130cd9949c6a3b202b9009ff Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Tue, 1 May 2018 01:27:17 +0530 Subject: [PATCH 032/124] Fixed test --- Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift b/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift index e9e5484e01..f65d4b89d3 100644 --- a/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift +++ b/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift @@ -63,7 +63,7 @@ class PreferencesViewModelSpec: XCTestCase { func testNumberOfRowsInSection() { XCTAssertTrue(model.numberOfSections == 5, "incorrect sections number") XCTAssertTrue(model.numberOfRowsInSection(0) == 1, "incorrect rows number") - XCTAssertTrue(model.numberOfRowsInSection(1) == 4, "incorrect rows number") + XCTAssertTrue(model.numberOfRowsInSection(1) == 5, "incorrect rows number") XCTAssertTrue(model.numberOfRowsInSection(2) == 3, "incorrect rows number") XCTAssertTrue(model.numberOfRowsInSection(3) == 1, "incorrect rows number") XCTAssertTrue(model.numberOfRowsInSection(4) == 1, "incorrect rows number") From de44f2bdc2216d57d05bdbb1ec641d652a432b57 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Tue, 1 May 2018 23:36:41 +0530 Subject: [PATCH 033/124] Search bar and add server vc fixed --- Rocket.Chat/Controllers/Chat/MessagesListViewController.swift | 2 +- Rocket.Chat/Managers/ThemeManager.swift | 3 ++- Rocket.Chat/Storyboards/Subscriptions.storyboard | 2 +- Rocket.Chat/Themeable.swift | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Rocket.Chat/Controllers/Chat/MessagesListViewController.swift b/Rocket.Chat/Controllers/Chat/MessagesListViewController.swift index 4a42ecb8c0..e72a81acb8 100644 --- a/Rocket.Chat/Controllers/Chat/MessagesListViewController.swift +++ b/Rocket.Chat/Controllers/Chat/MessagesListViewController.swift @@ -181,7 +181,6 @@ class MessagesListViewData { } if !self.isSearchingMessages { self.currentPage += 1 } - self.isLoadingMoreMessages = false completion?() } @@ -316,6 +315,7 @@ extension MessagesListViewController { navigationItem.rightBarButtonItem = cancelButton navigationItem.titleView = searchBar + searchBar.applyTheme() } @objc func close() { diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift index cc5d4da46a..1ad45da345 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -81,6 +81,8 @@ extension UISearchBar { barStyle = theme.appearence.barStyle tintColor = theme.hyperlinkText keyboardAppearance = theme.appearence.keyboardAppearence + let textField = subviews.first?.subviews.first { $0 is UITextField } as? UITextField + textField?.backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) } } @@ -89,7 +91,6 @@ extension UIActivityIndicatorView { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } -// activityIndicatorViewStyle = .gray tintColor = theme.bodyText } } diff --git a/Rocket.Chat/Storyboards/Subscriptions.storyboard b/Rocket.Chat/Storyboards/Subscriptions.storyboard index d796344eea..6b38136a0b 100644 --- a/Rocket.Chat/Storyboards/Subscriptions.storyboard +++ b/Rocket.Chat/Storyboards/Subscriptions.storyboard @@ -359,7 +359,7 @@ - + diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Themeable.swift index ad22025dbb..9c7adddfba 100644 --- a/Rocket.Chat/Themeable.swift +++ b/Rocket.Chat/Themeable.swift @@ -54,7 +54,7 @@ class Theme: NSObject { if let mutedAccent = mutedAccent { self.mutedAccent = mutedAccent } else { - self.mutedAccent = #colorLiteral(red: 0.491, green: 0.4938107133, blue: 0.500592351, alpha: 0.15) + self.mutedAccent = #colorLiteral(red: 0.491, green: 0.4938107133, blue: 0.500592351, alpha: 0.2993471747) } if let strongAccent = strongAccent { From 4dc7c044cd26bb4ceee7c5ff475c9dc7c1ae5389 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 2 May 2018 01:32:51 +0530 Subject: [PATCH 034/124] Refresh control themed correctly. --- Rocket.Chat/Controllers/Chat/MembersListViewController.swift | 2 +- Rocket.Chat/Controllers/Chat/MessagesListViewController.swift | 2 +- Rocket.Chat/Managers/ThemeManager.swift | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Rocket.Chat/Controllers/Chat/MembersListViewController.swift b/Rocket.Chat/Controllers/Chat/MembersListViewController.swift index be918a3ed0..4e4c5193df 100644 --- a/Rocket.Chat/Controllers/Chat/MembersListViewController.swift +++ b/Rocket.Chat/Controllers/Chat/MembersListViewController.swift @@ -142,8 +142,8 @@ extension MembersListViewController { loadMoreMembers() guard let refreshControl = membersTableView.refreshControl else { return } - membersTableView.refreshControl?.beginRefreshing() membersTableView.contentOffset = CGPoint(x: 0, y: -refreshControl.frame.size.height) + membersTableView.refreshControl?.beginRefreshing() } } diff --git a/Rocket.Chat/Controllers/Chat/MessagesListViewController.swift b/Rocket.Chat/Controllers/Chat/MessagesListViewController.swift index e72a81acb8..7bf76842c9 100644 --- a/Rocket.Chat/Controllers/Chat/MessagesListViewController.swift +++ b/Rocket.Chat/Controllers/Chat/MessagesListViewController.swift @@ -287,8 +287,8 @@ extension MessagesListViewController { } guard let refreshControl = collectionView.refreshControl, !data.isSearchingMessages else { return } - collectionView.refreshControl?.beginRefreshing() collectionView.contentOffset = CGPoint(x: 0, y: -refreshControl.frame.size.height) + collectionView.refreshControl?.beginRefreshing() } func registerCells() { diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Managers/ThemeManager.swift index 1ad45da345..04b008bc98 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Managers/ThemeManager.swift @@ -86,7 +86,6 @@ extension UISearchBar { } } -// TODO: Set the correct color extension UIActivityIndicatorView { override func applyTheme() { super.applyTheme() From 2f1a4908ceef3a7a61f7325bc3524e56efa6ac94 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 2 May 2018 02:13:20 +0530 Subject: [PATCH 035/124] Minor refactoring --- .../RCEmojiKit/Views/Reaction/ReactionView.swift | 7 +++---- .../Themeable => Theme}/NotThemeableView.swift | 0 .../{Managers => Theme}/ThemeManager.swift | 16 +++++++++------- Rocket.Chat/{ => Theme}/Themeable.swift | 0 Rocket.Chat/Views/Avatar/AvatarView.swift | 1 - .../Views/Chat/ChatHeaderViewStatus.swift | 5 +++-- Rocket.Chat/Views/Chat/ChatView.swift | 2 -- 7 files changed, 15 insertions(+), 16 deletions(-) rename Rocket.Chat/{Views/Themeable => Theme}/NotThemeableView.swift (100%) rename Rocket.Chat/{Managers => Theme}/ThemeManager.swift (94%) rename Rocket.Chat/{ => Theme}/Themeable.swift (100%) diff --git a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift index 440f601f6a..7d623739d9 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift @@ -107,10 +107,9 @@ extension ReactionView { guard let theme = theme else { return } let colors: (UIColor, UIColor, UIColor) = { - if theme == .light { - return model.highlight ? (#colorLiteral(red: 0, green: 0.56, blue: 0.9882352941, alpha: 0.69), #colorLiteral(red: 0, green: 0.5516742082, blue: 0.9960784314, alpha: 0.26), #colorLiteral(red: 0, green: 0.4999999989, blue: 1, alpha: 0.05)) : (#colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.33), #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.09), #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.01)) - } else { - return model.highlight ? (#colorLiteral(red: 0, green: 0.56, blue: 0.9882352941, alpha: 0.69), #colorLiteral(red: 0, green: 0.5516742082, blue: 0.9960784314, alpha: 0.26), #colorLiteral(red: 0, green: 0.4999999989, blue: 1, alpha: 0.05)) : (#colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.33), #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.09), #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.01)) + switch theme { + case .light: return model.highlight ? (#colorLiteral(red: 0, green: 0.56, blue: 0.9882352941, alpha: 0.69), #colorLiteral(red: 0, green: 0.5516742082, blue: 0.9960784314, alpha: 0.26), #colorLiteral(red: 0, green: 0.4999999989, blue: 1, alpha: 0.05)) : (#colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.33), #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.09), #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0.01)) + default: return model.highlight ? (#colorLiteral(red: 0, green: 0.56, blue: 0.9882352941, alpha: 0.69), #colorLiteral(red: 0, green: 0.5516742082, blue: 0.9960784314, alpha: 0.26), #colorLiteral(red: 0, green: 0.4999999989, blue: 1, alpha: 0.05)) : (#colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.33), #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.09), #colorLiteral(red: 1, green: 1, blue: 1, alpha: 0.01)) } }() diff --git a/Rocket.Chat/Views/Themeable/NotThemeableView.swift b/Rocket.Chat/Theme/NotThemeableView.swift similarity index 100% rename from Rocket.Chat/Views/Themeable/NotThemeableView.swift rename to Rocket.Chat/Theme/NotThemeableView.swift diff --git a/Rocket.Chat/Managers/ThemeManager.swift b/Rocket.Chat/Theme/ThemeManager.swift similarity index 94% rename from Rocket.Chat/Managers/ThemeManager.swift rename to Rocket.Chat/Theme/ThemeManager.swift index 04b008bc98..91e01158e1 100644 --- a/Rocket.Chat/Managers/ThemeManager.swift +++ b/Rocket.Chat/Theme/ThemeManager.swift @@ -38,17 +38,20 @@ struct ThemeManager { @objc protocol Themeable { func applyTheme() -// var theme: Theme? { get } } -extension UIView: Themeable { +@objc protocol ThemeProvider { + var theme: Theme? { get } +} + +extension UIView: Themeable, ThemeProvider { func applyTheme() { guard let theme = theme else { return } backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) self.subviews.forEach { $0.applyTheme() } } - @objc var theme: Theme? { + var theme: Theme? { guard let superview = superview else { return ThemeManager.theme } return superview.theme } @@ -118,10 +121,9 @@ extension UITableView { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - if theme == .dark || theme == .black { - backgroundColor = style == .grouped ? theme.focusedBackground : theme.backgroundColor - } else { - backgroundColor = style == .grouped ? #colorLiteral(red: 0.937, green: 0.937, blue: 0.957, alpha: 1) : theme.backgroundColor + switch theme { + case .dark, .black: backgroundColor = style == .grouped ? theme.focusedBackground : theme.backgroundColor + default: backgroundColor = style == .grouped ? #colorLiteral(red: 0.937, green: 0.937, blue: 0.957, alpha: 1) : theme.backgroundColor } separatorColor = theme.mutedAccent } diff --git a/Rocket.Chat/Themeable.swift b/Rocket.Chat/Theme/Themeable.swift similarity index 100% rename from Rocket.Chat/Themeable.swift rename to Rocket.Chat/Theme/Themeable.swift diff --git a/Rocket.Chat/Views/Avatar/AvatarView.swift b/Rocket.Chat/Views/Avatar/AvatarView.swift index 4d2f0bed3c..e5ee6c6b16 100644 --- a/Rocket.Chat/Views/Avatar/AvatarView.swift +++ b/Rocket.Chat/Views/Avatar/AvatarView.swift @@ -175,7 +175,6 @@ final class AvatarView: UIView { extension AvatarView { override func applyTheme() { - self.subviews.forEach { $0.applyTheme() } labelInitials.textColor = .white } } diff --git a/Rocket.Chat/Views/Chat/ChatHeaderViewStatus.swift b/Rocket.Chat/Views/Chat/ChatHeaderViewStatus.swift index 6595150602..1078c81f81 100644 --- a/Rocket.Chat/Views/Chat/ChatHeaderViewStatus.swift +++ b/Rocket.Chat/Views/Chat/ChatHeaderViewStatus.swift @@ -48,10 +48,11 @@ extension ChatHeaderViewStatus { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - if theme == .light { + switch theme { + case .light: backgroundColor = .RCLightGray() setTextColor(.RCDarkBlue()) - } else { + default: backgroundColor = UIColor.RCDarkGray() setTextColor(theme.bodyText) } diff --git a/Rocket.Chat/Views/Chat/ChatView.swift b/Rocket.Chat/Views/Chat/ChatView.swift index 05acbd0a30..facb394721 100644 --- a/Rocket.Chat/Views/Chat/ChatView.swift +++ b/Rocket.Chat/Views/Chat/ChatView.swift @@ -13,8 +13,6 @@ class ChatView: UIView { } extension ChatView { - override var theme: Theme? { return ThemeManager.theme } - override func applyTheme() { super.applyTheme() guard let theme = theme else { return } From b4891db32021eb0badb240037da37c2ec91b7dda Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 2 May 2018 02:38:03 +0530 Subject: [PATCH 036/124] Updated project file --- Rocket.Chat.xcodeproj/project.pbxproj | 36 ++-- .../Theme/{Themeable.swift => Theme.swift} | 8 + Rocket.Chat/Theme/ThemeManager.swift | 203 ------------------ .../Theme/ThemeableViewControllers.swift | 16 ++ Rocket.Chat/Theme/ThemeableViews.swift | 198 +++++++++++++++++ 5 files changed, 244 insertions(+), 217 deletions(-) rename Rocket.Chat/Theme/{Themeable.swift => Theme.swift} (97%) create mode 100644 Rocket.Chat/Theme/ThemeableViewControllers.swift create mode 100644 Rocket.Chat/Theme/ThemeableViews.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 880031bc30..25d5e4e40e 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -86,6 +86,8 @@ 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */; }; 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */; }; 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */; }; + 330888B42099094400D44D4E /* ThemeableViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330888B32099094400D44D4E /* ThemeableViews.swift */; }; + 330888B6209909F600D44D4E /* ThemeableViewControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */; }; 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */; }; 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */; }; 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */; }; @@ -97,7 +99,7 @@ 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 333207FE20766E4F00AD3290 /* NotificationViewController.xib */; }; 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */; }; 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; - 3353DBF8206787E500738D1C /* Themeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Themeable.swift */; }; + 3353DBF8206787E500738D1C /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Theme.swift */; }; 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8B920926E5700EEA225 /* ChatView.swift */; }; 3370D8BC2093570D00EEA225 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BB2093570D00EEA225 /* ThemeManager.swift */; }; @@ -750,6 +752,8 @@ 14F8A291202E65C700175FDC /* Blue-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@2x.png"; sourceTree = ""; }; 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCell.swift; sourceTree = ""; }; 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MentionsTextFieldTableViewCell.xib; sourceTree = ""; }; + 330888B32099094400D44D4E /* ThemeableViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableViews.swift; sourceTree = ""; }; + 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableViewControllers.swift; sourceTree = ""; }; 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatNotificationSpec.swift; sourceTree = ""; }; 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerSpec.swift; sourceTree = ""; }; 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewControllerSpec.swift; sourceTree = ""; }; @@ -760,7 +764,7 @@ 333207FE20766E4F00AD3290 /* NotificationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotificationViewController.xib; sourceTree = ""; }; 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentToTouchesWindow.swift; sourceTree = ""; }; 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; - 3353DBF7206787E500738D1C /* Themeable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Themeable.swift; sourceTree = ""; }; + 3353DBF7206787E500738D1C /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; 3370D8B920926E5700EEA225 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; }; 3370D8BB2093570D00EEA225 /* ThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManager.swift; sourceTree = ""; }; @@ -1529,6 +1533,18 @@ path = Blue; sourceTree = ""; }; + 330888B2209901C800D44D4E /* Theme */ = { + isa = PBXGroup; + children = ( + 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */, + 3353DBF7206787E500738D1C /* Theme.swift */, + 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */, + 330888B32099094400D44D4E /* ThemeableViews.swift */, + 3370D8BB2093570D00EEA225 /* ThemeManager.swift */, + ); + path = Theme; + sourceTree = ""; + }; 3330329F2073905900A9514D /* SubscriptionManager */ = { isa = PBXGroup; children = ( @@ -1541,14 +1557,6 @@ path = SubscriptionManager; sourceTree = ""; }; - 3370D8CF2096671C00EEA225 /* Themeable */ = { - isa = PBXGroup; - children = ( - 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */, - ); - path = Themeable; - sourceTree = ""; - }; 3370D8D420977D4500EEA225 /* Theme */ = { isa = PBXGroup; children = ( @@ -1712,7 +1720,6 @@ 33F73B292073BDD800F03F29 /* Notification */, 418C4DC41DC4C05000ABED4C /* Sections */, 41A91AED1E51C4E5005C94B1 /* Subscriptions */, - 3370D8CF2096671C00EEA225 /* Themeable */, 7758A7621F8FA34300FAA244 /* UIPickerView */, ); path = Views; @@ -1892,7 +1899,6 @@ 597ECBA31E3708B10041C5C5 /* PushManager.swift */, 41499C8E1F2A116900790EA7 /* ServerManager.swift */, B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */, - 3370D8BB2093570D00EEA225 /* ThemeManager.swift */, 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */, 41B554C61FBF0F9D000510B7 /* WindowManager.swift */, ); @@ -2179,6 +2185,7 @@ 41DF76E11D2C50710028DBF8 /* Rocket.Chat */ = { isa = PBXGroup; children = ( + 330888B2209901C800D44D4E /* Theme */, D1D535EA1F7081E6006625D2 /* API */, 4174CB0A1D2D990F0086DAC8 /* Controllers */, 4174CB1D1D2DB3270086DAC8 /* Extensions */, @@ -2190,7 +2197,6 @@ 4174CB0B1D2D99170086DAC8 /* Storyboards */, 4161332F1D46CA2800E09DA2 /* Views */, 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */, - 3353DBF7206787E500738D1C /* Themeable.swift */, 41DF76EE1D2C50720028DBF8 /* Info.plist */, 41833F4D1DEF16B600E54655 /* Keys.plist */, 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, @@ -3725,6 +3731,7 @@ 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */, 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */, 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */, + 330888B6209909F600D44D4E /* ThemeableViewControllers.swift in Sources */, 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */, 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */, 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */, @@ -3877,7 +3884,7 @@ 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, - 3353DBF8206787E500738D1C /* Themeable.swift in Sources */, + 3353DBF8206787E500738D1C /* Theme.swift in Sources */, 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */, 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */, 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */, @@ -3911,6 +3918,7 @@ 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */, 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */, 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */, + 330888B42099094400D44D4E /* ThemeableViews.swift in Sources */, 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Rocket.Chat/Theme/Themeable.swift b/Rocket.Chat/Theme/Theme.swift similarity index 97% rename from Rocket.Chat/Theme/Themeable.swift rename to Rocket.Chat/Theme/Theme.swift index 9c7adddfba..8df14f8609 100644 --- a/Rocket.Chat/Theme/Themeable.swift +++ b/Rocket.Chat/Theme/Theme.swift @@ -9,6 +9,14 @@ import UIKit import SlackTextViewController +@objc protocol Themeable { + func applyTheme() +} + +@objc protocol ThemeProvider { + var theme: Theme? { get } +} + class Theme: NSObject { let backgroundColor: UIColor let titleText: UIColor diff --git a/Rocket.Chat/Theme/ThemeManager.swift b/Rocket.Chat/Theme/ThemeManager.swift index 91e01158e1..eb29b6ac07 100644 --- a/Rocket.Chat/Theme/ThemeManager.swift +++ b/Rocket.Chat/Theme/ThemeManager.swift @@ -35,206 +35,3 @@ struct ThemeManager { observers.append(weakObserver) } } - -@objc protocol Themeable { - func applyTheme() -} - -@objc protocol ThemeProvider { - var theme: Theme? { get } -} - -extension UIView: Themeable, ThemeProvider { - func applyTheme() { - guard let theme = theme else { return } - backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) - self.subviews.forEach { $0.applyTheme() } - } - - var theme: Theme? { - guard let superview = superview else { return ThemeManager.theme } - return superview.theme - } -} - -extension UILabel { - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - textColor = theme.titleText - } -} - -extension UITextField { - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - textColor = theme.titleText - keyboardAppearance = theme.appearence.keyboardAppearence - if let placeholder = placeholder { - attributedPlaceholder = NSAttributedString(string: placeholder, attributes: [.foregroundColor: theme.mutedAccent]) - } - } -} - -extension UISearchBar { - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - barStyle = theme.appearence.barStyle - tintColor = theme.hyperlinkText - keyboardAppearance = theme.appearence.keyboardAppearence - let textField = subviews.first?.subviews.first { $0 is UITextField } as? UITextField - textField?.backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) - } -} - -extension UIActivityIndicatorView { - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - tintColor = theme.bodyText - } -} - -extension UIRefreshControl { - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - tintColor = theme.bodyText - } -} - -extension UICollectionView { - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - view.applyTheme() - } - - open override func addSubview(_ view: UIView) { - super.addSubview(view) - view.applyTheme() - } -} - -extension UITableView { - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - switch theme { - case .dark, .black: backgroundColor = style == .grouped ? theme.focusedBackground : theme.backgroundColor - default: backgroundColor = style == .grouped ? #colorLiteral(red: 0.937, green: 0.937, blue: 0.957, alpha: 1) : theme.backgroundColor - } - separatorColor = theme.mutedAccent - } - - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - view.applyTheme() - } - - open override func addSubview(_ view: UIView) { - super.addSubview(view) - view.applyTheme() - } -} - -extension UITableViewCell { - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - detailTextLabel?.textColor = theme.auxiliaryText - } -} - -extension SLKTextView { - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - self.textColor = theme.bodyText - self.layer.borderColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.1518210827) - self.backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) - } -} - -extension UITextView { - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - self.tintColor = theme.hyperlinkText - } -} - -extension UINavigationBar { - override var theme: Theme? { return ThemeManager.theme } - - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - self.subviews.forEach { $0.applyTheme() } - self.tintColor = theme.bodyText - self.barStyle = theme.appearence.barStyle - } - - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - view.applyTheme() - } -} - -extension UIToolbar { - override var theme: Theme? { return ThemeManager.theme } - - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - self.isTranslucent = false - self.barTintColor = theme.focusedBackground - self.tintColor = theme.tintColor - self.barStyle = theme.appearence.barStyle - } - - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - view.applyTheme() - } -} - -extension UITabBar { - override var theme: Theme? { return ThemeManager.theme } - - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - self.barTintColor = theme.focusedBackground - self.tintColor = theme.tintColor - self.barStyle = theme.appearence.barStyle - } - - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - view.applyTheme() - } -} - -extension SLKTextInputbar { - override var theme: Theme? { return ThemeManager.theme } - - override func applyTheme() { - super.applyTheme() - guard let theme = theme else { return } - textView.keyboardAppearance = theme.appearence.keyboardAppearence - } - - open override func insertSubview(_ view: UIView, at index: Int) { - super.insertSubview(view, at: index) - view.applyTheme() - } -} - -extension UIViewController: Themeable { - func applyTheme() { - view.applyTheme() - navigationController?.navigationBar.applyTheme() - } -} diff --git a/Rocket.Chat/Theme/ThemeableViewControllers.swift b/Rocket.Chat/Theme/ThemeableViewControllers.swift new file mode 100644 index 0000000000..88e97a1db1 --- /dev/null +++ b/Rocket.Chat/Theme/ThemeableViewControllers.swift @@ -0,0 +1,16 @@ +// +// ThemeableViewControllers.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 5/2/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +extension UIViewController: Themeable { + func applyTheme() { + view.applyTheme() + navigationController?.navigationBar.applyTheme() + } +} diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift new file mode 100644 index 0000000000..e650f346be --- /dev/null +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -0,0 +1,198 @@ +// +// ThemeableViews.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 5/2/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit +import SlackTextViewController + +extension UIView: Themeable, ThemeProvider { + func applyTheme() { + guard let theme = theme else { return } + backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) + self.subviews.forEach { $0.applyTheme() } + } + + var theme: Theme? { + guard let superview = superview else { return ThemeManager.theme } + return superview.theme + } +} + +extension UILabel { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + textColor = theme.titleText + } +} + +extension UITextField { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + textColor = theme.titleText + keyboardAppearance = theme.appearence.keyboardAppearence + if let placeholder = placeholder { + attributedPlaceholder = NSAttributedString(string: placeholder, attributes: [.foregroundColor: theme.mutedAccent]) + } + } +} + +extension UISearchBar { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + barStyle = theme.appearence.barStyle + tintColor = theme.hyperlinkText + keyboardAppearance = theme.appearence.keyboardAppearence + let textField = subviews.first?.subviews.first { $0 is UITextField } as? UITextField + textField?.backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) + } +} + +extension UIActivityIndicatorView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + tintColor = theme.bodyText + } +} + +extension UIRefreshControl { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + tintColor = theme.bodyText + } +} + +extension UICollectionView { + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme() + } + + open override func addSubview(_ view: UIView) { + super.addSubview(view) + view.applyTheme() + } +} + +extension UITableView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + switch theme { + case .dark, .black: backgroundColor = style == .grouped ? theme.focusedBackground : theme.backgroundColor + default: backgroundColor = style == .grouped ? #colorLiteral(red: 0.937, green: 0.937, blue: 0.957, alpha: 1) : theme.backgroundColor + } + separatorColor = theme.mutedAccent + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme() + } + + open override func addSubview(_ view: UIView) { + super.addSubview(view) + view.applyTheme() + } +} + +extension UITableViewCell { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + detailTextLabel?.textColor = theme.auxiliaryText + } +} + +extension SLKTextView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + self.textColor = theme.bodyText + self.layer.borderColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.1518210827) + self.backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) + } +} + +extension UITextView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + self.tintColor = theme.hyperlinkText + } +} + +extension UINavigationBar { + override var theme: Theme? { return ThemeManager.theme } + + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + self.subviews.forEach { $0.applyTheme() } + self.tintColor = theme.bodyText + self.barStyle = theme.appearence.barStyle + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme() + } +} + +extension UIToolbar { + override var theme: Theme? { return ThemeManager.theme } + + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + self.isTranslucent = false + self.barTintColor = theme.focusedBackground + self.tintColor = theme.tintColor + self.barStyle = theme.appearence.barStyle + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme() + } +} + +extension UITabBar { + override var theme: Theme? { return ThemeManager.theme } + + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + self.barTintColor = theme.focusedBackground + self.tintColor = theme.tintColor + self.barStyle = theme.appearence.barStyle + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme() + } +} + +extension SLKTextInputbar { + override var theme: Theme? { return ThemeManager.theme } + + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + textView.keyboardAppearance = theme.appearence.keyboardAppearence + } + + open override func insertSubview(_ view: UIView, at index: Int) { + super.insertSubview(view, at: index) + view.applyTheme() + } +} From d973d04271c8675a49e279d6044209f7d2d1b0e7 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 2 May 2018 03:02:12 +0530 Subject: [PATCH 037/124] Memory cycle removed --- Rocket.Chat/Theme/ThemeManager.swift | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Rocket.Chat/Theme/ThemeManager.swift b/Rocket.Chat/Theme/ThemeManager.swift index eb29b6ac07..fb90d12eb2 100644 --- a/Rocket.Chat/Theme/ThemeManager.swift +++ b/Rocket.Chat/Theme/ThemeManager.swift @@ -15,7 +15,7 @@ struct ThemeManager { didSet { UIView.animate( withDuration: 0.3, - animations: ({ observers.forEach { $0?.applyTheme() } }) + animations: ({ observers.forEach { $0.value?.applyTheme() } }) ) { _ in let themeName = themes.first(where: { $0.theme == theme })?.title UserDefaults.standard.set(themeName, forKey: userDefaultsKey) @@ -26,12 +26,24 @@ struct ThemeManager { static let userDefaultsKey = "RCTheme" static let themes: [(title: String, theme: Theme)] = [("light", .light), ("dark", .dark), ("black", .black)] - static var observers = [Themeable?]() + static var observers = [Weak]() static func addObserver(_ observer: Themeable?) { observers = observers.compactMap { $0 } guard let observer = observer else { return } observer.applyTheme() - weak var weakObserver = observer - observers.append(weakObserver) + observers.append(Weak(observer)) + } +} + +struct Weak { + weak var value: T? + init(_ value: T) { + self.value = value + } +} + +extension Array where Element == Weak { + mutating func filterReleasedReferences() { + self = self.compactMap { $0 } } } From fdc446b49afec4262c5893a3ea5155796fbdd6cb Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 2 May 2018 18:56:50 +0530 Subject: [PATCH 038/124] Tests added --- Rocket.Chat.xcodeproj/project.pbxproj | 22 +++++- Rocket.Chat/Theme/ThemeManager.swift | 11 ++- .../API/Clients/CommandsClientSpec.swift | 4 +- Rocket.ChatTests/Theme/ThemeManagerSpec.swift | 71 +++++++++++++++++++ Rocket.ChatTests/Theme/ThemeableSpec.swift | 68 ++++++++++++++++++ 5 files changed, 164 insertions(+), 12 deletions(-) create mode 100644 Rocket.ChatTests/Theme/ThemeManagerSpec.swift create mode 100644 Rocket.ChatTests/Theme/ThemeableSpec.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 25d5e4e40e..4d0009dcd0 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -98,6 +98,8 @@ 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */; }; 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 333207FE20766E4F00AD3290 /* NotificationViewController.xib */; }; 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */; }; + 33419D792099170A00D1682A /* ThemeManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33419D782099170A00D1682A /* ThemeManagerSpec.swift */; }; + 33419D7B2099B7B900D1682A /* ThemeableSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */; }; 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; 3353DBF8206787E500738D1C /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Theme.swift */; }; 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; @@ -763,6 +765,8 @@ 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerTyping.swift; sourceTree = ""; }; 333207FE20766E4F00AD3290 /* NotificationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotificationViewController.xib; sourceTree = ""; }; 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentToTouchesWindow.swift; sourceTree = ""; }; + 33419D782099170A00D1682A /* ThemeManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManagerSpec.swift; sourceTree = ""; }; + 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableSpec.swift; sourceTree = ""; }; 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; 3353DBF7206787E500738D1C /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; @@ -1557,6 +1561,15 @@ path = SubscriptionManager; sourceTree = ""; }; + 33419D77209916EE00D1682A /* Theme */ = { + isa = PBXGroup; + children = ( + 33419D782099170A00D1682A /* ThemeManagerSpec.swift */, + 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */, + ); + path = Theme; + sourceTree = ""; + }; 3370D8D420977D4500EEA225 /* Theme */ = { isa = PBXGroup; children = ( @@ -2161,13 +2174,13 @@ 41DF76D61D2C50710028DBF8 = { isa = PBXGroup; children = ( - 106DAA428B5BF7289FB70C65 /* Frameworks */, - EE693BBD0CC2727847214E2D /* Pods */, - 41DF76E01D2C50710028DBF8 /* Products */, 41DF76E11D2C50710028DBF8 /* Rocket.Chat */, 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */, 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */, 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */, + 106DAA428B5BF7289FB70C65 /* Frameworks */, + EE693BBD0CC2727847214E2D /* Pods */, + 41DF76E01D2C50710028DBF8 /* Products */, ); sourceTree = ""; }; @@ -2208,6 +2221,7 @@ 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */ = { isa = PBXGroup; children = ( + 33419D77209916EE00D1682A /* Theme */, D18675E71F70A55D00406FB4 /* API */, D1DA25261F695AC700DB6ABB /* Controllers */, 41DC7A201D386B2C00896FC0 /* Extensions */, @@ -3938,6 +3952,7 @@ D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */, 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */, 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */, + 33419D7B2099B7B900D1682A /* ThemeableSpec.swift in Sources */, 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */, 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */, 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */, @@ -3967,6 +3982,7 @@ 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */, 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */, 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */, + 33419D792099170A00D1682A /* ThemeManagerSpec.swift in Sources */, 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */, 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */, 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */, diff --git a/Rocket.Chat/Theme/ThemeManager.swift b/Rocket.Chat/Theme/ThemeManager.swift index fb90d12eb2..fd35eb6e45 100644 --- a/Rocket.Chat/Theme/ThemeManager.swift +++ b/Rocket.Chat/Theme/ThemeManager.swift @@ -7,19 +7,16 @@ // import Foundation -import SlackTextViewController struct ThemeManager { static var theme = themes.first(where: { $0.title == UserDefaults.standard.string(forKey: userDefaultsKey) })?.theme ?? Theme.light { didSet { - UIView.animate( - withDuration: 0.3, - animations: ({ observers.forEach { $0.value?.applyTheme() } }) - ) { _ in - let themeName = themes.first(where: { $0.theme == theme })?.title - UserDefaults.standard.set(themeName, forKey: userDefaultsKey) + UIView.animate(withDuration: 0.3) { + observers.forEach { $0.value?.applyTheme() } } + let themeName = themes.first(where: { $0.theme == theme })?.title + UserDefaults.standard.set(themeName, forKey: userDefaultsKey) } } diff --git a/Rocket.ChatTests/API/Clients/CommandsClientSpec.swift b/Rocket.ChatTests/API/Clients/CommandsClientSpec.swift index c0ee004883..e31e103db9 100644 --- a/Rocket.ChatTests/API/Clients/CommandsClientSpec.swift +++ b/Rocket.ChatTests/API/Clients/CommandsClientSpec.swift @@ -33,12 +33,12 @@ class CommandsClientSpec: XCTestCase, RealmTestCase { client.fetchCommands(realm: realm) let expectation = XCTestExpectation(description: "two commands added to realm") - DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: { + DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: { if realm.objects(Command.self).count == 2 { expectation.fulfill() } }) - wait(for: [expectation], timeout: 2) + wait(for: [expectation], timeout: 3) } func testRunCommand() { diff --git a/Rocket.ChatTests/Theme/ThemeManagerSpec.swift b/Rocket.ChatTests/Theme/ThemeManagerSpec.swift new file mode 100644 index 0000000000..f0c2755592 --- /dev/null +++ b/Rocket.ChatTests/Theme/ThemeManagerSpec.swift @@ -0,0 +1,71 @@ +// +// ThemeManagerSpec.swift +// Rocket.ChatTests +// +// Created by Samar Sunkaria on 5/2/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import XCTest +@testable import Rocket_Chat + +class ThemeManagerSpec: XCTestCase { + + class MockObserver: Themeable { + var themeApplied = false + func applyTheme() { + themeApplied = true + } + } + + var mockObserver = MockObserver() + + override func setUp() { + super.setUp() + mockObserver = MockObserver() + } + + override func tearDown() { + super.tearDown() + ThemeManager.observers.removeAll() + ThemeManager.theme = .light + UserDefaults.standard.set(nil, forKey: ThemeManager.userDefaultsKey) + } + + func testAddingObserver() { + ThemeManager.addObserver(mockObserver) + XCTAssert(ThemeManager.observers.contains(where: { + guard let value = $0.value else { return false } + return value === mockObserver + }), "Theme manager should have a reference to the observer") + } + + func testRemovingObserver() { + ThemeManager.addObserver(mockObserver) + mockObserver = MockObserver() // Should release the old reference + XCTAssert(ThemeManager.observers.compactMap({ $0.value }).isEmpty, "Theme manager should not retain a reference to the observer") + } + + func testApplyThemeCalled() { + ThemeManager.addObserver(mockObserver) + XCTAssert(mockObserver.themeApplied, "applyTheme should be called") + mockObserver.themeApplied = false + ThemeManager.theme = .dark + XCTAssert(mockObserver.themeApplied, "applyTheme should be called") + } + + func testStoringThemeInUserDefaults() { + let theme = Theme.dark + ThemeManager.theme = theme + let themeName = UserDefaults.standard.string(forKey: ThemeManager.userDefaultsKey) + XCTAssertNotNil(themeName, "The theme should be stored in the User Deafults") + XCTAssertEqual(ThemeManager.themes.first(where: { $0.theme == theme })?.title, themeName, "The theme stored in user defaults should be the same as the theme assigned to the theme manager.") + } + + func testRetrievingThemeFromUserDefaultsWhenKeyIsNotStored() { + if UserDefaults.standard.string(forKey: ThemeManager.userDefaultsKey) == nil { + XCTAssert(ThemeManager.theme == .light, "The light theme should be the default theme in case value is not stored in user defaults") + return + } + } +} diff --git a/Rocket.ChatTests/Theme/ThemeableSpec.swift b/Rocket.ChatTests/Theme/ThemeableSpec.swift new file mode 100644 index 0000000000..8c2200e5c2 --- /dev/null +++ b/Rocket.ChatTests/Theme/ThemeableSpec.swift @@ -0,0 +1,68 @@ +// +// ThemeableSpec.swift +// Rocket.ChatTests +// +// Created by Samar Sunkaria on 5/2/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import XCTest +@testable import Rocket_Chat + +class ThemeableSpec: XCTestCase { + + class MockThemeableView: UIView { + var themeApplied = false + + override func applyTheme() { + super.applyTheme() + themeApplied = true + } + + override var theme: Theme? { return internalTheme } + var internalTheme: Theme? = Theme.light + } + + func testApplyThemeCalledOnSubview() { + let view = MockThemeableView() + let subview = MockThemeableView() + view.addSubview(subview) + view.applyTheme() + XCTAssert(subview.themeApplied, "Apply theme should be called on subview.") + } + + func testSettingThemeOnSuperview() { + let view = MockThemeableView() + let subview = UIView() + view.addSubview(subview) + view.internalTheme = .dark + XCTAssertEqual(subview.theme, view.internalTheme, "View should acquire its superview's theme.") + } + + func testSettingThemeOnSubview() { + let view = UIView() + let subview = MockThemeableView() + view.addSubview(subview) + subview.internalTheme = nil + XCTAssertEqual(subview.theme, nil, "View should be able to override its parent's theme.") + } + + func testNotThemeableView() { + let view = NotThemeableView() + XCTAssertEqual(view.theme, nil, "NotThemeableView should have a nil theme.") + } + + func testApplyThemeOnViewController() { + let controller = UIViewController() + let view = MockThemeableView() + controller.view.addSubview(view) + controller.applyTheme() + XCTAssert(view.themeApplied, "View controller should call applyTheme on its view.") + } + + func testBaseViewController() { + let controller = BaseViewController() + controller.viewDidLoad() + XCTAssert(ThemeManager.observers.contains { $0.value === controller }, "BaseViewController should add itself as an observer") + } +} From f6486fa64da651d4c51804a36bc1eba28e2dd507 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 3 May 2018 01:00:26 +0530 Subject: [PATCH 039/124] Audio player and Activity indicator themed correctly --- Rocket.Chat/Theme/ThemeableViews.swift | 2 +- .../Views/Cells/Chat/ChatMessageAudioView.swift | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift index e650f346be..6d67095b33 100644 --- a/Rocket.Chat/Theme/ThemeableViews.swift +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -58,7 +58,7 @@ extension UIActivityIndicatorView { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - tintColor = theme.bodyText + color = theme.bodyText } } diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageAudioView.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageAudioView.swift index 36c949dd81..89d27ddfd9 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageAudioView.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageAudioView.swift @@ -41,13 +41,7 @@ final class ChatMessageAudioView: ChatMessageAttachmentView { } } - @IBOutlet weak var playButton: UIButton! { - didSet { - playButton.tintColor = .gray - playButton.imageView?.tintColor = .gray - } - } - + @IBOutlet weak var playButton: UIButton! @IBOutlet weak var activityIndicator: UIActivityIndicatorView! private var player: AVAudioPlayer? { @@ -146,3 +140,12 @@ extension ChatMessageAudioView: AVAudioPlayerDelegate { self.timeSlider.value = 0.0 } } + +extension ChatMessageAudioView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + playButton.tintColor = theme.titleText + playButton.imageView?.tintColor = theme.titleText + } +} From b78c4fbe52218963e30851e73ccbdd1f4e9119f1 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 3 May 2018 02:20:25 +0530 Subject: [PATCH 040/124] Fixed font coloring for markdown quotes --- Rocket.Chat/Managers/MessageTextCacheManager.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Rocket.Chat/Managers/MessageTextCacheManager.swift b/Rocket.Chat/Managers/MessageTextCacheManager.swift index a32b1d6d49..c4dd2317ad 100644 --- a/Rocket.Chat/Managers/MessageTextCacheManager.swift +++ b/Rocket.Chat/Managers/MessageTextCacheManager.swift @@ -50,6 +50,14 @@ final class MessageTextCacheManager { let attributedString = text.transformMarkdown() let finalText = NSMutableAttributedString(attributedString: attributedString) + + // Set text color for markdown quotes + finalText.enumerateAttribute(.backgroundColor, in: NSRange(location: 0, length: finalText.length), options: []) { (value, range, _) in + if let backgroundColor = value as? UIColor, backgroundColor != .clear { + finalText.addAttribute(.foregroundColor, value: UIColor.darkGray, range: range) + } + } + finalText.trimCharacters(in: .whitespaces) finalText.highlightMentions(mentions, username: username) finalText.highlightChannels(channels) From 1bb642538ea1e55cbb705df69f53fed9626dbfad Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 3 May 2018 03:12:01 +0530 Subject: [PATCH 041/124] Theme refresh button removed from ChatViewController --- .../Controllers/Chat/ChatViewController.swift | 7 ------- Rocket.Chat/Storyboards/Chat.storyboard | 18 +++++------------- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index d6f3d6f2a0..15dd478153 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -15,13 +15,6 @@ private let kEmptyCellIdentifier = "kEmptyCellIdentifier" // swiftlint:disable file_length type_body_length final class ChatViewController: SLKTextViewController { - @IBAction func changeTheme(_ sender: Any) { - if ThemeManager.theme == .light { - ThemeManager.theme = .dark - } else { - ThemeManager.theme = .light - } - } var activityIndicator: LoaderView! @IBOutlet weak var activityIndicatorContainer: UIView! { diff --git a/Rocket.Chat/Storyboards/Chat.storyboard b/Rocket.Chat/Storyboards/Chat.storyboard index 50895c103a..7026de0b45 100644 --- a/Rocket.Chat/Storyboards/Chat.storyboard +++ b/Rocket.Chat/Storyboards/Chat.storyboard @@ -7,7 +7,6 @@ - @@ -62,18 +61,11 @@ - - - - - - - - - - - - + + + + + From 937a110fc98726ecd544b9ada085bf6f0922fa37 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 3 May 2018 13:19:10 +0530 Subject: [PATCH 042/124] SubscriptionsView removed --- Rocket.Chat.xcodeproj/project.pbxproj | 4 ---- .../Storyboards/Subscriptions.storyboard | 5 +---- .../Views/Subscriptions/SubscriptionsView.swift | 17 ----------------- 3 files changed, 1 insertion(+), 25 deletions(-) delete mode 100644 Rocket.Chat/Views/Subscriptions/SubscriptionsView.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 4d0009dcd0..84270a61dd 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -110,7 +110,6 @@ 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C12095995800EEA225 /* StarMessageRequest.swift */; }; 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */; }; 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */; }; - 3370D8C82095F56B00EEA225 /* SubscriptionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C72095F56A00EEA225 /* SubscriptionsView.swift */; }; 3370D8CE2096261F00EEA225 /* NotThemeableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */; }; 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */; }; 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */; }; @@ -777,7 +776,6 @@ 3370D8C12095995800EEA225 /* StarMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequest.swift; sourceTree = ""; }; 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequestSpec.swift; sourceTree = ""; }; 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessageSpec.swift; sourceTree = ""; }; - 3370D8C72095F56A00EEA225 /* SubscriptionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionsView.swift; sourceTree = ""; }; 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotThemeableView.swift; sourceTree = ""; }; 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopTransparentViewController.swift; sourceTree = ""; }; 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceCell.swift; sourceTree = ""; }; @@ -2066,7 +2064,6 @@ 41A91AED1E51C4E5005C94B1 /* Subscriptions */ = { isa = PBXGroup; children = ( - 3370D8C72095F56A00EEA225 /* SubscriptionsView.swift */, 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */, 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */, 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */, @@ -3917,7 +3914,6 @@ 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */, 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */, 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */, - 3370D8C82095F56B00EEA225 /* SubscriptionsView.swift in Sources */, 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */, 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */, 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */, diff --git a/Rocket.Chat/Storyboards/Subscriptions.storyboard b/Rocket.Chat/Storyboards/Subscriptions.storyboard index 6b38136a0b..58638865c0 100644 --- a/Rocket.Chat/Storyboards/Subscriptions.storyboard +++ b/Rocket.Chat/Storyboards/Subscriptions.storyboard @@ -14,7 +14,7 @@ - + @@ -235,9 +235,6 @@ - - - diff --git a/Rocket.Chat/Views/Subscriptions/SubscriptionsView.swift b/Rocket.Chat/Views/Subscriptions/SubscriptionsView.swift deleted file mode 100644 index cd54535f92..0000000000 --- a/Rocket.Chat/Views/Subscriptions/SubscriptionsView.swift +++ /dev/null @@ -1,17 +0,0 @@ -// -// SubscriptionsView.swift -// Rocket.Chat -// -// Created by Samar Sunkaria on 4/29/18. -// Copyright © 2018 Rocket.Chat. All rights reserved. -// - -import UIKit - -class SubscriptionsView: UIView { - @IBOutlet weak var subscriptionsTableView: UITableView! -} - -extension SubscriptionsView { - override var theme: Theme? { return nil } -} From edb133efee4d137e8db8f2e5af5504bf503f69df Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 3 May 2018 14:04:42 +0530 Subject: [PATCH 043/124] Merge issues fixed --- Rocket.Chat.xcodeproj/project.pbxproj | 9411 +++++++++++++------------ 1 file changed, 4706 insertions(+), 4705 deletions(-) diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 1f18f1fd75..c9b58c2cd3 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -1,4754 +1,4755 @@ // !$*UTF8*$! { - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { /* Begin PBXBuildFile section */ - 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */; }; - 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */; }; - 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */; }; - 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */; }; - 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */; }; - 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */; }; - 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */; }; - 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */; }; - 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */; }; - 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */; }; - 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */; }; - 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */; }; - 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */; }; - 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 140A95E0202F526C003FD564 /* Drawing.storyboard */; }; - 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E3202F536D003FD564 /* DrawingViewController.swift */; }; - 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */; }; - 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */; }; - 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1435BFA21F9B601600FB2768 /* RCTextView.swift */; }; - 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14A6A83020421DF8008C210D /* ColorPickerView.swift */; }; - 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */; }; - 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */; }; - 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */; }; - 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A213202E5CBD00175FDC /* Black-29@3x.png */; }; - 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A216202E5CBE00175FDC /* Black-76@2x.png */; }; - 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A217202E5CBE00175FDC /* Black-60@3x.png */; }; - 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A218202E5CBE00175FDC /* Black-60@2x.png */; }; - 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A219202E5CBE00175FDC /* Black-29@2x.png */; }; - 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */; }; - 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */; }; - 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */; }; - 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */; }; - 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A22F202E5D0400175FDC /* Red-60@3x.png */; }; - 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A230202E5D0400175FDC /* Red-29@3x.png */; }; - 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A232202E5D0400175FDC /* Red-29@2x.png */; }; - 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A233202E5D0400175FDC /* Red-76@2x.png */; }; - 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A234202E5D0400175FDC /* Red-60@2x.png */; }; - 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A235202E5D0500175FDC /* Red-40@3x.png */; }; - 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A236202E5D0500175FDC /* Red-40@2x.png */; }; - 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */; }; - 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A238202E5D0600175FDC /* Red-76@3x.png */; }; - 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */; }; - 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24C202E64B100175FDC /* BnW-40@3x.png */; }; - 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24D202E64B100175FDC /* BnW-29@2x.png */; }; - 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24E202E64B100175FDC /* BnW-60@2x.png */; }; - 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24F202E64B100175FDC /* BnW-60@3x.png */; }; - 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A250202E64B100175FDC /* BnW-29@3x.png */; }; - 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A251202E64B100175FDC /* BnW-76@2x.png */; }; - 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A252202E64B100175FDC /* BnW-40@2x.png */; }; - 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A254202E64B200175FDC /* BnW-76@3x.png */; }; - 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A263202E653D00175FDC /* Grey-40@2x.png */; }; - 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A264202E653D00175FDC /* Grey-29@2x.png */; }; - 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A265202E653D00175FDC /* Grey-76@3x.png */; }; - 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */; }; - 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A267202E653D00175FDC /* Grey-76@2x.png */; }; - 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A268202E653E00175FDC /* Grey-40@3x.png */; }; - 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A269202E653E00175FDC /* Grey-29@3x.png */; }; - 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26A202E653E00175FDC /* Grey-60@3x.png */; }; - 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26B202E653E00175FDC /* Grey-60@2x.png */; }; - 14F8A280202E659000175FDC /* White-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A277202E658E00175FDC /* White-76@2x.png */; }; - 14F8A281202E659000175FDC /* White-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A278202E658E00175FDC /* White-40@3x.png */; }; - 14F8A282202E659000175FDC /* White-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A279202E658E00175FDC /* White-76@3x.png */; }; - 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27A202E658F00175FDC /* White-83.5@2x.png */; }; - 14F8A284202E659000175FDC /* White-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27B202E658F00175FDC /* White-60@2x.png */; }; - 14F8A285202E659000175FDC /* White-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27C202E658F00175FDC /* White-29@3x.png */; }; - 14F8A286202E659000175FDC /* White-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27D202E658F00175FDC /* White-29@2x.png */; }; - 14F8A287202E659000175FDC /* White-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27E202E658F00175FDC /* White-40@2x.png */; }; - 14F8A288202E659000175FDC /* White-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27F202E658F00175FDC /* White-60@3x.png */; }; - 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A289202E65C500175FDC /* Blue-29@3x.png */; }; - 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28A202E65C600175FDC /* Blue-60@2x.png */; }; - 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28B202E65C600175FDC /* Blue-60@3x.png */; }; - 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28C202E65C600175FDC /* Blue-76@3x.png */; }; - 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */; }; - 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28E202E65C600175FDC /* Blue-40@2x.png */; }; - 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28F202E65C700175FDC /* Blue-29@2x.png */; }; - 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A290202E65C700175FDC /* Blue-40@3x.png */; }; - 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A291202E65C700175FDC /* Blue-76@2x.png */; }; - 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */; }; - 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */; }; - 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */; }; - 330888B42099094400D44D4E /* ThemeableViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330888B32099094400D44D4E /* ThemeableViews.swift */; }; - 330888B6209909F600D44D4E /* ThemeableViewControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */; }; - 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */; }; - 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */; }; - 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */; }; - 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */; }; - 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */; }; - 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */; }; - 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */; }; - 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */; }; - 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 333207FE20766E4F00AD3290 /* NotificationViewController.xib */; }; - 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */; }; - 33419D792099170A00D1682A /* ThemeManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33419D782099170A00D1682A /* ThemeManagerSpec.swift */; }; - 33419D7B2099B7B900D1682A /* ThemeableSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */; }; - 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; - 3353DBF8206787E500738D1C /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Theme.swift */; }; - 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; - 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8B920926E5700EEA225 /* ChatView.swift */; }; - 3370D8BC2093570D00EEA225 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BB2093570D00EEA225 /* ThemeManager.swift */; }; - 3370D8BE2095978800EEA225 /* UserActionSheetPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */; }; - 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */; }; - 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C12095995800EEA225 /* StarMessageRequest.swift */; }; - 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */; }; - 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */; }; - 3370D8CE2096261F00EEA225 /* NotThemeableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */; }; - 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */; }; - 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */; }; - 3370D8D620977D8600EEA225 /* ThemePreferenceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */; }; - 3370D8D820977E9C00EEA225 /* ThemePreferenceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */; }; - 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; - 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; - 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; - 33A5C9CB206A565800FE1C8F /* travel.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C2206A565800FE1C8F /* travel.json */; }; - 33A5C9CC206A565800FE1C8F /* regional.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C3206A565800FE1C8F /* regional.json */; }; - 33A5C9CD206A565800FE1C8F /* flags.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C4206A565800FE1C8F /* flags.json */; }; - 33A5C9CE206A565800FE1C8F /* people.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C5206A565800FE1C8F /* people.json */; }; - 33A5C9CF206A565800FE1C8F /* objects.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C6206A565800FE1C8F /* objects.json */; }; - 33A5C9D0206A565800FE1C8F /* food.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C7206A565800FE1C8F /* food.json */; }; - 33A5C9D1206A565800FE1C8F /* activity.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C8206A565800FE1C8F /* activity.json */; }; - 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; - 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; - 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */; }; - 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; - 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; - 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; - 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; - 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; - 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */; }; - 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */; }; - 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */; }; - 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */; }; - 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */; }; - 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */; }; - 4100B2842087779D00E2883A /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; - 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF001F8D0A1700F67E89 /* AppManager.swift */; }; - 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */; }; - 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B51F680DB00019854B /* NetworkCoordinator.swift */; }; - 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B71F6825C30019854B /* NetworkManagerSpec.swift */; }; - 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */; }; - 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; - 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */; }; - 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */; }; - 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4102E3A91E532323004BAA82 /* Preferences.storyboard */; }; - 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */; }; - 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */; }; - 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */; }; - 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */; }; - 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */; }; - 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */; }; - 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */; }; - 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */; }; - 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */; }; - 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */; }; - 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */; }; - 4129937E208E25C200E12C49 /* (null) in Sources */ = {isa = PBXBuildFile; }; - 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */; }; - 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */; }; - 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */; }; - 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */; }; - 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; - 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */; }; - 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */; }; - 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412EF3C52050507C001689A3 /* ReusableViewText.xib */; }; - 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; - 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */; }; - 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */; }; - 413996171F3B44500075F96E /* UploadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 413996161F3B44500075F96E /* UploadHelper.swift */; }; - 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */; }; - 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */; }; - 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */; }; - 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */; }; - 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; - 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C8E1F2A116900790EA7 /* ServerManager.swift */; }; - 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */; }; - 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF51D46320F00093E10 /* ResponseMessage.swift */; }; - 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF91D46395400093E10 /* SocketManager.swift */; }; - 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FFB1D46395900093E10 /* SocketResponse.swift */; }; - 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */; }; - 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; - 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */; }; - 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */; }; - 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */; }; - 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */; }; - 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */; }; - 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */; }; - 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */; }; - 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */; }; - 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */; }; - 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */; }; - 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4153E80420504BE700FBC26B /* ReusableViewText.swift */; }; - 41552F661D30308C0081438D /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; - 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F671D3035D80081438D /* SocketManagerSpec.swift */; }; - 4159720C1D3DB854002258F4 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; - 4159720E1D3DB882002258F4 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; - 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */; }; - 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */; }; - 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */; }; - 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */; }; - 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */; }; - 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133391D46E0A200E09DA2 /* AuthSpec.swift */; }; - 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333B1D46E32F00E09DA2 /* UserSpec.swift */; }; - 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */; }; - 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */; }; - 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */; }; - 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; - 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */; }; - 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1521D651A8800AAAE49 /* UserManager.swift */; }; - 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */; }; - 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */; }; - 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */; }; - 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */; }; - 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB121D2D99960086DAC8 /* BaseViewController.swift */; }; - 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */; }; - 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */; }; - 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; - 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */; }; - 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */; }; - 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */; }; - 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 41833F4D1DEF16B600E54655 /* Keys.plist */; }; - 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */; }; - 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */; }; - 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */; }; - 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */; }; - 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */; }; - 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */; }; - 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */; }; - 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */; }; - 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */; }; - 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; - 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419205481D52EDE6004EEC5F /* UILabelExtension.swift */; }; - 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */; }; - 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; - 4199A9891DABCC570035F820 /* Emojione.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4199A9881DABCC570035F820 /* Emojione.swift */; }; - 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */; }; - 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */; }; - 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */; }; - 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */; }; - 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */; }; - 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA31F3CA21A005F224B /* DownloadManager.swift */; }; - 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */; }; - 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */; }; - 41A79C0F1D2F085F00A1968E /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; - 41A79C131D2F09F200A1968E /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; - 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; - 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */; }; - 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */; }; - 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */; }; - 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */; }; - 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD481E9DBB100007A458 /* LoaderView.swift */; }; - 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */; }; - 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */; }; - 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; - 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C61FBF0F9D000510B7 /* WindowManager.swift */; }; - 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */; }; - 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96361207E48260068F1A6 /* MessageTextValidator.swift */; }; - 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */; }; - 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */; }; - 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; - 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */; }; - 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */; }; - 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C275DE1D848005003C88CF /* AvatarView.swift */; }; - 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41C275E01D84815C003C88CF /* AvatarView.xib */; }; - 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */; }; - 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */; }; - 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */; }; - 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */; }; - 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */; }; - 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */; }; - 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */; }; - 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */; }; - 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */; }; - 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */; }; - 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D7CA861E644E47000F38EA /* MessageExtensions.swift */; }; - 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */; }; - 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */; }; - 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */; }; - 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; - 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; - 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1C1D38471700896FC0 /* MessageManager.swift */; }; - 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */; }; - 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */; }; - 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */; }; - 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */; }; - 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */; }; - 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */; }; - 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; - 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */; }; - 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */; }; - 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2F9FE1D414DE800238DFD /* Chat.storyboard */; }; - 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */; }; - 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */; }; - 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA061D41513C00238DFD /* ChatViewController.swift */; }; - 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */; }; - 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */; }; - 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */; }; - 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */; }; - 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */; }; - 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */; }; - 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 41EB22381E5F056600AA3AE7 /* Localizable.strings */; }; - 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */; }; - 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */; }; - 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */; }; - 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */; }; - 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */; }; - 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; - 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */; }; - 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */; }; - 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; - 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA31E3708B10041C5C5 /* PushManager.swift */; }; - 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */; }; - 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */; }; - 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4141F852B720074B2F4 /* SelectField.swift */; }; - 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4181F852D670074B2F4 /* CustomField.swift */; }; - 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77BA81501F87C4CB00F295F4 /* TextField.swift */; }; - 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261241F97445300724A1F /* AuthSettingsSpec.swift */; }; - 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */; }; - 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261291F97453600724A1F /* CustomFieldsSpec.swift */; }; - 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */; }; - 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612B1F97453600724A1F /* TextFieldSpec.swift */; }; - 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */; }; - 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */; }; - 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; - 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */; }; - 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */; }; - 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; - 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */; }; - 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */; }; - 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; - 800640F72049BA25006D990F /* SEScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800640F62049BA25006D990F /* SEScene.swift */; }; - 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */; }; - 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */; }; - 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800F38EC2019492D0005CB78 /* DeepLink.swift */; }; - 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */; }; - 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */; }; - 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */; }; - 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */; }; - 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */; }; - 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */; }; - 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD491F728E6A00D9A692 /* MemberCell.swift */; }; - 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */; }; - 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */; }; - 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */; }; - 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */; }; - 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8661FD6B4F400EE1A4E /* Command.swift */; }; - 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; - 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; - 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; - 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */; }; - 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */; }; - 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; - 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */; }; - 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */; }; - 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */; }; - 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */; }; - 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */; }; - 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */; }; - 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */; }; - 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */; }; - 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */; }; - 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */; }; - 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */; }; - 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */; }; - 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */; }; - 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */; }; - 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */; }; - 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; - 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */; }; - 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */; }; - 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */; }; - 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */; }; - 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */; }; - 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498ED1F7A8380005477EC /* MeRequest.swift */; }; - 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */; }; - 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */; }; - 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */; }; - 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F12059B6F60067157B /* VideoInfo.swift */; }; - 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */; }; - 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E102049C7340072CD23 /* SENavigationController.swift */; }; - 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; - 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */; }; - 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */; }; - 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80307E431FD75DC0006AD9EF /* VoiceOver.strings */; }; - 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */; }; - 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 803782B61FB4751D00DED049 /* RealmTestCase.swift */; }; - 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */; }; - 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C0412028C7EF007E21FA /* ReactorListView.swift */; }; - 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8041C0432028C828007E21FA /* ReactorListView.xib */; }; - 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */; }; - 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */; }; - 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; - 804273DD204EBD51006DF420 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; - 804273DE204EBD51006DF420 /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; - 804273DF204EBD51006DF420 /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; - 804273E0204EBD51006DF420 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; - 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; - 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; - 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */; }; - 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */; }; - 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC341FFC03380033151B /* CustomEmojiManager.swift */; }; - 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC361FFC08870033151B /* CustomEmoji.swift */; }; - 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */; }; - 806401311FB09DE800990572 /* Permission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401301FB09DE800990572 /* Permission.swift */; }; - 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401321FB09EC400990572 /* PermissionModelMapping.swift */; }; - 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401341FB09F8A00990572 /* PermissionManager.swift */; }; - 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 806465EB1FED19B9001F27DB /* EmojiView.xib */; }; - 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806465ED1FED1AFE001F27DB /* EmojiView.swift */; }; - 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */; }; - 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FE20079734009FE94D /* DeleteMessageRequest.swift */; }; - 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */; }; - 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */; }; - 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */; }; - 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; - 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8069D26D1FFF876D00C75926 /* Emoji.swift */; }; - 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */; }; - 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */; }; - 806DB94320687697004ED8ED /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; - 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; - 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */; }; - 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */; }; - 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */; }; - 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */; }; - 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371991F94E83600D53ADF /* SocketError.swift */; }; - 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719B1F963FA400D53ADF /* APITestCase.swift */; }; - 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */; }; - 807371A01F96937100D53ADF /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719F1F96937100D53ADF /* LoginService.swift */; }; - 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */; }; - 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */; }; - 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9920484A6000114F28 /* SEStore.swift */; }; - 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; - 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; - 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; - 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */; }; - 8076FDA42048533000114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; - 8076FDA52048534200114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; - 8076FDA62048536800114F28 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; - 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA8204853DE00114F28 /* RealmExecute.swift */; }; - 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */; }; - 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */; }; - 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */; }; - 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */; }; - 8076FDB3204856E200114F28 /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; - 8076FDB52048571200114F28 /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; - 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; - 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */; }; - 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; - 8076FDBD2048598100114F28 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; - 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */; }; - 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; - 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC62048632300114F28 /* SubscriptionQueries.swift */; }; - 8076FDC82048639700114F28 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; - 8076FDC9204863AF00114F28 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; - 8076FDCA204863B900114F28 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; - 8076FDCB204863C500114F28 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; - 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; - 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; - 8076FDCE2048642400114F28 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; - 8076FDD12048646500114F28 /* MessageReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD02048646500114F28 /* MessageReply.swift */; }; - 8076FDD22048648D00114F28 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; - 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; - 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD5204864E700114F28 /* UserQueries.swift */; }; - 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD72048654F00114F28 /* UserUtils.swift */; }; - 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD920489F5900114F28 /* SEViewController.swift */; }; - 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */; }; - 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */; }; - 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; - 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; - 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDEC2049A5F600114F28 /* SECellModel.swift */; }; - 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */; }; - 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */; }; - 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */; }; - 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */; }; - 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0520751ED1006B600E /* SpotlightClient.swift */; }; - 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0720751EDB006B600E /* SpotlightRequest.swift */; }; - 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */; }; - 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */; }; - 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C11207522EF006B600E /* LoginServicesRequest.swift */; }; - 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53C2044B49800E21429 /* Emojione+Transform.swift */; }; - 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */; }; - 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */; }; - 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 807FB55C2046E7DD00E21429 /* Main.storyboard */; }; - 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB568204729E500E21429 /* SEServersViewController.swift */; }; - 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */; }; - 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 807FB57120472B6A00E21429 /* Localizable.strings */; }; - 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB581204837AF00E21429 /* SEServersViewModel.swift */; }; - 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */; }; - 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; - 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */; }; - 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792371FB14B3300EFE77F /* PermissionSpec.swift */; }; - 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; - 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; - 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; - 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; - 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; - 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB5204EEF1E00C41435 /* SelectServer.swift */; }; - 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB8204EFBCC00C41435 /* SENavigation.swift */; }; - 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */; }; - 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABE204F36F200C41435 /* SESearchState.swift */; }; - 80977AC2204F37C200C41435 /* SEState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC1204F37C200C41435 /* SEState.swift */; }; - 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */; }; - 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */; }; - 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */; }; - 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530F1FE2F17D00833DD2 /* ReactionView.swift */; }; - 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53111FE2F2F900833DD2 /* ReactionView.xib */; }; - 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53131FE3294400833DD2 /* ReactionListView.xib */; }; - 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; - 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; - 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; - 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */; }; - 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */; }; - 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */; }; - 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */; }; - 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */; }; - 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */; }; - 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */; }; - 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C561F71D2E400FE5AC4 /* APISpec.swift */; }; - 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */; }; - 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */; }; - 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */; }; - 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */; }; - 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */; }; - 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */; }; - 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80CFB5711F8D697100FC9715 /* ReplyView.xib */; }; - 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */; }; - 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */; }; - 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE5F205016B40056B17F /* SEServerCell.swift */; }; - 80D0CE62205023710056B17F /* SECell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE61205023710056B17F /* SECell.swift */; }; - 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE63205034280056B17F /* SEServerCellModel.swift */; }; - 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6520503C860056B17F /* SERoomCell.swift */; }; - 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE6720503C970056B17F /* SERoomCell.xib */; }; - 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */; }; - 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; - 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6E20509C100056B17F /* SEAvatarView.swift */; }; - 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE7020509C230056B17F /* SEAvatarView.xib */; }; - 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; - 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; - 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; - 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; - 80D5637220592D32008896D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80D5637120592D32008896D6 /* Assets.xcassets */; }; - 80D563752059325A008896D6 /* MimeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D563742059325A008896D6 /* MimeType.swift */; }; - 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5637620593533008896D6 /* ParseItemProviders.swift */; }; - 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D955C1202154A300E3F281 /* CASViewController.swift */; }; - 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; - 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; - 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */ = {isa = PBXBuildFile; fileRef = 80DC9A6F206BAC8B00032BE0 /* mimetype.json */; }; - 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */; }; - 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */; }; - 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */; }; - 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; - 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */; }; - 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */; }; - 80FA9066205313E20069038F /* SEContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9065205313E20069038F /* SEContent.swift */; }; - 80FA9068205314040069038F /* SEServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9067205314040069038F /* SEServer.swift */; }; - 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906920569F890069038F /* SEComposeFileCell.swift */; }; - 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA906B20569FA10069038F /* SEComposeFileCell.xib */; }; - 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */; }; - 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */; }; - 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90712056C1190069038F /* SEComposeTextCell.swift */; }; - 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA90732056C1350069038F /* SEComposeTextCell.xib */; }; - 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */; }; - 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */; }; - 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA907C2057F4650069038F /* SubmitContent.swift */; }; - 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FE8DED206584EA0099170E /* SEFileDetailView.xib */; }; - 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FE8DEF206587510099170E /* SEFileDetailView.swift */; }; - 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */; }; - 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */; }; - 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */; }; - 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */; }; - 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */; }; - 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D21F8CF08100233561 /* FormTableViewCell.swift */; }; - 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */; }; - 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */; }; - 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */; }; - 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */; }; - 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */; }; - 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */; }; - 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */; }; - 992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */; }; - 992B5AB8209A2890009C8123 /* SubscriptionFilesRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */; }; - 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */; }; - 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */; }; - 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */; }; - 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */; }; - 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */; }; - 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */; }; - 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */; }; - 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */; }; - 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */; }; - 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */; }; - 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */; }; - 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */; }; - 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */; }; - 9987B5962093E4BA007D277C /* FilesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B5952093E4BA007D277C /* FilesListViewController.swift */; }; - 9987B5992093E526007D277C /* FileTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B5972093E523007D277C /* FileTableViewCell.swift */; }; - 9987B59A2093E526007D277C /* FileTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9987B5982093E524007D277C /* FileTableViewCell.xib */; }; - 9987B59C2093E60D007D277C /* SubscriptionFilesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */; }; - 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */; }; - 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */; }; - 999F25B5207EEB0C002E0F68 /* FileModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */; }; - 999F25B7207EEE70002E0F68 /* (null) in Sources */ = {isa = PBXBuildFile; }; - 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */; }; - 99C577EE207E4F1500CE9B4D /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C577ED207E4F1500CE9B4D /* File.swift */; }; - 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */; }; - 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888FA204623A900E51306 /* UpdateUserRequest.swift */; }; - 99DBB872208FF6FE00382DB2 /* SearchMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */; }; - 99DBB8742090360600382DB2 /* MessagesListControllerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */; }; - 99DBB87620903A7F00382DB2 /* SearchMessagesRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */; }; - 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */; }; - 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */; }; - A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */; }; - AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */; }; - B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */; }; - B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */; }; - D10E9C1A1F643457007F1796 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; - D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */; }; - D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */; }; - D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C211F643616007F1796 /* MentionModelMapping.swift */; }; - D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */; }; - D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */; }; - D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */; }; - D15C83861F70991F001AB155 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; - D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */; }; - D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675EB1F716A0D00406FB4 /* LoginRequest.swift */; }; - D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */; }; - D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */; }; - D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */; }; - D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */; }; - D1D535EC1F7081FA006625D2 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; - D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; - D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535F01F70864C006625D2 /* InfoRequest.swift */; }; - D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */; }; - D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */; }; - D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28221DFD86C300D6019C /* LauncherProtocol.swift */; }; - D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */; }; - D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */; }; + 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */; }; + 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */; }; + 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */; }; + 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */; }; + 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */; }; + 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */; }; + 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */; }; + 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */; }; + 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */; }; + 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */; }; + 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */; }; + 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */; }; + 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */; }; + 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 140A95E0202F526C003FD564 /* Drawing.storyboard */; }; + 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E3202F536D003FD564 /* DrawingViewController.swift */; }; + 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */; }; + 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */; }; + 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1435BFA21F9B601600FB2768 /* RCTextView.swift */; }; + 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14A6A83020421DF8008C210D /* ColorPickerView.swift */; }; + 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */; }; + 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */; }; + 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */; }; + 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A213202E5CBD00175FDC /* Black-29@3x.png */; }; + 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A216202E5CBE00175FDC /* Black-76@2x.png */; }; + 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A217202E5CBE00175FDC /* Black-60@3x.png */; }; + 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A218202E5CBE00175FDC /* Black-60@2x.png */; }; + 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A219202E5CBE00175FDC /* Black-29@2x.png */; }; + 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */; }; + 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */; }; + 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */; }; + 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */; }; + 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A22F202E5D0400175FDC /* Red-60@3x.png */; }; + 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A230202E5D0400175FDC /* Red-29@3x.png */; }; + 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A232202E5D0400175FDC /* Red-29@2x.png */; }; + 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A233202E5D0400175FDC /* Red-76@2x.png */; }; + 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A234202E5D0400175FDC /* Red-60@2x.png */; }; + 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A235202E5D0500175FDC /* Red-40@3x.png */; }; + 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A236202E5D0500175FDC /* Red-40@2x.png */; }; + 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */; }; + 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A238202E5D0600175FDC /* Red-76@3x.png */; }; + 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */; }; + 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24C202E64B100175FDC /* BnW-40@3x.png */; }; + 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24D202E64B100175FDC /* BnW-29@2x.png */; }; + 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24E202E64B100175FDC /* BnW-60@2x.png */; }; + 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24F202E64B100175FDC /* BnW-60@3x.png */; }; + 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A250202E64B100175FDC /* BnW-29@3x.png */; }; + 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A251202E64B100175FDC /* BnW-76@2x.png */; }; + 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A252202E64B100175FDC /* BnW-40@2x.png */; }; + 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A254202E64B200175FDC /* BnW-76@3x.png */; }; + 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A263202E653D00175FDC /* Grey-40@2x.png */; }; + 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A264202E653D00175FDC /* Grey-29@2x.png */; }; + 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A265202E653D00175FDC /* Grey-76@3x.png */; }; + 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */; }; + 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A267202E653D00175FDC /* Grey-76@2x.png */; }; + 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A268202E653E00175FDC /* Grey-40@3x.png */; }; + 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A269202E653E00175FDC /* Grey-29@3x.png */; }; + 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26A202E653E00175FDC /* Grey-60@3x.png */; }; + 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26B202E653E00175FDC /* Grey-60@2x.png */; }; + 14F8A280202E659000175FDC /* White-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A277202E658E00175FDC /* White-76@2x.png */; }; + 14F8A281202E659000175FDC /* White-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A278202E658E00175FDC /* White-40@3x.png */; }; + 14F8A282202E659000175FDC /* White-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A279202E658E00175FDC /* White-76@3x.png */; }; + 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27A202E658F00175FDC /* White-83.5@2x.png */; }; + 14F8A284202E659000175FDC /* White-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27B202E658F00175FDC /* White-60@2x.png */; }; + 14F8A285202E659000175FDC /* White-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27C202E658F00175FDC /* White-29@3x.png */; }; + 14F8A286202E659000175FDC /* White-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27D202E658F00175FDC /* White-29@2x.png */; }; + 14F8A287202E659000175FDC /* White-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27E202E658F00175FDC /* White-40@2x.png */; }; + 14F8A288202E659000175FDC /* White-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27F202E658F00175FDC /* White-60@3x.png */; }; + 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A289202E65C500175FDC /* Blue-29@3x.png */; }; + 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28A202E65C600175FDC /* Blue-60@2x.png */; }; + 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28B202E65C600175FDC /* Blue-60@3x.png */; }; + 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28C202E65C600175FDC /* Blue-76@3x.png */; }; + 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */; }; + 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28E202E65C600175FDC /* Blue-40@2x.png */; }; + 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28F202E65C700175FDC /* Blue-29@2x.png */; }; + 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A290202E65C700175FDC /* Blue-40@3x.png */; }; + 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A291202E65C700175FDC /* Blue-76@2x.png */; }; + 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */; }; + 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */; }; + 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */; }; + 330888B42099094400D44D4E /* ThemeableViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330888B32099094400D44D4E /* ThemeableViews.swift */; }; + 330888B6209909F600D44D4E /* ThemeableViewControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */; }; + 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */; }; + 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */; }; + 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */; }; + 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */; }; + 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */; }; + 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */; }; + 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */; }; + 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */; }; + 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 333207FE20766E4F00AD3290 /* NotificationViewController.xib */; }; + 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */; }; + 33419D792099170A00D1682A /* ThemeManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33419D782099170A00D1682A /* ThemeManagerSpec.swift */; }; + 33419D7B2099B7B900D1682A /* ThemeableSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */; }; + 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; + 3353DBF8206787E500738D1C /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Theme.swift */; }; + 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; + 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8B920926E5700EEA225 /* ChatView.swift */; }; + 3370D8BC2093570D00EEA225 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BB2093570D00EEA225 /* ThemeManager.swift */; }; + 3370D8BE2095978800EEA225 /* UserActionSheetPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */; }; + 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */; }; + 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C12095995800EEA225 /* StarMessageRequest.swift */; }; + 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */; }; + 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */; }; + 3370D8CE2096261F00EEA225 /* NotThemeableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */; }; + 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */; }; + 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */; }; + 3370D8D620977D8600EEA225 /* ThemePreferenceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */; }; + 3370D8D820977E9C00EEA225 /* ThemePreferenceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */; }; + 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; + 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; + 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; + 33A5C9CB206A565800FE1C8F /* travel.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C2206A565800FE1C8F /* travel.json */; }; + 33A5C9CC206A565800FE1C8F /* regional.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C3206A565800FE1C8F /* regional.json */; }; + 33A5C9CD206A565800FE1C8F /* flags.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C4206A565800FE1C8F /* flags.json */; }; + 33A5C9CE206A565800FE1C8F /* people.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C5206A565800FE1C8F /* people.json */; }; + 33A5C9CF206A565800FE1C8F /* objects.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C6206A565800FE1C8F /* objects.json */; }; + 33A5C9D0206A565800FE1C8F /* food.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C7206A565800FE1C8F /* food.json */; }; + 33A5C9D1206A565800FE1C8F /* activity.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C8206A565800FE1C8F /* activity.json */; }; + 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; + 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; + 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */; }; + 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; + 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; + 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; + 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; + 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; + 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */; }; + 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */; }; + 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */; }; + 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */; }; + 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */; }; + 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */; }; + 4100B2842087779D00E2883A /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; + 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF001F8D0A1700F67E89 /* AppManager.swift */; }; + 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */; }; + 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B51F680DB00019854B /* NetworkCoordinator.swift */; }; + 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B71F6825C30019854B /* NetworkManagerSpec.swift */; }; + 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */; }; + 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; + 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */; }; + 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */; }; + 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4102E3A91E532323004BAA82 /* Preferences.storyboard */; }; + 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */; }; + 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */; }; + 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */; }; + 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */; }; + 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */; }; + 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */; }; + 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */; }; + 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */; }; + 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */; }; + 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */; }; + 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */; }; + 4129937E208E25C200E12C49 /* (null) in Sources */ = {isa = PBXBuildFile; }; + 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */; }; + 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */; }; + 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */; }; + 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */; }; + 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; + 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */; }; + 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */; }; + 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412EF3C52050507C001689A3 /* ReusableViewText.xib */; }; + 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; + 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */; }; + 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */; }; + 413996171F3B44500075F96E /* UploadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 413996161F3B44500075F96E /* UploadHelper.swift */; }; + 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */; }; + 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */; }; + 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */; }; + 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */; }; + 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; + 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C8E1F2A116900790EA7 /* ServerManager.swift */; }; + 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */; }; + 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF51D46320F00093E10 /* ResponseMessage.swift */; }; + 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF91D46395400093E10 /* SocketManager.swift */; }; + 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FFB1D46395900093E10 /* SocketResponse.swift */; }; + 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */; }; + 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; + 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */; }; + 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */; }; + 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */; }; + 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */; }; + 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */; }; + 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */; }; + 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */; }; + 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */; }; + 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */; }; + 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */; }; + 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4153E80420504BE700FBC26B /* ReusableViewText.swift */; }; + 41552F661D30308C0081438D /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; + 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F671D3035D80081438D /* SocketManagerSpec.swift */; }; + 4159720C1D3DB854002258F4 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; + 4159720E1D3DB882002258F4 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; + 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */; }; + 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */; }; + 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */; }; + 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */; }; + 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */; }; + 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133391D46E0A200E09DA2 /* AuthSpec.swift */; }; + 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333B1D46E32F00E09DA2 /* UserSpec.swift */; }; + 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */; }; + 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */; }; + 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */; }; + 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; + 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */; }; + 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1521D651A8800AAAE49 /* UserManager.swift */; }; + 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */; }; + 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */; }; + 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */; }; + 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */; }; + 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB121D2D99960086DAC8 /* BaseViewController.swift */; }; + 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */; }; + 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */; }; + 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; + 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */; }; + 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */; }; + 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */; }; + 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 41833F4D1DEF16B600E54655 /* Keys.plist */; }; + 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */; }; + 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */; }; + 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */; }; + 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */; }; + 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */; }; + 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */; }; + 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */; }; + 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */; }; + 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */; }; + 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; + 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419205481D52EDE6004EEC5F /* UILabelExtension.swift */; }; + 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */; }; + 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; + 4199A9891DABCC570035F820 /* Emojione.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4199A9881DABCC570035F820 /* Emojione.swift */; }; + 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */; }; + 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */; }; + 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */; }; + 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */; }; + 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */; }; + 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA31F3CA21A005F224B /* DownloadManager.swift */; }; + 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */; }; + 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */; }; + 41A79C0F1D2F085F00A1968E /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; + 41A79C131D2F09F200A1968E /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; + 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; + 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */; }; + 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */; }; + 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */; }; + 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */; }; + 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD481E9DBB100007A458 /* LoaderView.swift */; }; + 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */; }; + 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */; }; + 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; + 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C61FBF0F9D000510B7 /* WindowManager.swift */; }; + 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */; }; + 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96361207E48260068F1A6 /* MessageTextValidator.swift */; }; + 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */; }; + 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */; }; + 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; + 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */; }; + 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */; }; + 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C275DE1D848005003C88CF /* AvatarView.swift */; }; + 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41C275E01D84815C003C88CF /* AvatarView.xib */; }; + 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */; }; + 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */; }; + 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */; }; + 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */; }; + 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */; }; + 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */; }; + 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */; }; + 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */; }; + 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */; }; + 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */; }; + 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D7CA861E644E47000F38EA /* MessageExtensions.swift */; }; + 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */; }; + 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */; }; + 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */; }; + 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; + 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; + 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1C1D38471700896FC0 /* MessageManager.swift */; }; + 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */; }; + 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */; }; + 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */; }; + 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */; }; + 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */; }; + 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */; }; + 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; + 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */; }; + 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */; }; + 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2F9FE1D414DE800238DFD /* Chat.storyboard */; }; + 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */; }; + 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */; }; + 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA061D41513C00238DFD /* ChatViewController.swift */; }; + 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */; }; + 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */; }; + 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */; }; + 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */; }; + 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */; }; + 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */; }; + 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 41EB22381E5F056600AA3AE7 /* Localizable.strings */; }; + 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */; }; + 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */; }; + 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */; }; + 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */; }; + 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */; }; + 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; + 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */; }; + 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */; }; + 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; + 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA31E3708B10041C5C5 /* PushManager.swift */; }; + 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */; }; + 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */; }; + 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4141F852B720074B2F4 /* SelectField.swift */; }; + 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4181F852D670074B2F4 /* CustomField.swift */; }; + 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77BA81501F87C4CB00F295F4 /* TextField.swift */; }; + 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261241F97445300724A1F /* AuthSettingsSpec.swift */; }; + 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */; }; + 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261291F97453600724A1F /* CustomFieldsSpec.swift */; }; + 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */; }; + 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612B1F97453600724A1F /* TextFieldSpec.swift */; }; + 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */; }; + 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */; }; + 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; + 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */; }; + 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */; }; + 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; + 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */; }; + 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */; }; + 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; + 800640F72049BA25006D990F /* SEScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800640F62049BA25006D990F /* SEScene.swift */; }; + 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */; }; + 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */; }; + 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800F38EC2019492D0005CB78 /* DeepLink.swift */; }; + 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */; }; + 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */; }; + 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */; }; + 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */; }; + 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */; }; + 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */; }; + 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD491F728E6A00D9A692 /* MemberCell.swift */; }; + 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */; }; + 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */; }; + 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */; }; + 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */; }; + 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8661FD6B4F400EE1A4E /* Command.swift */; }; + 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; + 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; + 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; + 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */; }; + 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */; }; + 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; + 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */; }; + 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */; }; + 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */; }; + 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */; }; + 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */; }; + 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */; }; + 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */; }; + 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */; }; + 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */; }; + 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */; }; + 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */; }; + 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */; }; + 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */; }; + 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */; }; + 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */; }; + 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; + 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */; }; + 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */; }; + 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */; }; + 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */; }; + 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */; }; + 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498ED1F7A8380005477EC /* MeRequest.swift */; }; + 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */; }; + 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */; }; + 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */; }; + 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F12059B6F60067157B /* VideoInfo.swift */; }; + 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */; }; + 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E102049C7340072CD23 /* SENavigationController.swift */; }; + 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; + 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */; }; + 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */; }; + 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80307E431FD75DC0006AD9EF /* VoiceOver.strings */; }; + 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */; }; + 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 803782B61FB4751D00DED049 /* RealmTestCase.swift */; }; + 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */; }; + 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C0412028C7EF007E21FA /* ReactorListView.swift */; }; + 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8041C0432028C828007E21FA /* ReactorListView.xib */; }; + 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */; }; + 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */; }; + 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; + 804273DD204EBD51006DF420 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; + 804273DE204EBD51006DF420 /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; + 804273DF204EBD51006DF420 /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; + 804273E0204EBD51006DF420 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; + 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; + 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; + 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */; }; + 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */; }; + 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC341FFC03380033151B /* CustomEmojiManager.swift */; }; + 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC361FFC08870033151B /* CustomEmoji.swift */; }; + 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */; }; + 806401311FB09DE800990572 /* Permission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401301FB09DE800990572 /* Permission.swift */; }; + 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401321FB09EC400990572 /* PermissionModelMapping.swift */; }; + 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401341FB09F8A00990572 /* PermissionManager.swift */; }; + 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 806465EB1FED19B9001F27DB /* EmojiView.xib */; }; + 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806465ED1FED1AFE001F27DB /* EmojiView.swift */; }; + 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */; }; + 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FE20079734009FE94D /* DeleteMessageRequest.swift */; }; + 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */; }; + 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */; }; + 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */; }; + 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; + 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8069D26D1FFF876D00C75926 /* Emoji.swift */; }; + 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */; }; + 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */; }; + 806DB94320687697004ED8ED /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; + 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; + 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */; }; + 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */; }; + 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */; }; + 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */; }; + 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371991F94E83600D53ADF /* SocketError.swift */; }; + 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719B1F963FA400D53ADF /* APITestCase.swift */; }; + 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */; }; + 807371A01F96937100D53ADF /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719F1F96937100D53ADF /* LoginService.swift */; }; + 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */; }; + 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */; }; + 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9920484A6000114F28 /* SEStore.swift */; }; + 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; + 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; + 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; + 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */; }; + 8076FDA42048533000114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; + 8076FDA52048534200114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; + 8076FDA62048536800114F28 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; + 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA8204853DE00114F28 /* RealmExecute.swift */; }; + 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */; }; + 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */; }; + 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */; }; + 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */; }; + 8076FDB3204856E200114F28 /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; + 8076FDB52048571200114F28 /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; + 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; + 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */; }; + 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; + 8076FDBD2048598100114F28 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; + 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */; }; + 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; + 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC62048632300114F28 /* SubscriptionQueries.swift */; }; + 8076FDC82048639700114F28 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; + 8076FDC9204863AF00114F28 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; + 8076FDCA204863B900114F28 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; + 8076FDCB204863C500114F28 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; + 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; + 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; + 8076FDCE2048642400114F28 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; + 8076FDD12048646500114F28 /* MessageReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD02048646500114F28 /* MessageReply.swift */; }; + 8076FDD22048648D00114F28 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; + 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; + 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD5204864E700114F28 /* UserQueries.swift */; }; + 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD72048654F00114F28 /* UserUtils.swift */; }; + 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD920489F5900114F28 /* SEViewController.swift */; }; + 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */; }; + 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */; }; + 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; + 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; + 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDEC2049A5F600114F28 /* SECellModel.swift */; }; + 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */; }; + 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */; }; + 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */; }; + 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */; }; + 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0520751ED1006B600E /* SpotlightClient.swift */; }; + 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0720751EDB006B600E /* SpotlightRequest.swift */; }; + 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */; }; + 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */; }; + 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C11207522EF006B600E /* LoginServicesRequest.swift */; }; + 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53C2044B49800E21429 /* Emojione+Transform.swift */; }; + 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */; }; + 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */; }; + 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 807FB55C2046E7DD00E21429 /* Main.storyboard */; }; + 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB568204729E500E21429 /* SEServersViewController.swift */; }; + 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */; }; + 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 807FB57120472B6A00E21429 /* Localizable.strings */; }; + 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB581204837AF00E21429 /* SEServersViewModel.swift */; }; + 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */; }; + 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; + 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */; }; + 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792371FB14B3300EFE77F /* PermissionSpec.swift */; }; + 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; + 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; + 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; + 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; + 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; + 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB5204EEF1E00C41435 /* SelectServer.swift */; }; + 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB8204EFBCC00C41435 /* SENavigation.swift */; }; + 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */; }; + 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABE204F36F200C41435 /* SESearchState.swift */; }; + 80977AC2204F37C200C41435 /* SEState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC1204F37C200C41435 /* SEState.swift */; }; + 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */; }; + 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */; }; + 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */; }; + 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530F1FE2F17D00833DD2 /* ReactionView.swift */; }; + 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53111FE2F2F900833DD2 /* ReactionView.xib */; }; + 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53131FE3294400833DD2 /* ReactionListView.xib */; }; + 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; + 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; + 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; + 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */; }; + 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */; }; + 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */; }; + 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */; }; + 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */; }; + 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */; }; + 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */; }; + 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C561F71D2E400FE5AC4 /* APISpec.swift */; }; + 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */; }; + 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */; }; + 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */; }; + 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */; }; + 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */; }; + 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */; }; + 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80CFB5711F8D697100FC9715 /* ReplyView.xib */; }; + 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */; }; + 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */; }; + 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE5F205016B40056B17F /* SEServerCell.swift */; }; + 80D0CE62205023710056B17F /* SECell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE61205023710056B17F /* SECell.swift */; }; + 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE63205034280056B17F /* SEServerCellModel.swift */; }; + 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6520503C860056B17F /* SERoomCell.swift */; }; + 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE6720503C970056B17F /* SERoomCell.xib */; }; + 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */; }; + 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; + 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6E20509C100056B17F /* SEAvatarView.swift */; }; + 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE7020509C230056B17F /* SEAvatarView.xib */; }; + 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; + 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; + 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; + 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; + 80D5637220592D32008896D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80D5637120592D32008896D6 /* Assets.xcassets */; }; + 80D563752059325A008896D6 /* MimeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D563742059325A008896D6 /* MimeType.swift */; }; + 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5637620593533008896D6 /* ParseItemProviders.swift */; }; + 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D955C1202154A300E3F281 /* CASViewController.swift */; }; + 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; + 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; + 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */ = {isa = PBXBuildFile; fileRef = 80DC9A6F206BAC8B00032BE0 /* mimetype.json */; }; + 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */; }; + 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */; }; + 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */; }; + 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; + 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */; }; + 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */; }; + 80FA9066205313E20069038F /* SEContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9065205313E20069038F /* SEContent.swift */; }; + 80FA9068205314040069038F /* SEServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9067205314040069038F /* SEServer.swift */; }; + 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906920569F890069038F /* SEComposeFileCell.swift */; }; + 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA906B20569FA10069038F /* SEComposeFileCell.xib */; }; + 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */; }; + 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */; }; + 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90712056C1190069038F /* SEComposeTextCell.swift */; }; + 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA90732056C1350069038F /* SEComposeTextCell.xib */; }; + 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */; }; + 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */; }; + 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA907C2057F4650069038F /* SubmitContent.swift */; }; + 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FE8DED206584EA0099170E /* SEFileDetailView.xib */; }; + 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FE8DEF206587510099170E /* SEFileDetailView.swift */; }; + 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */; }; + 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */; }; + 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */; }; + 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */; }; + 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */; }; + 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D21F8CF08100233561 /* FormTableViewCell.swift */; }; + 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */; }; + 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */; }; + 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */; }; + 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */; }; + 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */; }; + 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */; }; + 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */; }; + 992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */; }; + 992B5AB8209A2890009C8123 /* SubscriptionFilesRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */; }; + 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */; }; + 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */; }; + 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */; }; + 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */; }; + 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */; }; + 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */; }; + 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */; }; + 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */; }; + 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */; }; + 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */; }; + 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */; }; + 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */; }; + 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */; }; + 9987B5962093E4BA007D277C /* FilesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B5952093E4BA007D277C /* FilesListViewController.swift */; }; + 9987B5992093E526007D277C /* FileTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B5972093E523007D277C /* FileTableViewCell.swift */; }; + 9987B59A2093E526007D277C /* FileTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9987B5982093E524007D277C /* FileTableViewCell.xib */; }; + 9987B59C2093E60D007D277C /* SubscriptionFilesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */; }; + 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */; }; + 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */; }; + 999F25B5207EEB0C002E0F68 /* FileModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */; }; + 999F25B7207EEE70002E0F68 /* (null) in Sources */ = {isa = PBXBuildFile; }; + 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */; }; + 99C577EE207E4F1500CE9B4D /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C577ED207E4F1500CE9B4D /* File.swift */; }; + 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */; }; + 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888FA204623A900E51306 /* UpdateUserRequest.swift */; }; + 99DBB872208FF6FE00382DB2 /* SearchMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */; }; + 99DBB8742090360600382DB2 /* MessagesListControllerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */; }; + 99DBB87620903A7F00382DB2 /* SearchMessagesRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */; }; + 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */; }; + 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */; }; + A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */; }; + AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */; }; + B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */; }; + B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */; }; + D10E9C1A1F643457007F1796 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; + D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */; }; + D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */; }; + D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C211F643616007F1796 /* MentionModelMapping.swift */; }; + D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */; }; + D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */; }; + D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */; }; + D15C83861F70991F001AB155 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; + D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */; }; + D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675EB1F716A0D00406FB4 /* LoginRequest.swift */; }; + D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */; }; + D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */; }; + D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */; }; + D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */; }; + D1D535EC1F7081FA006625D2 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; + D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; + D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535F01F70864C006625D2 /* InfoRequest.swift */; }; + D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */; }; + D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */; }; + D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28221DFD86C300D6019C /* LauncherProtocol.swift */; }; + D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */; }; + D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; - remoteInfo = Rocket.Chat; - }; - 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; - remoteInfo = Rocket.Chat; - }; - 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 807FB5572046E7DD00E21429; - remoteInfo = Rocket.Chat.ShareExtension; - }; + 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; + remoteInfo = Rocket.Chat; + }; + 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; + remoteInfo = Rocket.Chat; + }; + 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 807FB5572046E7DD00E21429; + remoteInfo = Rocket.Chat.ShareExtension; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 807FB5672046E7DD00E21429 /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; + 807FB5672046E7DD00E21429 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewController.swift; sourceTree = ""; }; - 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModel.swift; sourceTree = ""; }; - 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconCell.swift; sourceTree = ""; }; - 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageResetCell.swift; sourceTree = ""; }; - 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewController.swift; sourceTree = ""; }; - 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModel.swift; sourceTree = ""; }; - 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewModel.swift; sourceTree = ""; }; - 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageCell.swift; sourceTree = ""; }; - 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModelSpec.swift; sourceTree = ""; }; - 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorSpec.swift; sourceTree = ""; }; - 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModel.swift; sourceTree = ""; }; - 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModelSpec.swift; sourceTree = ""; }; - 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModelSpec.swift; sourceTree = ""; }; - 140A95E0202F526C003FD564 /* Drawing.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Drawing.storyboard; sourceTree = ""; }; - 140A95E3202F536D003FD564 /* DrawingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewController.swift; sourceTree = ""; }; - 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingControllerDelegate.swift; sourceTree = ""; }; - 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCellSpec.swift; sourceTree = ""; }; - 1435BFA21F9B601600FB2768 /* RCTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTextView.swift; sourceTree = ""; }; - 1499781C1FA605CE007E013D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 14A6A83020421DF8008C210D /* ColorPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPickerView.swift; sourceTree = ""; }; - 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushWidthViewController.swift; sourceTree = ""; }; - 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushOpacityViewController.swift; sourceTree = ""; }; - 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewController.swift; sourceTree = ""; }; - 14F8A213202E5CBD00175FDC /* Black-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@3x.png"; sourceTree = ""; }; - 14F8A216202E5CBE00175FDC /* Black-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@2x.png"; sourceTree = ""; }; - 14F8A217202E5CBE00175FDC /* Black-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@3x.png"; sourceTree = ""; }; - 14F8A218202E5CBE00175FDC /* Black-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@2x.png"; sourceTree = ""; }; - 14F8A219202E5CBE00175FDC /* Black-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@2x.png"; sourceTree = ""; }; - 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-83.5@2x.png"; sourceTree = ""; }; - 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@3x.png"; sourceTree = ""; }; - 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@2x.png"; sourceTree = ""; }; - 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@3x.png"; sourceTree = ""; }; - 14F8A22F202E5D0400175FDC /* Red-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@3x.png"; sourceTree = ""; }; - 14F8A230202E5D0400175FDC /* Red-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@3x.png"; sourceTree = ""; }; - 14F8A232202E5D0400175FDC /* Red-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@2x.png"; sourceTree = ""; }; - 14F8A233202E5D0400175FDC /* Red-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@2x.png"; sourceTree = ""; }; - 14F8A234202E5D0400175FDC /* Red-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@2x.png"; sourceTree = ""; }; - 14F8A235202E5D0500175FDC /* Red-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@3x.png"; sourceTree = ""; }; - 14F8A236202E5D0500175FDC /* Red-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@2x.png"; sourceTree = ""; }; - 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-83.5@2x.png"; sourceTree = ""; }; - 14F8A238202E5D0600175FDC /* Red-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@3x.png"; sourceTree = ""; }; - 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-83.5@2x.png"; sourceTree = ""; }; - 14F8A24C202E64B100175FDC /* BnW-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@3x.png"; sourceTree = ""; }; - 14F8A24D202E64B100175FDC /* BnW-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@2x.png"; sourceTree = ""; }; - 14F8A24E202E64B100175FDC /* BnW-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@2x.png"; sourceTree = ""; }; - 14F8A24F202E64B100175FDC /* BnW-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@3x.png"; sourceTree = ""; }; - 14F8A250202E64B100175FDC /* BnW-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@3x.png"; sourceTree = ""; }; - 14F8A251202E64B100175FDC /* BnW-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@2x.png"; sourceTree = ""; }; - 14F8A252202E64B100175FDC /* BnW-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@2x.png"; sourceTree = ""; }; - 14F8A254202E64B200175FDC /* BnW-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@3x.png"; sourceTree = ""; }; - 14F8A263202E653D00175FDC /* Grey-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@2x.png"; sourceTree = ""; }; - 14F8A264202E653D00175FDC /* Grey-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@2x.png"; sourceTree = ""; }; - 14F8A265202E653D00175FDC /* Grey-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@3x.png"; sourceTree = ""; }; - 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-83.5@2x.png"; sourceTree = ""; }; - 14F8A267202E653D00175FDC /* Grey-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@2x.png"; sourceTree = ""; }; - 14F8A268202E653E00175FDC /* Grey-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@3x.png"; sourceTree = ""; }; - 14F8A269202E653E00175FDC /* Grey-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@3x.png"; sourceTree = ""; }; - 14F8A26A202E653E00175FDC /* Grey-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@3x.png"; sourceTree = ""; }; - 14F8A26B202E653E00175FDC /* Grey-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@2x.png"; sourceTree = ""; }; - 14F8A277202E658E00175FDC /* White-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@2x.png"; sourceTree = ""; }; - 14F8A278202E658E00175FDC /* White-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@3x.png"; sourceTree = ""; }; - 14F8A279202E658E00175FDC /* White-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@3x.png"; sourceTree = ""; }; - 14F8A27A202E658F00175FDC /* White-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-83.5@2x.png"; sourceTree = ""; }; - 14F8A27B202E658F00175FDC /* White-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@2x.png"; sourceTree = ""; }; - 14F8A27C202E658F00175FDC /* White-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@3x.png"; sourceTree = ""; }; - 14F8A27D202E658F00175FDC /* White-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@2x.png"; sourceTree = ""; }; - 14F8A27E202E658F00175FDC /* White-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@2x.png"; sourceTree = ""; }; - 14F8A27F202E658F00175FDC /* White-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@3x.png"; sourceTree = ""; }; - 14F8A289202E65C500175FDC /* Blue-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@3x.png"; sourceTree = ""; }; - 14F8A28A202E65C600175FDC /* Blue-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@2x.png"; sourceTree = ""; }; - 14F8A28B202E65C600175FDC /* Blue-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@3x.png"; sourceTree = ""; }; - 14F8A28C202E65C600175FDC /* Blue-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@3x.png"; sourceTree = ""; }; - 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-83.5@2x.png"; sourceTree = ""; }; - 14F8A28E202E65C600175FDC /* Blue-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@2x.png"; sourceTree = ""; }; - 14F8A28F202E65C700175FDC /* Blue-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@2x.png"; sourceTree = ""; }; - 14F8A290202E65C700175FDC /* Blue-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@3x.png"; sourceTree = ""; }; - 14F8A291202E65C700175FDC /* Blue-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@2x.png"; sourceTree = ""; }; - 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCell.swift; sourceTree = ""; }; - 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MentionsTextFieldTableViewCell.xib; sourceTree = ""; }; - 330888B32099094400D44D4E /* ThemeableViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableViews.swift; sourceTree = ""; }; - 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableViewControllers.swift; sourceTree = ""; }; - 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatNotificationSpec.swift; sourceTree = ""; }; - 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerSpec.swift; sourceTree = ""; }; - 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewControllerSpec.swift; sourceTree = ""; }; - 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerMessages.swift; sourceTree = ""; }; - 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerRooms.swift; sourceTree = ""; }; - 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerSearch.swift; sourceTree = ""; }; - 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerTyping.swift; sourceTree = ""; }; - 333207FE20766E4F00AD3290 /* NotificationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotificationViewController.xib; sourceTree = ""; }; - 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentToTouchesWindow.swift; sourceTree = ""; }; - 33419D782099170A00D1682A /* ThemeManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManagerSpec.swift; sourceTree = ""; }; - 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableSpec.swift; sourceTree = ""; }; - 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; - 3353DBF7206787E500738D1C /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; - 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; - 3370D8B920926E5700EEA225 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; }; - 3370D8BB2093570D00EEA225 /* ThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManager.swift; sourceTree = ""; }; - 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserActionSheetPresenter.swift; sourceTree = ""; }; - 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessage.swift; sourceTree = ""; }; - 3370D8C12095995800EEA225 /* StarMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequest.swift; sourceTree = ""; }; - 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequestSpec.swift; sourceTree = ""; }; - 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessageSpec.swift; sourceTree = ""; }; - 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotThemeableView.swift; sourceTree = ""; }; - 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopTransparentViewController.swift; sourceTree = ""; }; - 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceCell.swift; sourceTree = ""; }; - 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceViewModel.swift; sourceTree = ""; }; - 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceController.swift; sourceTree = ""; }; - 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; - 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; - 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; - 33A5C9C2206A565800FE1C8F /* travel.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = travel.json; sourceTree = ""; }; - 33A5C9C3206A565800FE1C8F /* regional.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = regional.json; sourceTree = ""; }; - 33A5C9C4206A565800FE1C8F /* flags.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = flags.json; sourceTree = ""; }; - 33A5C9C5206A565800FE1C8F /* people.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = people.json; sourceTree = ""; }; - 33A5C9C6206A565800FE1C8F /* objects.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = objects.json; sourceTree = ""; }; - 33A5C9C7206A565800FE1C8F /* food.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = food.json; sourceTree = ""; }; - 33A5C9C8206A565800FE1C8F /* activity.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = activity.json; sourceTree = ""; }; - 33A5C9C9206A565800FE1C8F /* nature.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = nature.json; sourceTree = ""; }; - 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatNotification.swift; sourceTree = ""; }; - 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; - 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; - 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; - 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; - 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; - 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; - 35BCD302201A9FB800B4BE5A /* AskSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AskSpec.swift; sourceTree = ""; }; - 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCDateFormatter.swift; sourceTree = ""; }; - 35D2F140200A45E800B4BE5A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertSpec.swift; sourceTree = ""; }; - 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OAuthManager.swift; sourceTree = ""; }; - 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewRoomViewController.swift; sourceTree = ""; }; - 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModel.swift; sourceTree = ""; }; - 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewControllerCustomFields.swift; sourceTree = ""; }; - 4101BF001F8D0A1700F67E89 /* AppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManager.swift; sourceTree = ""; }; - 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManagerSpec.swift; sourceTree = ""; }; - 4102E3A91E532323004BAA82 /* Preferences.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Preferences.storyboard; sourceTree = ""; }; - 411119B51F680DB00019854B /* NetworkCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkCoordinator.swift; sourceTree = ""; }; - 411119B71F6825C30019854B /* NetworkManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManagerSpec.swift; sourceTree = ""; }; - 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainChatViewController.swift; sourceTree = ""; }; - 4112DC551FFFB9B1005995E1 /* BaseModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModel.swift; sourceTree = ""; }; - 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelHandler.swift; sourceTree = ""; }; - 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelMappeable.swift; sourceTree = ""; }; - 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModelSpec.swift; sourceTree = ""; }; - 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModel.swift; sourceTree = ""; }; - 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentSpec.swift; sourceTree = ""; }; - 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManager.swift; sourceTree = ""; }; - 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManagerSpec.swift; sourceTree = ""; }; - 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadManager.swift; sourceTree = ""; }; - 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatChannelHeaderCell.swift; sourceTree = ""; }; - 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatChannelHeaderCell.xib; sourceTree = ""; }; - 412184A420472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 412184A520472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; - 412184A620472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/VoiceOver.strings; sourceTree = ""; }; - 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterUsernameViewController.swift; sourceTree = ""; }; - 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatPreviewModeView.xib; sourceTree = ""; }; - 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPreviewModeView.swift; sourceTree = ""; }; - 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageVideoView.swift; sourceTree = ""; }; - 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageVideoView.xib; sourceTree = ""; }; - 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageTextView.xib; sourceTree = ""; }; - 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextView.swift; sourceTree = ""; }; - 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorCSSColorsExtension.swift; sourceTree = ""; }; - 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageURLView.swift; sourceTree = ""; }; - 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageURLView.xib; sourceTree = ""; }; - 412EF3C52050507C001689A3 /* ReusableViewText.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReusableViewText.xib; sourceTree = ""; }; - 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = ""; }; - 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageImageView.swift; sourceTree = ""; }; - 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageImageView.xib; sourceTree = ""; }; - 413996161F3B44500075F96E /* UploadHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelper.swift; sourceTree = ""; }; - 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsPageViewController.swift; sourceTree = ""; }; - 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServersViewController.swift; sourceTree = ""; }; - 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCell.swift; sourceTree = ""; }; - 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddServerCell.swift; sourceTree = ""; }; - 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManagerSpec.swift; sourceTree = ""; }; - 41494B911D63C6280004F369 /* UIImageExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; - 41499C8E1F2A116900790EA7 /* ServerManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManager.swift; sourceTree = ""; }; - 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampCoordinator.swift; sourceTree = ""; }; - 414A1FF51D46320F00093E10 /* ResponseMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessage.swift; sourceTree = ""; }; - 414A1FF91D46395400093E10 /* SocketManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManager.swift; sourceTree = ""; }; - 414A1FFB1D46395900093E10 /* SocketResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketResponse.swift; sourceTree = ""; }; - 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewController.swift; sourceTree = ""; }; - 414EFF911E54FE69004F001F /* AuthExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthExtensions.swift; sourceTree = ""; }; - 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextCacheManager.swift; sourceTree = ""; }; - 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModelSpec.swift; sourceTree = ""; }; - 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelHandler.swift; sourceTree = ""; }; - 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelHandler.swift; sourceTree = ""; }; - 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelMapping.swift; sourceTree = ""; }; - 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageModelMapping.swift; sourceTree = ""; }; - 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttachmentModelMapping.swift; sourceTree = ""; }; - 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsModelMapping.swift; sourceTree = ""; }; - 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLModelMapping.swift; sourceTree = ""; }; - 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinatorSpec.swift; sourceTree = ""; }; - 4153E80420504BE700FBC26B /* ReusableViewText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReusableViewText.swift; sourceTree = ""; }; - 41552F651D30308C0081438D /* AuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManager.swift; sourceTree = ""; }; - 41552F671D3035D80081438D /* SocketManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManagerSpec.swift; sourceTree = ""; }; - 4159720B1D3DB854002258F4 /* Email.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Email.swift; sourceTree = ""; }; - 4159720D1D3DB882002258F4 /* Mention.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mention.swift; sourceTree = ""; }; - 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoFactorAuthenticationViewController.swift; sourceTree = ""; }; - 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; - 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCell.swift; sourceTree = ""; }; - 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageCell.xib; sourceTree = ""; }; - 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModelSpec.swift; sourceTree = ""; }; - 416133391D46E0A200E09DA2 /* AuthSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSpec.swift; sourceTree = ""; }; - 4161333B1D46E32F00E09DA2 /* UserSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserSpec.swift; sourceTree = ""; }; - 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSpec.swift; sourceTree = ""; }; - 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageSpec.swift; sourceTree = ""; }; - 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelperSpec.swift; sourceTree = ""; }; - 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManagerSpec.swift; sourceTree = ""; }; - 4162E1521D651A8800AAAE49 /* UserManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserManager.swift; sourceTree = ""; }; - 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketHandlers.swift; sourceTree = ""; }; - 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarViewSpec.swift; sourceTree = ""; }; - 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectServerViewController.swift; sourceTree = ""; }; - 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Auth.storyboard; sourceTree = ""; }; - 4174CB121D2D99960086DAC8 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; - 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseNavigationController.swift; sourceTree = ""; }; - 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthViewController.swift; sourceTree = ""; }; - 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; - 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; - 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Rocket.Chat-Bridge.h"; sourceTree = ""; }; - 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessageSpec.swift; sourceTree = ""; }; - 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoViewController.swift; sourceTree = ""; }; - 41833F4D1DEF16B600E54655 /* Keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Keys.plist; sourceTree = ""; }; - 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatControllerReplyHandler.swift; sourceTree = ""; }; - 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewControllerEmbedded.swift; sourceTree = ""; }; - 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WebViewControllerEmbedded.xib; sourceTree = ""; }; - 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageActions.swift; sourceTree = ""; }; - 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSectionView.swift; sourceTree = ""; }; - 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSectionView.xib; sourceTree = ""; }; - 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegateSpec.swift; sourceTree = ""; }; - 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegate.swift; sourceTree = ""; }; - 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegateSpec.swift; sourceTree = ""; }; - 41900C261D9FE35400308EF4 /* Attachment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Attachment.swift; sourceTree = ""; }; - 419205481D52EDE6004EEC5F /* UILabelExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UILabelExtension.swift; sourceTree = ""; }; - 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionCell.swift; sourceTree = ""; }; - 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; - 4199A9881DABCC570035F820 /* Emojione.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Emojione.swift; sourceTree = ""; }; - 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandler.swift; sourceTree = ""; }; - 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandlerSpec.swift; sourceTree = ""; }; - 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatHeaderViewStatus.xib; sourceTree = ""; }; - 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHeaderViewStatus.swift; sourceTree = ""; }; - 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerHeaderStatus.swift; sourceTree = ""; }; - 419ECCA31F3CA21A005F224B /* DownloadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; - 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerDocuments.swift; sourceTree = ""; }; - 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewControllerExtension.swift; sourceTree = ""; }; - 41A6191A1FA7065400CFFA69 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; - 41A79C0E1D2F085F00A1968E /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; - 41A79C121D2F09F200A1968E /* Auth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Auth.swift; sourceTree = ""; }; - 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettings.swift; sourceTree = ""; }; - 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionUserStatusView.xib; sourceTree = ""; }; - 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionUserStatusView.swift; sourceTree = ""; }; - 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AutocompleteCell.xib; sourceTree = ""; }; - 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutocompleteCell.swift; sourceTree = ""; }; - 41ADDD481E9DBB100007A458 /* LoaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderView.swift; sourceTree = ""; }; - 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderViewSpec.swift; sourceTree = ""; }; - 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerUploader.swift; sourceTree = ""; }; - 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIWindowExtensions.swift; sourceTree = ""; }; - 41B554C61FBF0F9D000510B7 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = ""; }; - 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewControllerTextViewDelegate.swift; sourceTree = ""; }; - 41B96361207E48260068F1A6 /* MessageTextValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidator.swift; sourceTree = ""; }; - 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidatorSpec.swift; sourceTree = ""; }; - 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManagerSpec.swift; sourceTree = ""; }; - 41BAE3E61D71B26C00C2445A /* URLExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtension.swift; sourceTree = ""; }; - 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtensionSpec.swift; sourceTree = ""; }; - 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelMapping.swift; sourceTree = ""; }; - 41C275DE1D848005003C88CF /* AvatarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarView.swift; sourceTree = ""; }; - 41C275E01D84815C003C88CF /* AvatarView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AvatarView.xib; sourceTree = ""; }; - 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataController.swift; sourceTree = ""; }; - 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatLoaderCell.xib; sourceTree = ""; }; - 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatLoaderCell.swift; sourceTree = ""; }; - 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayExtensions.swift; sourceTree = ""; }; - 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageDaySeparator.xib; sourceTree = ""; }; - 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageDaySeparator.swift; sourceTree = ""; }; - 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayout.swift; sourceTree = ""; }; - 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewExtentions.swift; sourceTree = ""; }; - 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextFontAttributes.swift; sourceTree = ""; }; - 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensions.swift; sourceTree = ""; }; - 41D7CA861E644E47000F38EA /* MessageExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageExtensions.swift; sourceTree = ""; }; - 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDirectMessageHeaderCell.swift; sourceTree = ""; }; - 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatDirectMessageHeaderCell.xib; sourceTree = ""; }; - 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionManager.swift; sourceTree = ""; }; - 41DAE93D1D318F350098E068 /* Subscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscription.swift; sourceTree = ""; }; - 41DC7A1A1D38454500896FC0 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; - 41DC7A1C1D38471700896FC0 /* MessageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManager.swift; sourceTree = ""; }; - 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManagerSpec.swift; sourceTree = ""; }; - 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensionSpec.swift; sourceTree = ""; }; - 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtensionsSpec.swift; sourceTree = ""; }; - 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSearchMoreView.xib; sourceTree = ""; }; - 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSearchMoreView.swift; sourceTree = ""; }; - 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 41DF76E91D2C50710028DBF8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 41DF76EC1D2C50720028DBF8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 41DF76EE1D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF76F91D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RocketChatUITests.swift; sourceTree = ""; }; - 41DF77041D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41E2F9FE1D414DE800238DFD /* Chat.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Chat.storyboard; sourceTree = ""; }; - 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Subscriptions.storyboard; sourceTree = ""; }; - 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsViewController.swift; sourceTree = ""; }; - 41E2FA061D41513C00238DFD /* ChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = ""; }; - 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensionSpec.swift; sourceTree = ""; }; - 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UINibExtensions.swift; sourceTree = ""; }; - 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = ""; }; - 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthInternalExtensions.swift; sourceTree = ""; }; - 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueriesSpec.swift; sourceTree = ""; }; - 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadVideoCompression.swift; sourceTree = ""; }; - 41EB22371E5F056600AA3AE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 41EB223A1E5F057F00AA3AE7 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - 41EB223B1E5F19EB00AA3AE7 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerAutocomplete.swift; sourceTree = ""; }; - 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageCellProtocol.swift; sourceTree = ""; }; - 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerSocketConnectionHandler.swift; sourceTree = ""; }; - 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTitleView.swift; sourceTree = ""; }; - 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatTitleView.xib; sourceTree = ""; }; - 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURL.swift; sourceTree = ""; }; - 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModelSpec.swift; sourceTree = ""; }; - 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManagerSpec.swift; sourceTree = ""; }; - 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.release.xcconfig"; sourceTree = ""; }; - 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.debug.xcconfig"; sourceTree = ""; }; - 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.entitlements; sourceTree = ""; }; - 597ECBA11E3708A50041C5C5 /* DataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataExtension.swift; sourceTree = ""; }; - 597ECBA31E3708B10041C5C5 /* PushManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushManager.swift; sourceTree = ""; }; - 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; sourceTree = ""; }; - 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat_ShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLSpec.swift; sourceTree = ""; }; - 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_ChatTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegate.swift; sourceTree = ""; }; - 7798B4141F852B720074B2F4 /* SelectField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectField.swift; sourceTree = ""; }; - 7798B4181F852D670074B2F4 /* CustomField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomField.swift; sourceTree = ""; }; - 77BA81501F87C4CB00F295F4 /* TextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextField.swift; sourceTree = ""; }; - 77C261241F97445300724A1F /* AuthSettingsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsSpec.swift; sourceTree = ""; }; - 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DictionaryExtensionsSpec.swift; sourceTree = ""; }; - 77C261291F97453600724A1F /* CustomFieldsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomFieldsSpec.swift; sourceTree = ""; }; - 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectFieldSpec.swift; sourceTree = ""; }; - 77C2612B1F97453600724A1F /* TextFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldSpec.swift; sourceTree = ""; }; - 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtensions.swift; sourceTree = ""; }; - 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendMessageRequest.swift; sourceTree = ""; }; - 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClient.swift; sourceTree = ""; }; - 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClientSpec.swift; sourceTree = ""; }; - 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequest.swift; sourceTree = ""; }; - 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushTokenDeleteRequest.swift; sourceTree = ""; }; - 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushClient.swift; sourceTree = ""; }; - 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = ""; }; - 800640F62049BA25006D990F /* SEScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEScene.swift; sourceTree = ""; }; - 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListViewController.swift; sourceTree = ""; }; - 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMessagesRequest.swift; sourceTree = ""; }; - 800F38EC2019492D0005CB78 /* DeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLink.swift; sourceTree = ""; }; - 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembersListViewController.swift; sourceTree = ""; }; - 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoBasicCell.swift; sourceTree = ""; }; - 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoCellProtocol.swift; sourceTree = ""; }; - 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDescriptionCell.swift; sourceTree = ""; }; - 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDetailCell.swift; sourceTree = ""; }; - 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoUserCell.swift; sourceTree = ""; }; - 800FCD491F728E6A00D9A692 /* MemberCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberCell.swift; sourceTree = ""; }; - 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MemberCell.xib; sourceTree = ""; }; - 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewController.swift; sourceTree = ""; }; - 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayoutSpec.swift; sourceTree = ""; }; - 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensions.swift; sourceTree = ""; }; - 8013F8661FD6B4F400EE1A4E /* Command.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Command.swift; sourceTree = ""; }; - 8013F8681FD6B59900EE1A4E /* Version.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Version.swift; sourceTree = ""; }; - 8013F8691FD6B59900EE1A4E /* APIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIError.swift; sourceTree = ""; }; - 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIClient.swift; sourceTree = ""; }; - 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClient.swift; sourceTree = ""; }; - 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClient.swift; sourceTree = ""; }; - 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddleware.swift; sourceTree = ""; }; - 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddlewareSpec.swift; sourceTree = ""; }; - 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockAPI.swift; sourceTree = ""; }; - 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionSpec.swift; sourceTree = ""; }; - 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClientSpec.swift; sourceTree = ""; }; - 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClientSpec.swift; sourceTree = ""; }; - 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsRequest.swift; sourceTree = ""; }; - 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequest.swift; sourceTree = ""; }; - 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequestSpec.swift; sourceTree = ""; }; - 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandModelMapping.swift; sourceTree = ""; }; - 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushManagerSpec.swift; sourceTree = ""; }; - 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUserView.swift; sourceTree = ""; }; - 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPicker.swift; sourceTree = ""; }; - 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiPicker.xib; sourceTree = ""; }; - 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerController.swift; sourceTree = ""; }; - 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequestSpec.swift; sourceTree = ""; }; - 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPMethod.swift; sourceTree = ""; }; - 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequest.swift; sourceTree = ""; }; - 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequestSpec.swift; sourceTree = ""; }; - 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoaderTableViewCell.swift; sourceTree = ""; }; - 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoaderTableViewCell.xib; sourceTree = ""; }; - 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactionSpec.swift; sourceTree = ""; }; - 802498ED1F7A8380005477EC /* MeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequest.swift; sourceTree = ""; }; - 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequestSpec.swift; sourceTree = ""; }; - 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageAudioView.xib; sourceTree = ""; }; - 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAudioView.swift; sourceTree = ""; }; - 8029B2F12059B6F60067157B /* VideoInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoInfo.swift; sourceTree = ""; }; - 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+StatusReport.swift"; sourceTree = ""; }; - 802A4E102049C7340072CD23 /* SENavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigationController.swift; sourceTree = ""; }; - 802A4E23204D730F0072CD23 /* AppGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppGroup.swift; sourceTree = ""; }; - 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOTextField.swift; sourceTree = ""; }; - 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOLocalized.swift; sourceTree = ""; }; - 80307E421FD75DC0006AD9EF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E441FD75DCB006AD9EF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/VoiceOver.strings"; sourceTree = ""; }; - 80307E451FD75DCF006AD9EF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E461FD75DD1006AD9EF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E471FD75DD2006AD9EF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E481FD75DD5006AD9EF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/VoiceOver.strings; sourceTree = ""; }; - 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateMessageRequest.swift; sourceTree = ""; }; - 803782B61FB4751D00DED049 /* RealmTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmTestCase.swift; sourceTree = ""; }; - 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListViewController.swift; sourceTree = ""; }; - 8041C0412028C7EF007E21FA /* ReactorListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListView.swift; sourceTree = ""; }; - 8041C0432028C828007E21FA /* ReactorListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactorListView.xib; sourceTree = ""; }; - 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCEmojiKitLocalizable.swift; sourceTree = ""; }; - 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = RCEmojiKit.xcassets; sourceTree = ""; }; - 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewController.swift; sourceTree = ""; }; - 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEXibInitializable.swift; sourceTree = ""; }; - 805DEC341FFC03380033151B /* CustomEmojiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiManager.swift; sourceTree = ""; }; - 805DEC361FFC08870033151B /* CustomEmoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmoji.swift; sourceTree = ""; }; - 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiSpec.swift; sourceTree = ""; }; - 806401301FB09DE800990572 /* Permission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Permission.swift; sourceTree = ""; }; - 806401321FB09EC400990572 /* PermissionModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionModelMapping.swift; sourceTree = ""; }; - 806401341FB09F8A00990572 /* PermissionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManager.swift; sourceTree = ""; }; - 806465EB1FED19B9001F27DB /* EmojiView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiView.xib; sourceTree = ""; }; - 806465ED1FED1AFE001F27DB /* EmojiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiView.swift; sourceTree = ""; }; - 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesNavigationController.swift; sourceTree = ""; }; - 806728FE20079734009FE94D /* DeleteMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequest.swift; sourceTree = ""; }; - 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequestSpec.swift; sourceTree = ""; }; - 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequest.swift; sourceTree = ""; }; - 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequestSpec.swift; sourceTree = ""; }; - 8067DAA5206D1883005E3369 /* APIResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResource.swift; sourceTree = ""; }; - 8069D26D1FFF876D00C75926 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; - 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostMessageRequest.swift; sourceTree = ""; }; - 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMessageRequestSpec.swift; sourceTree = ""; }; - 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerLoginServices.swift; sourceTree = ""; }; - 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerConnectionHandler.swift; sourceTree = ""; }; - 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerAuthenticationHandler.swift; sourceTree = ""; }; - 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageCellAccessibility.swift; sourceTree = ""; }; - 807371991F94E83600D53ADF /* SocketError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocketError.swift; sourceTree = ""; }; - 8073719B1F963FA400D53ADF /* APITestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APITestCase.swift; sourceTree = ""; }; - 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceManager.swift; sourceTree = ""; }; - 8073719F1F96937100D53ADF /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginService.swift; sourceTree = ""; }; - 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelMapping.swift; sourceTree = ""; }; - 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelHandler.swift; sourceTree = ""; }; - 8076FD9920484A6000114F28 /* SEStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEStore.swift; sourceTree = ""; }; - 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerSocket.swift; sourceTree = ""; }; - 8076FDA32048533000114F28 /* String+Random.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Random.swift"; sourceTree = ""; }; - 8076FDA8204853DE00114F28 /* RealmExecute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmExecute.swift; sourceTree = ""; }; - 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSettingsHiddenTypes.swift; sourceTree = ""; }; - 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanDeleteMessage.swift; sourceTree = ""; }; - 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanBlockMessage.swift; sourceTree = ""; }; - 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanEditMessage.swift; sourceTree = ""; }; - 8076FDB42048571200114F28 /* AuthUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthUser.swift; sourceTree = ""; }; - 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerCurrentUser.swift; sourceTree = ""; }; - 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerRecover.swift; sourceTree = ""; }; - 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUtils.swift; sourceTree = ""; }; - 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUser.swift; sourceTree = ""; }; - 8076FDC62048632300114F28 /* SubscriptionQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueries.swift; sourceTree = ""; }; - 8076FDD02048646500114F28 /* MessageReply.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReply.swift; sourceTree = ""; }; - 8076FDD5204864E700114F28 /* UserQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserQueries.swift; sourceTree = ""; }; - 8076FDD72048654F00114F28 /* UserUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserUtils.swift; sourceTree = ""; }; - 8076FDD920489F5900114F28 /* SEViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEViewController.swift; sourceTree = ""; }; - 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewController.swift; sourceTree = ""; }; - 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationCoordinator.swift; sourceTree = ""; }; - 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Group.swift"; sourceTree = ""; }; - 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.ShareExtension.entitlements; sourceTree = ""; }; - 8076FDEC2049A5F600114F28 /* SECellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECellModel.swift; sourceTree = ""; }; - 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceSpec.swift; sourceTree = ""; }; - 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthManagerSpec.swift; sourceTree = ""; }; - 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanPinMessage.swift; sourceTree = ""; }; - 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPlaceholderTextView.swift; sourceTree = ""; }; - 807C7C0520751ED1006B600E /* SpotlightClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClient.swift; sourceTree = ""; }; - 807C7C0720751EDB006B600E /* SpotlightRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequest.swift; sourceTree = ""; }; - 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequestSpec.swift; sourceTree = ""; }; - 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClientSpec.swift; sourceTree = ""; }; - 807C7C11207522EF006B600E /* LoginServicesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginServicesRequest.swift; sourceTree = ""; }; - 807FB53C2044B49800E21429 /* Emojione+Transform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Emojione+Transform.swift"; sourceTree = ""; }; - 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojioneSpec.swift; sourceTree = ""; }; - 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Rocket.Chat.ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewController.swift; sourceTree = ""; }; - 807FB55D2046E7DD00E21429 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 807FB55F2046E7DD00E21429 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 807FB568204729E500E21429 /* SEServersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewController.swift; sourceTree = ""; }; - 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewModel.swift; sourceTree = ""; }; - 807FB57020472B6A00E21429 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - 807FB57220472B6D00E21429 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57320472B6F00E21429 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57420472B7000E21429 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57520472B7200E21429 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57620472B7300E21429 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57720472B8200E21429 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 807FB581204837AF00E21429 /* SEServersViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewModel.swift; sourceTree = ""; }; - 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManagerSpec.swift; sourceTree = ""; }; - 808792371FB14B3300EFE77F /* PermissionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionSpec.swift; sourceTree = ""; }; - 80977AB5204EEF1E00C41435 /* SelectServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectServer.swift; sourceTree = ""; }; - 80977AB8204EFBCC00C41435 /* SENavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigation.swift; sourceTree = ""; }; - 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESceneTransition.swift; sourceTree = ""; }; - 80977ABE204F36F200C41435 /* SESearchState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESearchState.swift; sourceTree = ""; }; - 80977AC1204F37C200C41435 /* SEState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEState.swift; sourceTree = ""; }; - 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewModel.swift; sourceTree = ""; }; - 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadClient.swift; sourceTree = ""; }; - 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionListView.swift; sourceTree = ""; }; - 809B530F1FE2F17D00833DD2 /* ReactionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionView.swift; sourceTree = ""; }; - 809B53111FE2F2F900833DD2 /* ReactionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionView.xib; sourceTree = ""; }; - 809B53131FE3294400833DD2 /* ReactionListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionListView.xib; sourceTree = ""; }; - 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReaction.swift; sourceTree = ""; }; - 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RealmCurrent.swift; sourceTree = ""; }; - 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcher.swift; sourceTree = ""; }; - 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiAutocompleteCell.swift; sourceTree = ""; }; - 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiAutocompleteCell.xib; sourceTree = ""; }; - 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequest.swift; sourceTree = ""; }; - 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequestSpec.swift; sourceTree = ""; }; - 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequest.swift; sourceTree = ""; }; - 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequestSpec.swift; sourceTree = ""; }; - 80A63C561F71D2E400FE5AC4 /* APISpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APISpec.swift; sourceTree = ""; }; - 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcherSpec.swift; sourceTree = ""; }; - 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensionsSpec.swift; sourceTree = ""; }; - 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageUnreadSeparator.swift; sourceTree = ""; }; - 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageUnreadSeparator.xib; sourceTree = ""; }; - 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SAMLViewController.swift; sourceTree = ""; }; - 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewControllerSpec.swift; sourceTree = ""; }; - 80C7DD5F1FF46B8000E6647C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD611FF46B8300E6647C /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/RCEmojiKit.strings"; sourceTree = ""; }; - 80C7DD621FF46B8600E6647C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD631FF46B8700E6647C /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD641FF46B8800E6647C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD651FF46B8C00E6647C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80CFB5711F8D697100FC9715 /* ReplyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReplyView.xib; sourceTree = ""; }; - 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyView.swift; sourceTree = ""; }; - 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEServerCell.xib; sourceTree = ""; }; - 80D0CE5F205016B40056B17F /* SEServerCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCell.swift; sourceTree = ""; }; - 80D0CE61205023710056B17F /* SECell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECell.swift; sourceTree = ""; }; - 80D0CE63205034280056B17F /* SEServerCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCellModel.swift; sourceTree = ""; }; - 80D0CE6520503C860056B17F /* SERoomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCell.swift; sourceTree = ""; }; - 80D0CE6720503C970056B17F /* SERoomCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SERoomCell.xib; sourceTree = ""; }; - 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCellModel.swift; sourceTree = ""; }; - 80D0CE6E20509C100056B17F /* SEAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEAvatarView.swift; sourceTree = ""; }; - 80D0CE7020509C230056B17F /* SEAvatarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEAvatarView.xib; sourceTree = ""; }; - 80D5637120592D32008896D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 80D563742059325A008896D6 /* MimeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MimeType.swift; sourceTree = ""; }; - 80D5637620593533008896D6 /* ParseItemProviders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseItemProviders.swift; sourceTree = ""; }; - 80D955C1202154A300E3F281 /* CASViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CASViewController.swift; sourceTree = ""; }; - 80DC9A6B206BA95600032BE0 /* Localized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Localized.swift; sourceTree = ""; }; - 80DC9A6F206BAC8B00032BE0 /* mimetype.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = mimetype.json; sourceTree = ""; }; - 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensions.swift; sourceTree = ""; }; - 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensionsSpec.swift; sourceTree = ""; }; - 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensionsSpec.swift; sourceTree = ""; }; - 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+CustomEmojis.swift"; sourceTree = ""; }; - 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkdownManagerSpec.swift; sourceTree = ""; }; - 80FA9065205313E20069038F /* SEContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEContent.swift; sourceTree = ""; }; - 80FA9067205314040069038F /* SEServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServer.swift; sourceTree = ""; }; - 80FA906920569F890069038F /* SEComposeFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCell.swift; sourceTree = ""; }; - 80FA906B20569FA10069038F /* SEComposeFileCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeFileCell.xib; sourceTree = ""; }; - 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCellModel.swift; sourceTree = ""; }; - 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewModel.swift; sourceTree = ""; }; - 80FA90712056C1190069038F /* SEComposeTextCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCell.swift; sourceTree = ""; }; - 80FA90732056C1350069038F /* SEComposeTextCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeTextCell.xib; sourceTree = ""; }; - 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCellModel.swift; sourceTree = ""; }; - 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeCellModel.swift; sourceTree = ""; }; - 80FA907C2057F4650069038F /* SubmitContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubmitContent.swift; sourceTree = ""; }; - 80FE8DED206584EA0099170E /* SEFileDetailView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEFileDetailView.xib; sourceTree = ""; }; - 80FE8DEF206587510099170E /* SEFileDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEFileDetailView.swift; sourceTree = ""; }; - 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.release.xcconfig"; sourceTree = ""; }; - 848088BA204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 848088BB204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; - 848088BC204370E9005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/VoiceOver.strings; sourceTree = ""; }; - 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequestSpec.swift; sourceTree = ""; }; - 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheckTableViewCell.swift; sourceTree = ""; }; - 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CheckTableViewCell.xib; sourceTree = ""; }; - 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = ""; }; - 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextFieldTableViewCell.xib; sourceTree = ""; }; - 897083D21F8CF08100233561 /* FormTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormTableViewCell.swift; sourceTree = ""; }; - 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequest.swift; sourceTree = ""; }; - 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewRoomViewControllerSpec.swift; sourceTree = ""; }; - 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewControllerSpec.swift; sourceTree = ""; }; - 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequest.swift; sourceTree = ""; }; - 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequestSpec.swift; sourceTree = ""; }; - 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequestSpec.swift; sourceTree = ""; }; - 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModel.swift; sourceTree = ""; }; - 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioFileViewController.swift; sourceTree = ""; }; - 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionFilesRequestSpec.swift; sourceTree = ""; }; - 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManagerSpec.swift; sourceTree = ""; }; - 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UINavigationControllerExtension.swift; sourceTree = ""; }; - 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManagerSpec.swift; sourceTree = ""; }; - 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModelSpec.swift; sourceTree = ""; }; - 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordTableViewController.swift; sourceTree = ""; }; - 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManager.swift; sourceTree = ""; }; - 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserTableViewController.swift; sourceTree = ""; }; - 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModel.swift; sourceTree = ""; }; - 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequest.swift; sourceTree = ""; }; - 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequestSpec.swift; sourceTree = ""; }; - 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequest.swift; sourceTree = ""; }; - 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequestSpec.swift; sourceTree = ""; }; - 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequestSpec.swift; sourceTree = ""; }; - 9987B5952093E4BA007D277C /* FilesListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilesListViewController.swift; sourceTree = ""; }; - 9987B5972093E523007D277C /* FileTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTableViewCell.swift; sourceTree = ""; }; - 9987B5982093E524007D277C /* FileTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FileTableViewCell.xib; sourceTree = ""; }; - 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionFilesRequest.swift; sourceTree = ""; }; - 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequest.swift; sourceTree = ""; }; - 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModel.swift; sourceTree = ""; }; - 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileModelMapping.swift; sourceTree = ""; }; - 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManager.swift; sourceTree = ""; }; - 99C577ED207E4F1500CE9B4D /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = ""; }; - 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewController.swift; sourceTree = ""; }; - 99D888FA204623A900E51306 /* UpdateUserRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequest.swift; sourceTree = ""; }; - 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMessagesRequest.swift; sourceTree = ""; }; - 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListControllerSearch.swift; sourceTree = ""; }; - 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMessagesRequestSpec.swift; sourceTree = ""; }; - 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModelSpec.swift; sourceTree = ""; }; - 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModelSpec.swift; sourceTree = ""; }; - A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TintedTextField.swift; sourceTree = ""; }; - AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.beta.xcconfig"; sourceTree = ""; }; - B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserReviewManager.swift; sourceTree = ""; }; - B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserReviewManagerSpec.swift; sourceTree = ""; }; - BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.debug.xcconfig"; sourceTree = ""; }; - D10E9C191F643457007F1796 /* Channel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Channel.swift; sourceTree = ""; }; - D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelModelMapping.swift; sourceTree = ""; }; - D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSRangeExtensions.swift; sourceTree = ""; }; - D10E9C211F643616007F1796 /* MentionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionModelMapping.swift; sourceTree = ""; }; - D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensions.swift; sourceTree = ""; }; - D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelSpec.swift; sourceTree = ""; }; - D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionSpec.swift; sourceTree = ""; }; - D15C83851F70991F001AB155 /* APIResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResponse.swift; sourceTree = ""; }; - D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestSpec.swift; sourceTree = ""; }; - D18675EB1F716A0D00406FB4 /* LoginRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequest.swift; sourceTree = ""; }; - D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequestSpec.swift; sourceTree = ""; }; - D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensionsSpec.swift; sourceTree = ""; }; - D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkdownManager.swift; sourceTree = ""; }; - D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFontExtensions.swift; sourceTree = ""; }; - D1D535EB1F7081FA006625D2 /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; - D1D535ED1F708628006625D2 /* APIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIRequest.swift; sourceTree = ""; }; - D1D535F01F70864C006625D2 /* InfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequest.swift; sourceTree = ""; }; - D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataControllerSpec.swift; sourceTree = ""; }; - D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinator.swift; sourceTree = ""; }; - D32E28221DFD86C300D6019C /* LauncherProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LauncherProtocol.swift; sourceTree = ""; }; - D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistencyCoordinator.swift; sourceTree = ""; }; - D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModel.swift; sourceTree = ""; }; - F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; sourceTree = ""; }; - FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.beta.xcconfig"; sourceTree = ""; }; + 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewController.swift; sourceTree = ""; }; + 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModel.swift; sourceTree = ""; }; + 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconCell.swift; sourceTree = ""; }; + 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageResetCell.swift; sourceTree = ""; }; + 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewController.swift; sourceTree = ""; }; + 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModel.swift; sourceTree = ""; }; + 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewModel.swift; sourceTree = ""; }; + 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageCell.swift; sourceTree = ""; }; + 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModelSpec.swift; sourceTree = ""; }; + 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorSpec.swift; sourceTree = ""; }; + 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModel.swift; sourceTree = ""; }; + 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModelSpec.swift; sourceTree = ""; }; + 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModelSpec.swift; sourceTree = ""; }; + 140A95E0202F526C003FD564 /* Drawing.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Drawing.storyboard; sourceTree = ""; }; + 140A95E3202F536D003FD564 /* DrawingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewController.swift; sourceTree = ""; }; + 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingControllerDelegate.swift; sourceTree = ""; }; + 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCellSpec.swift; sourceTree = ""; }; + 1435BFA21F9B601600FB2768 /* RCTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTextView.swift; sourceTree = ""; }; + 1499781C1FA605CE007E013D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + 14A6A83020421DF8008C210D /* ColorPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPickerView.swift; sourceTree = ""; }; + 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushWidthViewController.swift; sourceTree = ""; }; + 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushOpacityViewController.swift; sourceTree = ""; }; + 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewController.swift; sourceTree = ""; }; + 14F8A213202E5CBD00175FDC /* Black-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@3x.png"; sourceTree = ""; }; + 14F8A216202E5CBE00175FDC /* Black-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@2x.png"; sourceTree = ""; }; + 14F8A217202E5CBE00175FDC /* Black-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@3x.png"; sourceTree = ""; }; + 14F8A218202E5CBE00175FDC /* Black-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@2x.png"; sourceTree = ""; }; + 14F8A219202E5CBE00175FDC /* Black-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@2x.png"; sourceTree = ""; }; + 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-83.5@2x.png"; sourceTree = ""; }; + 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@3x.png"; sourceTree = ""; }; + 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@2x.png"; sourceTree = ""; }; + 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@3x.png"; sourceTree = ""; }; + 14F8A22F202E5D0400175FDC /* Red-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@3x.png"; sourceTree = ""; }; + 14F8A230202E5D0400175FDC /* Red-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@3x.png"; sourceTree = ""; }; + 14F8A232202E5D0400175FDC /* Red-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@2x.png"; sourceTree = ""; }; + 14F8A233202E5D0400175FDC /* Red-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@2x.png"; sourceTree = ""; }; + 14F8A234202E5D0400175FDC /* Red-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@2x.png"; sourceTree = ""; }; + 14F8A235202E5D0500175FDC /* Red-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@3x.png"; sourceTree = ""; }; + 14F8A236202E5D0500175FDC /* Red-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@2x.png"; sourceTree = ""; }; + 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-83.5@2x.png"; sourceTree = ""; }; + 14F8A238202E5D0600175FDC /* Red-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@3x.png"; sourceTree = ""; }; + 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-83.5@2x.png"; sourceTree = ""; }; + 14F8A24C202E64B100175FDC /* BnW-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@3x.png"; sourceTree = ""; }; + 14F8A24D202E64B100175FDC /* BnW-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@2x.png"; sourceTree = ""; }; + 14F8A24E202E64B100175FDC /* BnW-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@2x.png"; sourceTree = ""; }; + 14F8A24F202E64B100175FDC /* BnW-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@3x.png"; sourceTree = ""; }; + 14F8A250202E64B100175FDC /* BnW-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@3x.png"; sourceTree = ""; }; + 14F8A251202E64B100175FDC /* BnW-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@2x.png"; sourceTree = ""; }; + 14F8A252202E64B100175FDC /* BnW-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@2x.png"; sourceTree = ""; }; + 14F8A254202E64B200175FDC /* BnW-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@3x.png"; sourceTree = ""; }; + 14F8A263202E653D00175FDC /* Grey-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@2x.png"; sourceTree = ""; }; + 14F8A264202E653D00175FDC /* Grey-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@2x.png"; sourceTree = ""; }; + 14F8A265202E653D00175FDC /* Grey-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@3x.png"; sourceTree = ""; }; + 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-83.5@2x.png"; sourceTree = ""; }; + 14F8A267202E653D00175FDC /* Grey-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@2x.png"; sourceTree = ""; }; + 14F8A268202E653E00175FDC /* Grey-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@3x.png"; sourceTree = ""; }; + 14F8A269202E653E00175FDC /* Grey-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@3x.png"; sourceTree = ""; }; + 14F8A26A202E653E00175FDC /* Grey-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@3x.png"; sourceTree = ""; }; + 14F8A26B202E653E00175FDC /* Grey-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@2x.png"; sourceTree = ""; }; + 14F8A277202E658E00175FDC /* White-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@2x.png"; sourceTree = ""; }; + 14F8A278202E658E00175FDC /* White-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@3x.png"; sourceTree = ""; }; + 14F8A279202E658E00175FDC /* White-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@3x.png"; sourceTree = ""; }; + 14F8A27A202E658F00175FDC /* White-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-83.5@2x.png"; sourceTree = ""; }; + 14F8A27B202E658F00175FDC /* White-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@2x.png"; sourceTree = ""; }; + 14F8A27C202E658F00175FDC /* White-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@3x.png"; sourceTree = ""; }; + 14F8A27D202E658F00175FDC /* White-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@2x.png"; sourceTree = ""; }; + 14F8A27E202E658F00175FDC /* White-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@2x.png"; sourceTree = ""; }; + 14F8A27F202E658F00175FDC /* White-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@3x.png"; sourceTree = ""; }; + 14F8A289202E65C500175FDC /* Blue-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@3x.png"; sourceTree = ""; }; + 14F8A28A202E65C600175FDC /* Blue-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@2x.png"; sourceTree = ""; }; + 14F8A28B202E65C600175FDC /* Blue-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@3x.png"; sourceTree = ""; }; + 14F8A28C202E65C600175FDC /* Blue-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@3x.png"; sourceTree = ""; }; + 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-83.5@2x.png"; sourceTree = ""; }; + 14F8A28E202E65C600175FDC /* Blue-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@2x.png"; sourceTree = ""; }; + 14F8A28F202E65C700175FDC /* Blue-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@2x.png"; sourceTree = ""; }; + 14F8A290202E65C700175FDC /* Blue-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@3x.png"; sourceTree = ""; }; + 14F8A291202E65C700175FDC /* Blue-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@2x.png"; sourceTree = ""; }; + 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCell.swift; sourceTree = ""; }; + 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MentionsTextFieldTableViewCell.xib; sourceTree = ""; }; + 330888B32099094400D44D4E /* ThemeableViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableViews.swift; sourceTree = ""; }; + 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableViewControllers.swift; sourceTree = ""; }; + 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatNotificationSpec.swift; sourceTree = ""; }; + 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerSpec.swift; sourceTree = ""; }; + 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewControllerSpec.swift; sourceTree = ""; }; + 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerMessages.swift; sourceTree = ""; }; + 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerRooms.swift; sourceTree = ""; }; + 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerSearch.swift; sourceTree = ""; }; + 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerTyping.swift; sourceTree = ""; }; + 333207FE20766E4F00AD3290 /* NotificationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotificationViewController.xib; sourceTree = ""; }; + 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentToTouchesWindow.swift; sourceTree = ""; }; + 33419D782099170A00D1682A /* ThemeManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManagerSpec.swift; sourceTree = ""; }; + 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableSpec.swift; sourceTree = ""; }; + 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; + 3353DBF7206787E500738D1C /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; + 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; + 3370D8B920926E5700EEA225 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; }; + 3370D8BB2093570D00EEA225 /* ThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManager.swift; sourceTree = ""; }; + 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserActionSheetPresenter.swift; sourceTree = ""; }; + 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessage.swift; sourceTree = ""; }; + 3370D8C12095995800EEA225 /* StarMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequest.swift; sourceTree = ""; }; + 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequestSpec.swift; sourceTree = ""; }; + 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessageSpec.swift; sourceTree = ""; }; + 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotThemeableView.swift; sourceTree = ""; }; + 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopTransparentViewController.swift; sourceTree = ""; }; + 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceCell.swift; sourceTree = ""; }; + 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceViewModel.swift; sourceTree = ""; }; + 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceController.swift; sourceTree = ""; }; + 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; + 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; + 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; + 33A5C9C2206A565800FE1C8F /* travel.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = travel.json; sourceTree = ""; }; + 33A5C9C3206A565800FE1C8F /* regional.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = regional.json; sourceTree = ""; }; + 33A5C9C4206A565800FE1C8F /* flags.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = flags.json; sourceTree = ""; }; + 33A5C9C5206A565800FE1C8F /* people.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = people.json; sourceTree = ""; }; + 33A5C9C6206A565800FE1C8F /* objects.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = objects.json; sourceTree = ""; }; + 33A5C9C7206A565800FE1C8F /* food.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = food.json; sourceTree = ""; }; + 33A5C9C8206A565800FE1C8F /* activity.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = activity.json; sourceTree = ""; }; + 33A5C9C9206A565800FE1C8F /* nature.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = nature.json; sourceTree = ""; }; + 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatNotification.swift; sourceTree = ""; }; + 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; + 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; + 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; + 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; + 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; + 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; + 35BCD302201A9FB800B4BE5A /* AskSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AskSpec.swift; sourceTree = ""; }; + 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCDateFormatter.swift; sourceTree = ""; }; + 35D2F140200A45E800B4BE5A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertSpec.swift; sourceTree = ""; }; + 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OAuthManager.swift; sourceTree = ""; }; + 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewRoomViewController.swift; sourceTree = ""; }; + 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModel.swift; sourceTree = ""; }; + 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewControllerCustomFields.swift; sourceTree = ""; }; + 4101BF001F8D0A1700F67E89 /* AppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManager.swift; sourceTree = ""; }; + 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManagerSpec.swift; sourceTree = ""; }; + 4102E3A91E532323004BAA82 /* Preferences.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Preferences.storyboard; sourceTree = ""; }; + 411119B51F680DB00019854B /* NetworkCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkCoordinator.swift; sourceTree = ""; }; + 411119B71F6825C30019854B /* NetworkManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManagerSpec.swift; sourceTree = ""; }; + 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainChatViewController.swift; sourceTree = ""; }; + 4112DC551FFFB9B1005995E1 /* BaseModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModel.swift; sourceTree = ""; }; + 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelHandler.swift; sourceTree = ""; }; + 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelMappeable.swift; sourceTree = ""; }; + 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModelSpec.swift; sourceTree = ""; }; + 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModel.swift; sourceTree = ""; }; + 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentSpec.swift; sourceTree = ""; }; + 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManager.swift; sourceTree = ""; }; + 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManagerSpec.swift; sourceTree = ""; }; + 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadManager.swift; sourceTree = ""; }; + 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatChannelHeaderCell.swift; sourceTree = ""; }; + 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatChannelHeaderCell.xib; sourceTree = ""; }; + 412184A420472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 412184A520472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + 412184A620472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/VoiceOver.strings; sourceTree = ""; }; + 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterUsernameViewController.swift; sourceTree = ""; }; + 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatPreviewModeView.xib; sourceTree = ""; }; + 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPreviewModeView.swift; sourceTree = ""; }; + 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageVideoView.swift; sourceTree = ""; }; + 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageVideoView.xib; sourceTree = ""; }; + 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageTextView.xib; sourceTree = ""; }; + 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextView.swift; sourceTree = ""; }; + 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorCSSColorsExtension.swift; sourceTree = ""; }; + 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageURLView.swift; sourceTree = ""; }; + 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageURLView.xib; sourceTree = ""; }; + 412EF3C52050507C001689A3 /* ReusableViewText.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReusableViewText.xib; sourceTree = ""; }; + 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = ""; }; + 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageImageView.swift; sourceTree = ""; }; + 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageImageView.xib; sourceTree = ""; }; + 413996161F3B44500075F96E /* UploadHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelper.swift; sourceTree = ""; }; + 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsPageViewController.swift; sourceTree = ""; }; + 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServersViewController.swift; sourceTree = ""; }; + 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCell.swift; sourceTree = ""; }; + 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddServerCell.swift; sourceTree = ""; }; + 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManagerSpec.swift; sourceTree = ""; }; + 41494B911D63C6280004F369 /* UIImageExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; + 41499C8E1F2A116900790EA7 /* ServerManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManager.swift; sourceTree = ""; }; + 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampCoordinator.swift; sourceTree = ""; }; + 414A1FF51D46320F00093E10 /* ResponseMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessage.swift; sourceTree = ""; }; + 414A1FF91D46395400093E10 /* SocketManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManager.swift; sourceTree = ""; }; + 414A1FFB1D46395900093E10 /* SocketResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketResponse.swift; sourceTree = ""; }; + 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewController.swift; sourceTree = ""; }; + 414EFF911E54FE69004F001F /* AuthExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthExtensions.swift; sourceTree = ""; }; + 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextCacheManager.swift; sourceTree = ""; }; + 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModelSpec.swift; sourceTree = ""; }; + 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelHandler.swift; sourceTree = ""; }; + 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelHandler.swift; sourceTree = ""; }; + 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelMapping.swift; sourceTree = ""; }; + 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageModelMapping.swift; sourceTree = ""; }; + 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttachmentModelMapping.swift; sourceTree = ""; }; + 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsModelMapping.swift; sourceTree = ""; }; + 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLModelMapping.swift; sourceTree = ""; }; + 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinatorSpec.swift; sourceTree = ""; }; + 4153E80420504BE700FBC26B /* ReusableViewText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReusableViewText.swift; sourceTree = ""; }; + 41552F651D30308C0081438D /* AuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManager.swift; sourceTree = ""; }; + 41552F671D3035D80081438D /* SocketManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManagerSpec.swift; sourceTree = ""; }; + 4159720B1D3DB854002258F4 /* Email.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Email.swift; sourceTree = ""; }; + 4159720D1D3DB882002258F4 /* Mention.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mention.swift; sourceTree = ""; }; + 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoFactorAuthenticationViewController.swift; sourceTree = ""; }; + 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; + 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCell.swift; sourceTree = ""; }; + 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageCell.xib; sourceTree = ""; }; + 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModelSpec.swift; sourceTree = ""; }; + 416133391D46E0A200E09DA2 /* AuthSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSpec.swift; sourceTree = ""; }; + 4161333B1D46E32F00E09DA2 /* UserSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserSpec.swift; sourceTree = ""; }; + 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSpec.swift; sourceTree = ""; }; + 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageSpec.swift; sourceTree = ""; }; + 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelperSpec.swift; sourceTree = ""; }; + 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManagerSpec.swift; sourceTree = ""; }; + 4162E1521D651A8800AAAE49 /* UserManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserManager.swift; sourceTree = ""; }; + 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketHandlers.swift; sourceTree = ""; }; + 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarViewSpec.swift; sourceTree = ""; }; + 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectServerViewController.swift; sourceTree = ""; }; + 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Auth.storyboard; sourceTree = ""; }; + 4174CB121D2D99960086DAC8 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; + 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseNavigationController.swift; sourceTree = ""; }; + 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthViewController.swift; sourceTree = ""; }; + 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; + 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; + 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Rocket.Chat-Bridge.h"; sourceTree = ""; }; + 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessageSpec.swift; sourceTree = ""; }; + 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoViewController.swift; sourceTree = ""; }; + 41833F4D1DEF16B600E54655 /* Keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Keys.plist; sourceTree = ""; }; + 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatControllerReplyHandler.swift; sourceTree = ""; }; + 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewControllerEmbedded.swift; sourceTree = ""; }; + 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WebViewControllerEmbedded.xib; sourceTree = ""; }; + 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageActions.swift; sourceTree = ""; }; + 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSectionView.swift; sourceTree = ""; }; + 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSectionView.xib; sourceTree = ""; }; + 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegateSpec.swift; sourceTree = ""; }; + 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegate.swift; sourceTree = ""; }; + 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegateSpec.swift; sourceTree = ""; }; + 41900C261D9FE35400308EF4 /* Attachment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Attachment.swift; sourceTree = ""; }; + 419205481D52EDE6004EEC5F /* UILabelExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UILabelExtension.swift; sourceTree = ""; }; + 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionCell.swift; sourceTree = ""; }; + 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; + 4199A9881DABCC570035F820 /* Emojione.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Emojione.swift; sourceTree = ""; }; + 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandler.swift; sourceTree = ""; }; + 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandlerSpec.swift; sourceTree = ""; }; + 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatHeaderViewStatus.xib; sourceTree = ""; }; + 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHeaderViewStatus.swift; sourceTree = ""; }; + 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerHeaderStatus.swift; sourceTree = ""; }; + 419ECCA31F3CA21A005F224B /* DownloadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; + 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerDocuments.swift; sourceTree = ""; }; + 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewControllerExtension.swift; sourceTree = ""; }; + 41A6191A1FA7065400CFFA69 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + 41A79C0E1D2F085F00A1968E /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; + 41A79C121D2F09F200A1968E /* Auth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Auth.swift; sourceTree = ""; }; + 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettings.swift; sourceTree = ""; }; + 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionUserStatusView.xib; sourceTree = ""; }; + 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionUserStatusView.swift; sourceTree = ""; }; + 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AutocompleteCell.xib; sourceTree = ""; }; + 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutocompleteCell.swift; sourceTree = ""; }; + 41ADDD481E9DBB100007A458 /* LoaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderView.swift; sourceTree = ""; }; + 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderViewSpec.swift; sourceTree = ""; }; + 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerUploader.swift; sourceTree = ""; }; + 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIWindowExtensions.swift; sourceTree = ""; }; + 41B554C61FBF0F9D000510B7 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = ""; }; + 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewControllerTextViewDelegate.swift; sourceTree = ""; }; + 41B96361207E48260068F1A6 /* MessageTextValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidator.swift; sourceTree = ""; }; + 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidatorSpec.swift; sourceTree = ""; }; + 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManagerSpec.swift; sourceTree = ""; }; + 41BAE3E61D71B26C00C2445A /* URLExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtension.swift; sourceTree = ""; }; + 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtensionSpec.swift; sourceTree = ""; }; + 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelMapping.swift; sourceTree = ""; }; + 41C275DE1D848005003C88CF /* AvatarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarView.swift; sourceTree = ""; }; + 41C275E01D84815C003C88CF /* AvatarView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AvatarView.xib; sourceTree = ""; }; + 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataController.swift; sourceTree = ""; }; + 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatLoaderCell.xib; sourceTree = ""; }; + 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatLoaderCell.swift; sourceTree = ""; }; + 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayExtensions.swift; sourceTree = ""; }; + 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageDaySeparator.xib; sourceTree = ""; }; + 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageDaySeparator.swift; sourceTree = ""; }; + 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayout.swift; sourceTree = ""; }; + 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewExtentions.swift; sourceTree = ""; }; + 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextFontAttributes.swift; sourceTree = ""; }; + 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensions.swift; sourceTree = ""; }; + 41D7CA861E644E47000F38EA /* MessageExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageExtensions.swift; sourceTree = ""; }; + 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDirectMessageHeaderCell.swift; sourceTree = ""; }; + 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatDirectMessageHeaderCell.xib; sourceTree = ""; }; + 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionManager.swift; sourceTree = ""; }; + 41DAE93D1D318F350098E068 /* Subscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscription.swift; sourceTree = ""; }; + 41DC7A1A1D38454500896FC0 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; + 41DC7A1C1D38471700896FC0 /* MessageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManager.swift; sourceTree = ""; }; + 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManagerSpec.swift; sourceTree = ""; }; + 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensionSpec.swift; sourceTree = ""; }; + 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtensionsSpec.swift; sourceTree = ""; }; + 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSearchMoreView.xib; sourceTree = ""; }; + 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSearchMoreView.swift; sourceTree = ""; }; + 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 41DF76E91D2C50710028DBF8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 41DF76EC1D2C50720028DBF8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 41DF76EE1D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF76F91D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RocketChatUITests.swift; sourceTree = ""; }; + 41DF77041D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41E2F9FE1D414DE800238DFD /* Chat.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Chat.storyboard; sourceTree = ""; }; + 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Subscriptions.storyboard; sourceTree = ""; }; + 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsViewController.swift; sourceTree = ""; }; + 41E2FA061D41513C00238DFD /* ChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = ""; }; + 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensionSpec.swift; sourceTree = ""; }; + 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UINibExtensions.swift; sourceTree = ""; }; + 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = ""; }; + 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthInternalExtensions.swift; sourceTree = ""; }; + 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueriesSpec.swift; sourceTree = ""; }; + 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadVideoCompression.swift; sourceTree = ""; }; + 41EB22371E5F056600AA3AE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 41EB223A1E5F057F00AA3AE7 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + 41EB223B1E5F19EB00AA3AE7 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerAutocomplete.swift; sourceTree = ""; }; + 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageCellProtocol.swift; sourceTree = ""; }; + 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerSocketConnectionHandler.swift; sourceTree = ""; }; + 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTitleView.swift; sourceTree = ""; }; + 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatTitleView.xib; sourceTree = ""; }; + 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURL.swift; sourceTree = ""; }; + 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModelSpec.swift; sourceTree = ""; }; + 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManagerSpec.swift; sourceTree = ""; }; + 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.release.xcconfig"; sourceTree = ""; }; + 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.debug.xcconfig"; sourceTree = ""; }; + 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.entitlements; sourceTree = ""; }; + 597ECBA11E3708A50041C5C5 /* DataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataExtension.swift; sourceTree = ""; }; + 597ECBA31E3708B10041C5C5 /* PushManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushManager.swift; sourceTree = ""; }; + 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; sourceTree = ""; }; + 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat_ShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLSpec.swift; sourceTree = ""; }; + 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_ChatTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegate.swift; sourceTree = ""; }; + 7798B4141F852B720074B2F4 /* SelectField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectField.swift; sourceTree = ""; }; + 7798B4181F852D670074B2F4 /* CustomField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomField.swift; sourceTree = ""; }; + 77BA81501F87C4CB00F295F4 /* TextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextField.swift; sourceTree = ""; }; + 77C261241F97445300724A1F /* AuthSettingsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsSpec.swift; sourceTree = ""; }; + 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DictionaryExtensionsSpec.swift; sourceTree = ""; }; + 77C261291F97453600724A1F /* CustomFieldsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomFieldsSpec.swift; sourceTree = ""; }; + 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectFieldSpec.swift; sourceTree = ""; }; + 77C2612B1F97453600724A1F /* TextFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldSpec.swift; sourceTree = ""; }; + 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtensions.swift; sourceTree = ""; }; + 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendMessageRequest.swift; sourceTree = ""; }; + 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClient.swift; sourceTree = ""; }; + 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClientSpec.swift; sourceTree = ""; }; + 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequest.swift; sourceTree = ""; }; + 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushTokenDeleteRequest.swift; sourceTree = ""; }; + 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushClient.swift; sourceTree = ""; }; + 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = ""; }; + 800640F62049BA25006D990F /* SEScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEScene.swift; sourceTree = ""; }; + 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListViewController.swift; sourceTree = ""; }; + 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMessagesRequest.swift; sourceTree = ""; }; + 800F38EC2019492D0005CB78 /* DeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLink.swift; sourceTree = ""; }; + 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembersListViewController.swift; sourceTree = ""; }; + 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoBasicCell.swift; sourceTree = ""; }; + 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoCellProtocol.swift; sourceTree = ""; }; + 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDescriptionCell.swift; sourceTree = ""; }; + 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDetailCell.swift; sourceTree = ""; }; + 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoUserCell.swift; sourceTree = ""; }; + 800FCD491F728E6A00D9A692 /* MemberCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberCell.swift; sourceTree = ""; }; + 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MemberCell.xib; sourceTree = ""; }; + 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewController.swift; sourceTree = ""; }; + 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayoutSpec.swift; sourceTree = ""; }; + 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensions.swift; sourceTree = ""; }; + 8013F8661FD6B4F400EE1A4E /* Command.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Command.swift; sourceTree = ""; }; + 8013F8681FD6B59900EE1A4E /* Version.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Version.swift; sourceTree = ""; }; + 8013F8691FD6B59900EE1A4E /* APIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIError.swift; sourceTree = ""; }; + 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIClient.swift; sourceTree = ""; }; + 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClient.swift; sourceTree = ""; }; + 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClient.swift; sourceTree = ""; }; + 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddleware.swift; sourceTree = ""; }; + 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddlewareSpec.swift; sourceTree = ""; }; + 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockAPI.swift; sourceTree = ""; }; + 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionSpec.swift; sourceTree = ""; }; + 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClientSpec.swift; sourceTree = ""; }; + 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClientSpec.swift; sourceTree = ""; }; + 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsRequest.swift; sourceTree = ""; }; + 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequest.swift; sourceTree = ""; }; + 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequestSpec.swift; sourceTree = ""; }; + 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandModelMapping.swift; sourceTree = ""; }; + 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushManagerSpec.swift; sourceTree = ""; }; + 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUserView.swift; sourceTree = ""; }; + 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPicker.swift; sourceTree = ""; }; + 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiPicker.xib; sourceTree = ""; }; + 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerController.swift; sourceTree = ""; }; + 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequestSpec.swift; sourceTree = ""; }; + 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPMethod.swift; sourceTree = ""; }; + 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequest.swift; sourceTree = ""; }; + 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequestSpec.swift; sourceTree = ""; }; + 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoaderTableViewCell.swift; sourceTree = ""; }; + 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoaderTableViewCell.xib; sourceTree = ""; }; + 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactionSpec.swift; sourceTree = ""; }; + 802498ED1F7A8380005477EC /* MeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequest.swift; sourceTree = ""; }; + 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequestSpec.swift; sourceTree = ""; }; + 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageAudioView.xib; sourceTree = ""; }; + 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAudioView.swift; sourceTree = ""; }; + 8029B2F12059B6F60067157B /* VideoInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoInfo.swift; sourceTree = ""; }; + 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+StatusReport.swift"; sourceTree = ""; }; + 802A4E102049C7340072CD23 /* SENavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigationController.swift; sourceTree = ""; }; + 802A4E23204D730F0072CD23 /* AppGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppGroup.swift; sourceTree = ""; }; + 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOTextField.swift; sourceTree = ""; }; + 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOLocalized.swift; sourceTree = ""; }; + 80307E421FD75DC0006AD9EF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E441FD75DCB006AD9EF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/VoiceOver.strings"; sourceTree = ""; }; + 80307E451FD75DCF006AD9EF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E461FD75DD1006AD9EF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E471FD75DD2006AD9EF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E481FD75DD5006AD9EF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/VoiceOver.strings; sourceTree = ""; }; + 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateMessageRequest.swift; sourceTree = ""; }; + 803782B61FB4751D00DED049 /* RealmTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmTestCase.swift; sourceTree = ""; }; + 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListViewController.swift; sourceTree = ""; }; + 8041C0412028C7EF007E21FA /* ReactorListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListView.swift; sourceTree = ""; }; + 8041C0432028C828007E21FA /* ReactorListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactorListView.xib; sourceTree = ""; }; + 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCEmojiKitLocalizable.swift; sourceTree = ""; }; + 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = RCEmojiKit.xcassets; sourceTree = ""; }; + 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewController.swift; sourceTree = ""; }; + 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEXibInitializable.swift; sourceTree = ""; }; + 805DEC341FFC03380033151B /* CustomEmojiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiManager.swift; sourceTree = ""; }; + 805DEC361FFC08870033151B /* CustomEmoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmoji.swift; sourceTree = ""; }; + 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiSpec.swift; sourceTree = ""; }; + 806401301FB09DE800990572 /* Permission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Permission.swift; sourceTree = ""; }; + 806401321FB09EC400990572 /* PermissionModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionModelMapping.swift; sourceTree = ""; }; + 806401341FB09F8A00990572 /* PermissionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManager.swift; sourceTree = ""; }; + 806465EB1FED19B9001F27DB /* EmojiView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiView.xib; sourceTree = ""; }; + 806465ED1FED1AFE001F27DB /* EmojiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiView.swift; sourceTree = ""; }; + 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesNavigationController.swift; sourceTree = ""; }; + 806728FE20079734009FE94D /* DeleteMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequest.swift; sourceTree = ""; }; + 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequestSpec.swift; sourceTree = ""; }; + 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequest.swift; sourceTree = ""; }; + 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequestSpec.swift; sourceTree = ""; }; + 8067DAA5206D1883005E3369 /* APIResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResource.swift; sourceTree = ""; }; + 8069D26D1FFF876D00C75926 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; + 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostMessageRequest.swift; sourceTree = ""; }; + 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMessageRequestSpec.swift; sourceTree = ""; }; + 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerLoginServices.swift; sourceTree = ""; }; + 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerConnectionHandler.swift; sourceTree = ""; }; + 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerAuthenticationHandler.swift; sourceTree = ""; }; + 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageCellAccessibility.swift; sourceTree = ""; }; + 807371991F94E83600D53ADF /* SocketError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocketError.swift; sourceTree = ""; }; + 8073719B1F963FA400D53ADF /* APITestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APITestCase.swift; sourceTree = ""; }; + 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceManager.swift; sourceTree = ""; }; + 8073719F1F96937100D53ADF /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginService.swift; sourceTree = ""; }; + 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelMapping.swift; sourceTree = ""; }; + 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelHandler.swift; sourceTree = ""; }; + 8076FD9920484A6000114F28 /* SEStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEStore.swift; sourceTree = ""; }; + 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerSocket.swift; sourceTree = ""; }; + 8076FDA32048533000114F28 /* String+Random.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Random.swift"; sourceTree = ""; }; + 8076FDA8204853DE00114F28 /* RealmExecute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmExecute.swift; sourceTree = ""; }; + 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSettingsHiddenTypes.swift; sourceTree = ""; }; + 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanDeleteMessage.swift; sourceTree = ""; }; + 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanBlockMessage.swift; sourceTree = ""; }; + 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanEditMessage.swift; sourceTree = ""; }; + 8076FDB42048571200114F28 /* AuthUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthUser.swift; sourceTree = ""; }; + 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerCurrentUser.swift; sourceTree = ""; }; + 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerRecover.swift; sourceTree = ""; }; + 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUtils.swift; sourceTree = ""; }; + 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUser.swift; sourceTree = ""; }; + 8076FDC62048632300114F28 /* SubscriptionQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueries.swift; sourceTree = ""; }; + 8076FDD02048646500114F28 /* MessageReply.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReply.swift; sourceTree = ""; }; + 8076FDD5204864E700114F28 /* UserQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserQueries.swift; sourceTree = ""; }; + 8076FDD72048654F00114F28 /* UserUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserUtils.swift; sourceTree = ""; }; + 8076FDD920489F5900114F28 /* SEViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEViewController.swift; sourceTree = ""; }; + 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewController.swift; sourceTree = ""; }; + 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationCoordinator.swift; sourceTree = ""; }; + 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Group.swift"; sourceTree = ""; }; + 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.ShareExtension.entitlements; sourceTree = ""; }; + 8076FDEC2049A5F600114F28 /* SECellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECellModel.swift; sourceTree = ""; }; + 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceSpec.swift; sourceTree = ""; }; + 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthManagerSpec.swift; sourceTree = ""; }; + 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanPinMessage.swift; sourceTree = ""; }; + 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPlaceholderTextView.swift; sourceTree = ""; }; + 807C7C0520751ED1006B600E /* SpotlightClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClient.swift; sourceTree = ""; }; + 807C7C0720751EDB006B600E /* SpotlightRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequest.swift; sourceTree = ""; }; + 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequestSpec.swift; sourceTree = ""; }; + 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClientSpec.swift; sourceTree = ""; }; + 807C7C11207522EF006B600E /* LoginServicesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginServicesRequest.swift; sourceTree = ""; }; + 807FB53C2044B49800E21429 /* Emojione+Transform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Emojione+Transform.swift"; sourceTree = ""; }; + 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojioneSpec.swift; sourceTree = ""; }; + 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Rocket.Chat.ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewController.swift; sourceTree = ""; }; + 807FB55D2046E7DD00E21429 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 807FB55F2046E7DD00E21429 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 807FB568204729E500E21429 /* SEServersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewController.swift; sourceTree = ""; }; + 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewModel.swift; sourceTree = ""; }; + 807FB57020472B6A00E21429 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + 807FB57220472B6D00E21429 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57320472B6F00E21429 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57420472B7000E21429 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57520472B7200E21429 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57620472B7300E21429 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57720472B8200E21429 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 807FB581204837AF00E21429 /* SEServersViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewModel.swift; sourceTree = ""; }; + 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManagerSpec.swift; sourceTree = ""; }; + 808792371FB14B3300EFE77F /* PermissionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionSpec.swift; sourceTree = ""; }; + 80977AB5204EEF1E00C41435 /* SelectServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectServer.swift; sourceTree = ""; }; + 80977AB8204EFBCC00C41435 /* SENavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigation.swift; sourceTree = ""; }; + 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESceneTransition.swift; sourceTree = ""; }; + 80977ABE204F36F200C41435 /* SESearchState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESearchState.swift; sourceTree = ""; }; + 80977AC1204F37C200C41435 /* SEState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEState.swift; sourceTree = ""; }; + 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewModel.swift; sourceTree = ""; }; + 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadClient.swift; sourceTree = ""; }; + 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionListView.swift; sourceTree = ""; }; + 809B530F1FE2F17D00833DD2 /* ReactionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionView.swift; sourceTree = ""; }; + 809B53111FE2F2F900833DD2 /* ReactionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionView.xib; sourceTree = ""; }; + 809B53131FE3294400833DD2 /* ReactionListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionListView.xib; sourceTree = ""; }; + 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReaction.swift; sourceTree = ""; }; + 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RealmCurrent.swift; sourceTree = ""; }; + 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcher.swift; sourceTree = ""; }; + 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiAutocompleteCell.swift; sourceTree = ""; }; + 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiAutocompleteCell.xib; sourceTree = ""; }; + 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequest.swift; sourceTree = ""; }; + 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequestSpec.swift; sourceTree = ""; }; + 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequest.swift; sourceTree = ""; }; + 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequestSpec.swift; sourceTree = ""; }; + 80A63C561F71D2E400FE5AC4 /* APISpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APISpec.swift; sourceTree = ""; }; + 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcherSpec.swift; sourceTree = ""; }; + 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensionsSpec.swift; sourceTree = ""; }; + 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageUnreadSeparator.swift; sourceTree = ""; }; + 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageUnreadSeparator.xib; sourceTree = ""; }; + 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SAMLViewController.swift; sourceTree = ""; }; + 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewControllerSpec.swift; sourceTree = ""; }; + 80C7DD5F1FF46B8000E6647C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD611FF46B8300E6647C /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/RCEmojiKit.strings"; sourceTree = ""; }; + 80C7DD621FF46B8600E6647C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD631FF46B8700E6647C /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD641FF46B8800E6647C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD651FF46B8C00E6647C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80CFB5711F8D697100FC9715 /* ReplyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReplyView.xib; sourceTree = ""; }; + 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyView.swift; sourceTree = ""; }; + 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEServerCell.xib; sourceTree = ""; }; + 80D0CE5F205016B40056B17F /* SEServerCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCell.swift; sourceTree = ""; }; + 80D0CE61205023710056B17F /* SECell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECell.swift; sourceTree = ""; }; + 80D0CE63205034280056B17F /* SEServerCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCellModel.swift; sourceTree = ""; }; + 80D0CE6520503C860056B17F /* SERoomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCell.swift; sourceTree = ""; }; + 80D0CE6720503C970056B17F /* SERoomCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SERoomCell.xib; sourceTree = ""; }; + 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCellModel.swift; sourceTree = ""; }; + 80D0CE6E20509C100056B17F /* SEAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEAvatarView.swift; sourceTree = ""; }; + 80D0CE7020509C230056B17F /* SEAvatarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEAvatarView.xib; sourceTree = ""; }; + 80D5637120592D32008896D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 80D563742059325A008896D6 /* MimeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MimeType.swift; sourceTree = ""; }; + 80D5637620593533008896D6 /* ParseItemProviders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseItemProviders.swift; sourceTree = ""; }; + 80D955C1202154A300E3F281 /* CASViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CASViewController.swift; sourceTree = ""; }; + 80DC9A6B206BA95600032BE0 /* Localized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Localized.swift; sourceTree = ""; }; + 80DC9A6F206BAC8B00032BE0 /* mimetype.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = mimetype.json; sourceTree = ""; }; + 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensions.swift; sourceTree = ""; }; + 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensionsSpec.swift; sourceTree = ""; }; + 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensionsSpec.swift; sourceTree = ""; }; + 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+CustomEmojis.swift"; sourceTree = ""; }; + 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkdownManagerSpec.swift; sourceTree = ""; }; + 80FA9065205313E20069038F /* SEContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEContent.swift; sourceTree = ""; }; + 80FA9067205314040069038F /* SEServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServer.swift; sourceTree = ""; }; + 80FA906920569F890069038F /* SEComposeFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCell.swift; sourceTree = ""; }; + 80FA906B20569FA10069038F /* SEComposeFileCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeFileCell.xib; sourceTree = ""; }; + 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCellModel.swift; sourceTree = ""; }; + 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewModel.swift; sourceTree = ""; }; + 80FA90712056C1190069038F /* SEComposeTextCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCell.swift; sourceTree = ""; }; + 80FA90732056C1350069038F /* SEComposeTextCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeTextCell.xib; sourceTree = ""; }; + 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCellModel.swift; sourceTree = ""; }; + 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeCellModel.swift; sourceTree = ""; }; + 80FA907C2057F4650069038F /* SubmitContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubmitContent.swift; sourceTree = ""; }; + 80FE8DED206584EA0099170E /* SEFileDetailView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEFileDetailView.xib; sourceTree = ""; }; + 80FE8DEF206587510099170E /* SEFileDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEFileDetailView.swift; sourceTree = ""; }; + 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.release.xcconfig"; sourceTree = ""; }; + 848088BA204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 848088BB204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 848088BC204370E9005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/VoiceOver.strings; sourceTree = ""; }; + 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequestSpec.swift; sourceTree = ""; }; + 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheckTableViewCell.swift; sourceTree = ""; }; + 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CheckTableViewCell.xib; sourceTree = ""; }; + 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = ""; }; + 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextFieldTableViewCell.xib; sourceTree = ""; }; + 897083D21F8CF08100233561 /* FormTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormTableViewCell.swift; sourceTree = ""; }; + 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequest.swift; sourceTree = ""; }; + 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewRoomViewControllerSpec.swift; sourceTree = ""; }; + 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewControllerSpec.swift; sourceTree = ""; }; + 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequest.swift; sourceTree = ""; }; + 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequestSpec.swift; sourceTree = ""; }; + 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequestSpec.swift; sourceTree = ""; }; + 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModel.swift; sourceTree = ""; }; + 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioFileViewController.swift; sourceTree = ""; }; + 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionFilesRequestSpec.swift; sourceTree = ""; }; + 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManagerSpec.swift; sourceTree = ""; }; + 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UINavigationControllerExtension.swift; sourceTree = ""; }; + 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManagerSpec.swift; sourceTree = ""; }; + 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModelSpec.swift; sourceTree = ""; }; + 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordTableViewController.swift; sourceTree = ""; }; + 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManager.swift; sourceTree = ""; }; + 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserTableViewController.swift; sourceTree = ""; }; + 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModel.swift; sourceTree = ""; }; + 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequest.swift; sourceTree = ""; }; + 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequestSpec.swift; sourceTree = ""; }; + 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequest.swift; sourceTree = ""; }; + 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequestSpec.swift; sourceTree = ""; }; + 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequestSpec.swift; sourceTree = ""; }; + 9987B5952093E4BA007D277C /* FilesListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilesListViewController.swift; sourceTree = ""; }; + 9987B5972093E523007D277C /* FileTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTableViewCell.swift; sourceTree = ""; }; + 9987B5982093E524007D277C /* FileTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FileTableViewCell.xib; sourceTree = ""; }; + 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionFilesRequest.swift; sourceTree = ""; }; + 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequest.swift; sourceTree = ""; }; + 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModel.swift; sourceTree = ""; }; + 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileModelMapping.swift; sourceTree = ""; }; + 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManager.swift; sourceTree = ""; }; + 99C577ED207E4F1500CE9B4D /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = ""; }; + 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewController.swift; sourceTree = ""; }; + 99D888FA204623A900E51306 /* UpdateUserRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequest.swift; sourceTree = ""; }; + 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMessagesRequest.swift; sourceTree = ""; }; + 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListControllerSearch.swift; sourceTree = ""; }; + 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMessagesRequestSpec.swift; sourceTree = ""; }; + 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModelSpec.swift; sourceTree = ""; }; + 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModelSpec.swift; sourceTree = ""; }; + A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TintedTextField.swift; sourceTree = ""; }; + AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.beta.xcconfig"; sourceTree = ""; }; + B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserReviewManager.swift; sourceTree = ""; }; + B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserReviewManagerSpec.swift; sourceTree = ""; }; + BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.debug.xcconfig"; sourceTree = ""; }; + D10E9C191F643457007F1796 /* Channel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Channel.swift; sourceTree = ""; }; + D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelModelMapping.swift; sourceTree = ""; }; + D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSRangeExtensions.swift; sourceTree = ""; }; + D10E9C211F643616007F1796 /* MentionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionModelMapping.swift; sourceTree = ""; }; + D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensions.swift; sourceTree = ""; }; + D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelSpec.swift; sourceTree = ""; }; + D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionSpec.swift; sourceTree = ""; }; + D15C83851F70991F001AB155 /* APIResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResponse.swift; sourceTree = ""; }; + D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestSpec.swift; sourceTree = ""; }; + D18675EB1F716A0D00406FB4 /* LoginRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequest.swift; sourceTree = ""; }; + D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequestSpec.swift; sourceTree = ""; }; + D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensionsSpec.swift; sourceTree = ""; }; + D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkdownManager.swift; sourceTree = ""; }; + D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFontExtensions.swift; sourceTree = ""; }; + D1D535EB1F7081FA006625D2 /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; + D1D535ED1F708628006625D2 /* APIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIRequest.swift; sourceTree = ""; }; + D1D535F01F70864C006625D2 /* InfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequest.swift; sourceTree = ""; }; + D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataControllerSpec.swift; sourceTree = ""; }; + D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinator.swift; sourceTree = ""; }; + D32E28221DFD86C300D6019C /* LauncherProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LauncherProtocol.swift; sourceTree = ""; }; + D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistencyCoordinator.swift; sourceTree = ""; }; + D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModel.swift; sourceTree = ""; }; + F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; sourceTree = ""; }; + FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.beta.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 41DF76DC1D2C50710028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76F01D2C50720028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FB1D2C50720028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5552046E7DD00E21429 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 41DF76DC1D2C50710028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76F01D2C50720028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FB1D2C50720028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5552046E7DD00E21429 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0B3A9760202C4DE10019CA92 /* Resources */ = { - isa = PBXGroup; - children = ( - 14F8A210202E5B2A00175FDC /* AlternateIcons */, - 41DF76E91D2C50710028DBF8 /* Assets.xcassets */, - 41EB22381E5F056600AA3AE7 /* Localizable.strings */, - 80307E431FD75DC0006AD9EF /* VoiceOver.strings */, - ); - path = Resources; - sourceTree = ""; - }; - 0B3A9767202C75A60019CA92 /* ChangeAppIcon */ = { - isa = PBXGroup; - children = ( - 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */, - 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */, - 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */, - ); - path = ChangeAppIcon; - sourceTree = ""; - }; - 0B9AB2BF20444EB300ABEA05 /* Language */ = { - isa = PBXGroup; - children = ( - 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */, - 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */, - 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */, - 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */, - ); - path = Language; - sourceTree = ""; - }; - 0BBCC2C0204546BB001E3B6D /* Language */ = { - isa = PBXGroup; - children = ( - 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */, - ); - path = Language; - sourceTree = ""; - }; - 106DAA428B5BF7289FB70C65 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */, - 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */, - 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 140A95DC202F1E4D003FD564 /* AppIcon */ = { - isa = PBXGroup; - children = ( - 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */, - ); - path = AppIcon; - sourceTree = ""; - }; - 140A95E2202F5321003FD564 /* Drawing */ = { - isa = PBXGroup; - children = ( - 14A6A82F20421DED008C210D /* Color Picker */, - 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */, - 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */, - 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */, - 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */, - 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */, - 140A95E3202F536D003FD564 /* DrawingViewController.swift */, - 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */, - ); - path = Drawing; - sourceTree = ""; - }; - 140C84EA1FC9DB9600032A59 /* CreateChannel */ = { - isa = PBXGroup; - children = ( - 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */, - ); - path = CreateChannel; - sourceTree = ""; - }; - 14A6A82F20421DED008C210D /* Color Picker */ = { - isa = PBXGroup; - children = ( - 14A6A83020421DF8008C210D /* ColorPickerView.swift */, - ); - path = "Color Picker"; - sourceTree = ""; - }; - 14F8A210202E5B2A00175FDC /* AlternateIcons */ = { - isa = PBXGroup; - children = ( - 14F8A211202E5B3200175FDC /* Black */, - 14F8A276202E654900175FDC /* Blue */, - 14F8A247202E649F00175FDC /* BnW */, - 14F8A262202E653600175FDC /* Grey */, - 14F8A212202E5B3B00175FDC /* Red */, - 14F8A275202E654400175FDC /* White */, - ); - path = AlternateIcons; - sourceTree = ""; - }; - 14F8A211202E5B3200175FDC /* Black */ = { - isa = PBXGroup; - children = ( - 14F8A219202E5CBE00175FDC /* Black-29@2x.png */, - 14F8A213202E5CBD00175FDC /* Black-29@3x.png */, - 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */, - 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */, - 14F8A218202E5CBE00175FDC /* Black-60@2x.png */, - 14F8A217202E5CBE00175FDC /* Black-60@3x.png */, - 14F8A216202E5CBE00175FDC /* Black-76@2x.png */, - 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */, - 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */, - ); - path = Black; - sourceTree = ""; - }; - 14F8A212202E5B3B00175FDC /* Red */ = { - isa = PBXGroup; - children = ( - 14F8A232202E5D0400175FDC /* Red-29@2x.png */, - 14F8A230202E5D0400175FDC /* Red-29@3x.png */, - 14F8A236202E5D0500175FDC /* Red-40@2x.png */, - 14F8A235202E5D0500175FDC /* Red-40@3x.png */, - 14F8A234202E5D0400175FDC /* Red-60@2x.png */, - 14F8A22F202E5D0400175FDC /* Red-60@3x.png */, - 14F8A233202E5D0400175FDC /* Red-76@2x.png */, - 14F8A238202E5D0600175FDC /* Red-76@3x.png */, - 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */, - ); - path = Red; - sourceTree = ""; - }; - 14F8A247202E649F00175FDC /* BnW */ = { - isa = PBXGroup; - children = ( - 14F8A24D202E64B100175FDC /* BnW-29@2x.png */, - 14F8A250202E64B100175FDC /* BnW-29@3x.png */, - 14F8A252202E64B100175FDC /* BnW-40@2x.png */, - 14F8A24C202E64B100175FDC /* BnW-40@3x.png */, - 14F8A24E202E64B100175FDC /* BnW-60@2x.png */, - 14F8A24F202E64B100175FDC /* BnW-60@3x.png */, - 14F8A251202E64B100175FDC /* BnW-76@2x.png */, - 14F8A254202E64B200175FDC /* BnW-76@3x.png */, - 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */, - ); - path = BnW; - sourceTree = ""; - }; - 14F8A262202E653600175FDC /* Grey */ = { - isa = PBXGroup; - children = ( - 14F8A264202E653D00175FDC /* Grey-29@2x.png */, - 14F8A269202E653E00175FDC /* Grey-29@3x.png */, - 14F8A263202E653D00175FDC /* Grey-40@2x.png */, - 14F8A268202E653E00175FDC /* Grey-40@3x.png */, - 14F8A26B202E653E00175FDC /* Grey-60@2x.png */, - 14F8A26A202E653E00175FDC /* Grey-60@3x.png */, - 14F8A267202E653D00175FDC /* Grey-76@2x.png */, - 14F8A265202E653D00175FDC /* Grey-76@3x.png */, - 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */, - ); - path = Grey; - sourceTree = ""; - }; - 14F8A275202E654400175FDC /* White */ = { - isa = PBXGroup; - children = ( - 14F8A27D202E658F00175FDC /* White-29@2x.png */, - 14F8A27C202E658F00175FDC /* White-29@3x.png */, - 14F8A27E202E658F00175FDC /* White-40@2x.png */, - 14F8A278202E658E00175FDC /* White-40@3x.png */, - 14F8A27B202E658F00175FDC /* White-60@2x.png */, - 14F8A27F202E658F00175FDC /* White-60@3x.png */, - 14F8A277202E658E00175FDC /* White-76@2x.png */, - 14F8A279202E658E00175FDC /* White-76@3x.png */, - 14F8A27A202E658F00175FDC /* White-83.5@2x.png */, - ); - path = White; - sourceTree = ""; - }; - 14F8A276202E654900175FDC /* Blue */ = { - isa = PBXGroup; - children = ( - 14F8A28F202E65C700175FDC /* Blue-29@2x.png */, - 14F8A289202E65C500175FDC /* Blue-29@3x.png */, - 14F8A28E202E65C600175FDC /* Blue-40@2x.png */, - 14F8A290202E65C700175FDC /* Blue-40@3x.png */, - 14F8A28A202E65C600175FDC /* Blue-60@2x.png */, - 14F8A28B202E65C600175FDC /* Blue-60@3x.png */, - 14F8A291202E65C700175FDC /* Blue-76@2x.png */, - 14F8A28C202E65C600175FDC /* Blue-76@3x.png */, - 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */, - ); - path = Blue; - sourceTree = ""; - }; - 330888B2209901C800D44D4E /* Theme */ = { - isa = PBXGroup; - children = ( - 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */, - 3353DBF7206787E500738D1C /* Theme.swift */, - 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */, - 330888B32099094400D44D4E /* ThemeableViews.swift */, - 3370D8BB2093570D00EEA225 /* ThemeManager.swift */, - ); - path = Theme; - sourceTree = ""; - }; - 3330329F2073905900A9514D /* SubscriptionManager */ = { - isa = PBXGroup; - children = ( - 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */, - 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */, - 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */, - 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */, - 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */, - ); - path = SubscriptionManager; - sourceTree = ""; - }; - 33419D77209916EE00D1682A /* Theme */ = { - isa = PBXGroup; - children = ( - 33419D782099170A00D1682A /* ThemeManagerSpec.swift */, - 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */, - ); - path = Theme; - sourceTree = ""; - }; - 3370D8D420977D4500EEA225 /* Theme */ = { - isa = PBXGroup; - children = ( - 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */, - 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */, - ); - path = Theme; - sourceTree = ""; - }; - 33A5C9C0206A565800FE1C8F /* Emojis */ = { - isa = PBXGroup; - children = ( - 33A5C9C8206A565800FE1C8F /* activity.json */, - 33A5C9C4206A565800FE1C8F /* flags.json */, - 33A5C9C7206A565800FE1C8F /* food.json */, - 33A5C9C9206A565800FE1C8F /* nature.json */, - 33A5C9C6206A565800FE1C8F /* objects.json */, - 33A5C9C5206A565800FE1C8F /* people.json */, - 33A5C9C3206A565800FE1C8F /* regional.json */, - 33A5C9C1206A565800FE1C8F /* symbols.json */, - 33A5C9C2206A565800FE1C8F /* travel.json */, - ); - path = Emojis; - sourceTree = ""; - }; - 33F73B292073BDD800F03F29 /* Notification */ = { - isa = PBXGroup; - children = ( - 33F73B2B2073BDF400F03F29 /* NotificationView.swift */, - 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */, - ); - path = Notification; - sourceTree = ""; - }; - 33F73B2E2073F1FC00F03F29 /* Notification */ = { - isa = PBXGroup; - children = ( - 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */, - 333207FE20766E4F00AD3290 /* NotificationViewController.xib */, - 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */, - ); - path = Notification; - sourceTree = ""; - }; - 4102E3AB1E53272C004BAA82 /* Preferences */ = { - isa = PBXGroup; - children = ( - 0B3A9767202C75A60019CA92 /* ChangeAppIcon */, - 0B9AB2BF20444EB300ABEA05 /* Language */, - 99282260204DE0AE005D2067 /* Profile */, - 3370D8D420977D4500EEA225 /* Theme */, - 9960C82E2063F091004A034C /* Web Browser */, - 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, - 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */, - 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */, - ); - path = Preferences; - sourceTree = ""; - }; - 411EDECE1E30F2D700BC7BE3 /* Uploader */ = { - isa = PBXGroup; - children = ( - 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */, - 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */, - ); - path = Uploader; - sourceTree = ""; - }; - 414A1FF41D4631F600093E10 /* Response */ = { - isa = PBXGroup; - children = ( - 414A1FF51D46320F00093E10 /* ResponseMessage.swift */, - 807371991F94E83600D53ADF /* SocketError.swift */, - 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */, - 414A1FFB1D46395900093E10 /* SocketResponse.swift */, - ); - path = Response; - sourceTree = ""; - }; - 414EFF901E54FE35004F001F /* Models */ = { - isa = PBXGroup; - children = ( - 414EFF911E54FE69004F001F /* AuthExtensions.swift */, - 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */, - 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */, - 41D7CA861E644E47000F38EA /* MessageExtensions.swift */, - D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */, - 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */, - ); - path = Models; - sourceTree = ""; - }; - 41534EE0208E43FF009C5A17 /* Launcher */ = { - isa = PBXGroup; - children = ( - 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */, - ); - path = Launcher; - sourceTree = ""; - }; - 4153E80320504BC800FBC26B /* Preferences */ = { - isa = PBXGroup; - children = ( - 4153E80420504BE700FBC26B /* ReusableViewText.swift */, - 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */, - 412EF3C52050507C001689A3 /* ReusableViewText.xib */, - ); - path = Preferences; - sourceTree = ""; - }; - 41552F641D30307D0081438D /* Model */ = { - isa = PBXGroup; - children = ( - 8076FDB72048580A00114F28 /* AuthManager */, - 3330329F2073905900A9514D /* SubscriptionManager */, - 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */, - 805DEC341FFC03380033151B /* CustomEmojiManager.swift */, - 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */, - 41DC7A1C1D38471700896FC0 /* MessageManager.swift */, - 806401341FB09F8A00990572 /* PermissionManager.swift */, - 4162E1521D651A8800AAAE49 /* UserManager.swift */, - ); - path = Model; - sourceTree = ""; - }; - 41552F691D3035DB0081438D /* Managers */ = { - isa = PBXGroup; - children = ( - 41534EE0208E43FF009C5A17 /* Launcher */, - 419D78851FBDCF5A005FC7A2 /* Requests */, - 417A70011D47916C00FF46EE /* Socket */, - 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */, - 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */, - 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */, - 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */, - 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */, - 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */, - 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */, - 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */, - 411119B71F6825C30019854B /* NetworkManagerSpec.swift */, - 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */, - 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */, - 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */, - 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */, - 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */, - B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */, - 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */, - ); - path = Managers; - sourceTree = ""; - }; - 4161332F1D46CA2800E09DA2 /* Views */ = { - isa = PBXGroup; - children = ( - 80D41DFB2092152A00034D1F /* ActionSheets */, - 41C275DD1D847FEE003C88CF /* Avatar */, - 416133301D46CA3100E09DA2 /* Cells */, - 41F167E51DAC450200775CCA /* Chat */, - 897083CC1F8CF08100233561 /* Form */, - 41ADDD471E9DBAE90007A458 /* Loader */, - 33F73B292073BDD800F03F29 /* Notification */, - 418C4DC41DC4C05000ABED4C /* Sections */, - 41A91AED1E51C4E5005C94B1 /* Subscriptions */, - 7758A7621F8FA34300FAA244 /* UIPickerView */, - ); - path = Views; - sourceTree = ""; - }; - 416133301D46CA3100E09DA2 /* Cells */ = { - isa = PBXGroup; - children = ( - 416133351D46CA7400E09DA2 /* Chat */, - 4153E80320504BC800FBC26B /* Preferences */, - 4192054A1D52F4E7004EEC5F /* Subscription */, - 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */, - 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 416133351D46CA7400E09DA2 /* Chat */ = { - isa = PBXGroup; - children = ( - 800FCD431F728E6A00D9A692 /* Info */, - 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */, - 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */, - 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */, - 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */, - 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */, - 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */, - 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */, - 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */, - 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */, - 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, - 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, - 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */, - 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */, - 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */, - 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, - 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, - 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */, - 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */, - 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, - 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, - D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, - 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, - 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, - 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */, - 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */, - 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, - 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, - ); - path = Chat; - sourceTree = ""; - }; - 416133361D46DB0900E09DA2 /* Models */ = { - isa = PBXGroup; - children = ( - 80D41E0320924A6500034D1F /* Auth */, - 77C261281F97453600724A1F /* CustomFields */, - 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */, - 77C261241F97445300724A1F /* AuthSettingsSpec.swift */, - 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */, - D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */, - 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */, - 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */, - 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */, - 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */, - 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */, - D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */, - 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */, - 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */, - 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */, - 808792371FB14B3300EFE77F /* PermissionSpec.swift */, - 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */, - 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */, - 4161333B1D46E32F00E09DA2 /* UserSpec.swift */, - ); - path = Models; - sourceTree = ""; - }; - 416296F71F41B41100BCCEDD /* Helpers */ = { - isa = PBXGroup; - children = ( - 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */, - 35BCD302201A9FB800B4BE5A /* AskSpec.swift */, - 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */, - 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */, - 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - 4171ABA31E7C0556009FC3F0 /* Views */ = { - isa = PBXGroup; - children = ( - D3CFAFBE1E907FC100BADC0A /* Chat */, - 140C84EA1FC9DB9600032A59 /* CreateChannel */, - 418C743F1FA3626200499577 /* UIPickerView */, - 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */, - 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */, - ); - path = Views; - sourceTree = ""; - }; - 4174CB0A1D2D990F0086DAC8 /* Controllers */ = { - isa = PBXGroup; - children = ( - 4174CB101D2D997E0086DAC8 /* Auth */, - 4174CB111D2D99840086DAC8 /* Base */, - 41E2FA021D414ECC00238DFD /* Chat */, - 140A95E2202F5321003FD564 /* Drawing */, - 33F73B2E2073F1FC00F03F29 /* Notification */, - 4102E3AB1E53272C004BAA82 /* Preferences */, - 41E2FA031D414ED400238DFD /* Subscriptions */, - 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */, - ); - path = Controllers; - sourceTree = ""; - }; - 4174CB0B1D2D99170086DAC8 /* Storyboards */ = { - isa = PBXGroup; - children = ( - 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */, - 41E2F9FE1D414DE800238DFD /* Chat.storyboard */, - 140A95E0202F526C003FD564 /* Drawing.storyboard */, - 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */, - 4102E3A91E532323004BAA82 /* Preferences.storyboard */, - 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */, - ); - path = Storyboards; - sourceTree = ""; - }; - 4174CB101D2D997E0086DAC8 /* Auth */ = { - isa = PBXGroup; - children = ( - 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */, - 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */, - 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */, - 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */, - 80D955C1202154A300E3F281 /* CASViewController.swift */, - 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */, - 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */, - 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */, - 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */, - 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */, - 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */, - 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */, - ); - path = Auth; - sourceTree = ""; - }; - 4174CB111D2D99840086DAC8 /* Base */ = { - isa = PBXGroup; - children = ( - 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */, - 4174CB121D2D99960086DAC8 /* BaseViewController.swift */, - ); - path = Base; - sourceTree = ""; - }; - 4174CB181D2D9D940086DAC8 /* Managers */ = { - isa = PBXGroup; - children = ( - D32E28201DFD86AC00D6019C /* Launcher */, - 41552F641D30307D0081438D /* Model */, - 419D78811FBDB78D005FC7A2 /* Requests */, - 41F1702C1D425358007E6948 /* Socket */, - 411EDECE1E30F2D700BC7BE3 /* Uploader */, - 4101BF001F8D0A1700F67E89 /* AppManager.swift */, - 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */, - 419ECCA31F3CA21A005F224B /* DownloadManager.swift */, - 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */, - 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */, - D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */, - 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */, - 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */, - 335F4F02207A31D3005E14AF /* NotificationManager.swift */, - 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */, - 597ECBA31E3708B10041C5C5 /* PushManager.swift */, - 41499C8E1F2A116900790EA7 /* ServerManager.swift */, - B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */, - 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */, - 41B554C61FBF0F9D000510B7 /* WindowManager.swift */, - ); - path = Managers; - sourceTree = ""; - }; - 4174CB1D1D2DB3270086DAC8 /* Extensions */ = { - isa = PBXGroup; - children = ( - 8013F8631FD5E11100EE1A4E /* API */, - 414EFF901E54FE35004F001F /* Models */, - 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */, - 597ECBA11E3708A50041C5C5 /* DataExtension.swift */, - 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */, - 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */, - 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */, - D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */, - 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */, - 8076FDA8204853DE00114F28 /* RealmExecute.swift */, - 8076FDA32048533000114F28 /* String+Random.swift */, - 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */, - 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */, - 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */, - D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */, - 41494B911D63C6280004F369 /* UIImageExtension.swift */, - 419205481D52EDE6004EEC5F /* UILabelExtension.swift */, - 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */, - 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */, - 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */, - 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */, - 41BAE3E61D71B26C00C2445A /* URLExtension.swift */, - 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */, - 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - 417A70011D47916C00FF46EE /* Socket */ = { - isa = PBXGroup; - children = ( - 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */, - 41552F671D3035D80081438D /* SocketManagerSpec.swift */, - ); - path = Socket; - sourceTree = ""; - }; - 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */ = { - isa = PBXGroup; - children = ( - 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */, - 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */, - ); - path = WebViewEmbedded; - sourceTree = ""; - }; - 418C4DC41DC4C05000ABED4C /* Sections */ = { - isa = PBXGroup; - children = ( - 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */, - 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */, - 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */, - 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */, - ); - path = Sections; - sourceTree = ""; - }; - 418C743F1FA3626200499577 /* UIPickerView */ = { - isa = PBXGroup; - children = ( - 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */, - 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */, - ); - path = UIPickerView; - sourceTree = ""; - }; - 4192054A1D52F4E7004EEC5F /* Subscription */ = { - isa = PBXGroup; - children = ( - 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */, - 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */, - 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */, - 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */, - 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 4199A9861DABCC2E0035F820 /* External */ = { - isa = PBXGroup; - children = ( - 4199A9871DABCC570035F820 /* RCEmojiKit */, - ); - path = External; - sourceTree = ""; - }; - 4199A9871DABCC570035F820 /* RCEmojiKit */ = { - isa = PBXGroup; - children = ( - 33A5C9C0206A565800FE1C8F /* Emojis */, - 80A97EFD200628A300A2774C /* Views */, - 8069D26D1FFF876D00C75926 /* Emoji.swift */, - 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */, - 807FB53C2044B49800E21429 /* Emojione+Transform.swift */, - 4199A9881DABCC570035F820 /* Emojione.swift */, - 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */, - 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */, - 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */, - 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */, - 33A5C9BD206A561400FE1C8F /* emojiNames.json */, - ); - path = RCEmojiKit; - sourceTree = ""; - }; - 419D78811FBDB78D005FC7A2 /* Requests */ = { - isa = PBXGroup; - children = ( - 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */, - ); - path = Requests; - sourceTree = ""; - }; - 419D78851FBDCF5A005FC7A2 /* Requests */ = { - isa = PBXGroup; - children = ( - 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */, - ); - path = Requests; - sourceTree = ""; - }; - 41A79C0D1D2F084F00A1968E /* Models */ = { - isa = PBXGroup; - children = ( - 8076FDAC2048566100114F28 /* Auth */, - 41BD37D71E290D7400CBC4C2 /* Base */, - 7798B4131F852AE30074B2F4 /* CustomFields */, - 41BD37DF1E290F1500CBC4C2 /* Handler */, - 41BD37DE1E290F1000CBC4C2 /* Mapping */, - 8076FDCF2048644300114F28 /* Message */, - 8076FDC120485A0B00114F28 /* Subscription */, - 8076FDD4204864D400114F28 /* User */, - 41900C261D9FE35400308EF4 /* Attachment.swift */, - 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */, - 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */, - 8013F8661FD6B4F400EE1A4E /* Command.swift */, - 805DEC361FFC08870033151B /* CustomEmoji.swift */, - 8073719F1F96937100D53ADF /* LoginService.swift */, - 806401301FB09DE800990572 /* Permission.swift */, - 99C577ED207E4F1500CE9B4D /* File.swift */, - ); - path = Models; - sourceTree = ""; - }; - 41A91AED1E51C4E5005C94B1 /* Subscriptions */ = { - isa = PBXGroup; - children = ( - 9987B5972093E523007D277C /* FileTableViewCell.swift */, - 9987B5982093E524007D277C /* FileTableViewCell.xib */, - 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */, - 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */, - 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */, - A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */, - ); - path = Subscriptions; - sourceTree = ""; - }; - 41ADDD471E9DBAE90007A458 /* Loader */ = { - isa = PBXGroup; - children = ( - 41ADDD481E9DBB100007A458 /* LoaderView.swift */, - ); - path = Loader; - sourceTree = ""; - }; - 41B96363207E48690068F1A6 /* Validators */ = { - isa = PBXGroup; - children = ( - 41B96361207E48260068F1A6 /* MessageTextValidator.swift */, - ); - path = Validators; - sourceTree = ""; - }; - 41BD37D71E290D7400CBC4C2 /* Base */ = { - isa = PBXGroup; - children = ( - 4112DC551FFFB9B1005995E1 /* BaseModel.swift */, - 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */, - 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */, - ); - path = Base; - sourceTree = ""; - }; - 41BD37DE1E290F1000CBC4C2 /* Mapping */ = { - isa = PBXGroup; - children = ( - 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */, - 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */, - D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */, - 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */, - 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */, - D10E9C211F643616007F1796 /* MentionModelMapping.swift */, - 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */, - 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */, - 806401321FB09EC400990572 /* PermissionModelMapping.swift */, - 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */, - 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */, - 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */, - ); - path = Mapping; - sourceTree = ""; - }; - 41BD37DF1E290F1500CBC4C2 /* Handler */ = { - isa = PBXGroup; - children = ( - 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */, - 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */, - 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */, - ); - path = Handler; - sourceTree = ""; - }; - 41C275DD1D847FEE003C88CF /* Avatar */ = { - isa = PBXGroup; - children = ( - 41C275DE1D848005003C88CF /* AvatarView.swift */, - 41C275E01D84815C003C88CF /* AvatarView.xib */, - ); - path = Avatar; - sourceTree = ""; - }; - 41D701D41E67103C00FED2EE /* Helpers */ = { - isa = PBXGroup; - children = ( - 41B96363207E48690068F1A6 /* Validators */, - 80307E3A1FD75BD3006AD9EF /* VoiceOver */, - 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */, - 802A4E23204D730F0072CD23 /* AppGroup.swift */, - 35BCD300201A57EA00B4BE5A /* Ask.swift */, - 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */, - 800F38EC2019492D0005CB78 /* DeepLink.swift */, - 80DC9A6B206BA95600032BE0 /* Localized.swift */, - 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */, - 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */, - 413996161F3B44500075F96E /* UploadHelper.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - 41DC7A201D386B2C00896FC0 /* Extensions */ = { - isa = PBXGroup; - children = ( - 80E99F2A1FD8B4AC00B70B59 /* API */, - 80E99F2D1FD8B4E200B70B59 /* Models */, - 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */, - 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */, - D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */, - 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */, - 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */, - 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - 41DF76D61D2C50710028DBF8 = { - isa = PBXGroup; - children = ( - 41DF76E11D2C50710028DBF8 /* Rocket.Chat */, - 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */, - 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */, - 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */, - 106DAA428B5BF7289FB70C65 /* Frameworks */, - EE693BBD0CC2727847214E2D /* Pods */, - 41DF76E01D2C50710028DBF8 /* Products */, - ); - sourceTree = ""; - }; - 41DF76E01D2C50710028DBF8 /* Products */ = { - isa = PBXGroup; - children = ( - 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */, - 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */, - 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */, - 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */, - ); - name = Products; - sourceTree = ""; - }; - 41DF76E11D2C50710028DBF8 /* Rocket.Chat */ = { - isa = PBXGroup; - children = ( - 330888B2209901C800D44D4E /* Theme */, - D1D535EA1F7081E6006625D2 /* API */, - 4174CB0A1D2D990F0086DAC8 /* Controllers */, - 4174CB1D1D2DB3270086DAC8 /* Extensions */, - 4199A9861DABCC2E0035F820 /* External */, - 41D701D41E67103C00FED2EE /* Helpers */, - 4174CB181D2D9D940086DAC8 /* Managers */, - 41A79C0D1D2F084F00A1968E /* Models */, - 0B3A9760202C4DE10019CA92 /* Resources */, - 4174CB0B1D2D99170086DAC8 /* Storyboards */, - 4161332F1D46CA2800E09DA2 /* Views */, - 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */, - 41DF76EE1D2C50720028DBF8 /* Info.plist */, - 41833F4D1DEF16B600E54655 /* Keys.plist */, - 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, - 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */, - ); - path = Rocket.Chat; - sourceTree = ""; - }; - 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */ = { - isa = PBXGroup; - children = ( - 33419D77209916EE00D1682A /* Theme */, - D18675E71F70A55D00406FB4 /* API */, - D1DA25261F695AC700DB6ABB /* Controllers */, - 41DC7A201D386B2C00896FC0 /* Extensions */, - 80A97EFE2006291E00A2774C /* External */, - 416296F71F41B41100BCCEDD /* Helpers */, - 41552F691D3035DB0081438D /* Managers */, - 416133361D46DB0900E09DA2 /* Models */, - 925FF74F1E8EFC9200982043 /* Preferences */, - 4171ABA31E7C0556009FC3F0 /* Views */, - 41DF76F91D2C50720028DBF8 /* Info.plist */, - 803782B61FB4751D00DED049 /* RealmTestCase.swift */, - ); - path = Rocket.ChatTests; - sourceTree = ""; - }; - 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */ = { - isa = PBXGroup; - children = ( - 41DF77041D2C50720028DBF8 /* Info.plist */, - 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */, - ); - path = Rocket.ChatUITests; - sourceTree = ""; - }; - 41E2FA021D414ECC00238DFD /* Chat */ = { - isa = PBXGroup; - children = ( - 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */, - 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */, - 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */, - 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */, - 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */, - 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */, - 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */, - 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */, - 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */, - 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */, - 41E2FA061D41513C00238DFD /* ChatViewController.swift */, - 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */, - 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */, - 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */, - 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */, - 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */, - ); - path = Chat; - sourceTree = ""; - }; - 41E2FA031D414ED400238DFD /* Subscriptions */ = { - isa = PBXGroup; - children = ( - 9987B5952093E4BA007D277C /* FilesListViewController.swift */, - 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */, - 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */, - 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */, - 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */, - 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */, - ); - path = Subscriptions; - sourceTree = ""; - }; - 41F167E51DAC450200775CCA /* Chat */ = { - isa = PBXGroup; - children = ( - 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */, - 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */, - 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */, - 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */, - 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */, - 3370D8B920926E5700EEA225 /* ChatView.swift */, - 339B6929205042D300F97392 /* KeyboardFrameView.swift */, - 1435BFA21F9B601600FB2768 /* RCTextView.swift */, - 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */, - 80CFB5711F8D697100FC9715 /* ReplyView.xib */, - ); - path = Chat; - sourceTree = ""; - }; - 41F1702C1D425358007E6948 /* Socket */ = { - isa = PBXGroup; - children = ( - 414A1FF41D4631F600093E10 /* Response */, - 414A1FF91D46395400093E10 /* SocketManager.swift */, - ); - path = Socket; - sourceTree = ""; - }; - 7758A7621F8FA34300FAA244 /* UIPickerView */ = { - isa = PBXGroup; - children = ( - 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */, - 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */, - ); - path = UIPickerView; - sourceTree = ""; - }; - 7798B4131F852AE30074B2F4 /* CustomFields */ = { - isa = PBXGroup; - children = ( - 7798B4181F852D670074B2F4 /* CustomField.swift */, - 7798B4141F852B720074B2F4 /* SelectField.swift */, - 77BA81501F87C4CB00F295F4 /* TextField.swift */, - ); - path = CustomFields; - sourceTree = ""; - }; - 77C261281F97453600724A1F /* CustomFields */ = { - isa = PBXGroup; - children = ( - 77C261291F97453600724A1F /* CustomFieldsSpec.swift */, - 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */, - 77C2612B1F97453600724A1F /* TextFieldSpec.swift */, - ); - path = CustomFields; - sourceTree = ""; - }; - 80054CFA1FDAFD3A00F5ECF9 /* General */ = { - isa = PBXGroup; - children = ( - D1D535F01F70864C006625D2 /* InfoRequest.swift */, - 807C7C11207522EF006B600E /* LoginServicesRequest.swift */, - 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */, - 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */, - 807C7C0720751EDB006B600E /* SpotlightRequest.swift */, - ); - path = General; - sourceTree = ""; - }; - 800FCD431F728E6A00D9A692 /* Info */ = { - isa = PBXGroup; - children = ( - 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */, - 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */, - 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */, - 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */, - 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */, - 800FCD491F728E6A00D9A692 /* MemberCell.swift */, - 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */, - ); - path = Info; - sourceTree = ""; - }; - 8013F8631FD5E11100EE1A4E /* API */ = { - isa = PBXGroup; - children = ( - 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */, - ); - path = API; - sourceTree = ""; - }; - 8013F86E1FD6B59D00EE1A4E /* Clients */ = { - isa = PBXGroup; - children = ( - 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */, - 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */, - 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */, - 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */, - 807C7C0520751ED1006B600E /* SpotlightClient.swift */, - 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */, - ); - path = Clients; - sourceTree = ""; - }; - 8013F8741FD6B5D100EE1A4E /* Middlewares */ = { - isa = PBXGroup; - children = ( - 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */, - ); - path = Middlewares; - sourceTree = ""; - }; - 8013F8771FD6B61400EE1A4E /* Middlewares */ = { - isa = PBXGroup; - children = ( - 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */, - ); - path = Middlewares; - sourceTree = ""; - }; - 8013F87E1FD6B66900EE1A4E /* Clients */ = { - isa = PBXGroup; - children = ( - 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */, - 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */, - 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */, - 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */, - ); - path = Clients; - sourceTree = ""; - }; - 8013F8831FD6B74800EE1A4E /* Command */ = { - isa = PBXGroup; - children = ( - 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */, - 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */, - ); - path = Command; - sourceTree = ""; - }; - 8013F88A1FD6B79900EE1A4E /* Command */ = { - isa = PBXGroup; - children = ( - 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */, - ); - path = Command; - sourceTree = ""; - }; - 8020CCF31FEAD8AA003424F4 /* EmojiPicker */ = { - isa = PBXGroup; - children = ( - 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */, - 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */, - 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */, - 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */, - ); - path = EmojiPicker; - sourceTree = ""; - }; - 80213C0F1FE063B200809E14 /* HTTP */ = { - isa = PBXGroup; - children = ( - 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */, - ); - path = HTTP; - sourceTree = ""; - }; - 80235D1C1F740AAC00A56CA5 /* Subscription */ = { - isa = PBXGroup; - children = ( - 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */, - 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */, - 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */, - 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */, - 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */, - 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 80235D201F7442C100A56CA5 /* Subscription */ = { - isa = PBXGroup; - children = ( - 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */, - 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */, - 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */, - 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */, - 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 802498EC1F7A82CD005477EC /* Authentication */ = { - isa = PBXGroup; - children = ( - D18675EB1F716A0D00406FB4 /* LoginRequest.swift */, - 802498ED1F7A8380005477EC /* MeRequest.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 802498EF1F7A9B92005477EC /* Authentication */ = { - isa = PBXGroup; - children = ( - D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */, - 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 80307E3A1FD75BD3006AD9EF /* VoiceOver */ = { - isa = PBXGroup; - children = ( - 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */, - 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */, - ); - path = VoiceOver; - sourceTree = ""; - }; - 806C2ACE206BBAF200EE5F67 /* External */ = { - isa = PBXGroup; - children = ( - 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */, - ); - path = External; - sourceTree = ""; - }; - 806C59A01FBB0BA700C32D0A /* Message */ = { - isa = PBXGroup; - children = ( - 806728FE20079734009FE94D /* DeleteMessageRequest.swift */, - 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */, - 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */, - 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */, - 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */, - 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */, - 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */, - 3370D8C12095995800EEA225 /* StarMessageRequest.swift */, - ); - path = Message; - sourceTree = ""; - }; - 806C59A31FBB2F3700C32D0A /* Message */ = { - isa = PBXGroup; - children = ( - 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */, - 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */, - 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */, - 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */, - 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */, - 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */, - ); - path = Message; - sourceTree = ""; - }; - 8076FDAC2048566100114F28 /* Auth */ = { - isa = PBXGroup; - children = ( - 41A79C121D2F09F200A1968E /* Auth.swift */, - 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */, - 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */, - 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */, - 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */, - 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */, - 8076FDB42048571200114F28 /* AuthUser.swift */, - ); - path = Auth; - sourceTree = ""; - }; - 8076FDB72048580A00114F28 /* AuthManager */ = { - isa = PBXGroup; - children = ( - 41552F651D30308C0081438D /* AuthManager.swift */, - 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */, - 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */, - 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */, - ); - path = AuthManager; - sourceTree = ""; - }; - 8076FDC120485A0B00114F28 /* Subscription */ = { - isa = PBXGroup; - children = ( - 41DAE93D1D318F350098E068 /* Subscription.swift */, - 8076FDC62048632300114F28 /* SubscriptionQueries.swift */, - 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */, - 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 8076FDCF2048644300114F28 /* Message */ = { - isa = PBXGroup; - children = ( - D10E9C191F643457007F1796 /* Channel.swift */, - 4159720B1D3DB854002258F4 /* Email.swift */, - 4159720D1D3DB882002258F4 /* Mention.swift */, - 41DC7A1A1D38454500896FC0 /* Message.swift */, - 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */, - 8076FDD02048646500114F28 /* MessageReply.swift */, - 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */, - ); - path = Message; - sourceTree = ""; - }; - 8076FDD4204864D400114F28 /* User */ = { - isa = PBXGroup; - children = ( - 41A79C0E1D2F085F00A1968E /* User.swift */, - 8076FDD5204864E700114F28 /* UserQueries.swift */, - 8076FDD72048654F00114F28 /* UserUtils.swift */, - ); - path = User; - sourceTree = ""; - }; - 8076FDE02048A69200114F28 /* Compose */ = { - isa = PBXGroup; - children = ( - 80D563702058A8A7008896D6 /* Cells */, - 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */, - 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */, - 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */, - 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */, - 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */, - ); - path = Compose; - sourceTree = ""; - }; - 8076FDEB2049A5CB00114F28 /* Base */ = { - isa = PBXGroup; - children = ( - 80D0CE6E20509C100056B17F /* SEAvatarView.swift */, - 80D0CE7020509C230056B17F /* SEAvatarView.xib */, - 80D0CE61205023710056B17F /* SECell.swift */, - 8076FDEC2049A5F600114F28 /* SECellModel.swift */, - 802A4E102049C7340072CD23 /* SENavigationController.swift */, - 8076FDD920489F5900114F28 /* SEViewController.swift */, - 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */, - ); - path = Base; - sourceTree = ""; - }; - 807C7C0A20751F06006B600E /* General */ = { - isa = PBXGroup; - children = ( - D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */, - 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */, - 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */, - ); - path = General; - sourceTree = ""; - }; - 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { - isa = PBXGroup; - children = ( - 8076FDEB2049A5CB00114F28 /* Base */, - 8076FDE02048A69200114F28 /* Compose */, - 806C2ACE206BBAF200EE5F67 /* External */, - 80D5637320593245008896D6 /* Helpers */, - 807FB56C20472B2700E21429 /* Resources */, - 807FB57E2048376900E21429 /* Rooms */, - 807FB5802048378500E21429 /* Servers */, - 80977AC0204F374100C41435 /* State */, - 807FB55F2046E7DD00E21429 /* Info.plist */, - 807FB55C2046E7DD00E21429 /* Main.storyboard */, - 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */, - ); - path = Rocket.Chat.ShareExtension; - sourceTree = ""; - }; - 807FB56C20472B2700E21429 /* Resources */ = { - isa = PBXGroup; - children = ( - 80D5637120592D32008896D6 /* Assets.xcassets */, - 807FB57120472B6A00E21429 /* Localizable.strings */, - ); - path = Resources; - sourceTree = ""; - }; - 807FB57E2048376900E21429 /* Rooms */ = { - isa = PBXGroup; - children = ( - 80D0CE6520503C860056B17F /* SERoomCell.swift */, - 80D0CE6720503C970056B17F /* SERoomCell.xib */, - 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */, - 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */, - 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */, - ); - path = Rooms; - sourceTree = ""; - }; - 807FB5802048378500E21429 /* Servers */ = { - isa = PBXGroup; - children = ( - 80D0CE5F205016B40056B17F /* SEServerCell.swift */, - 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */, - 80D0CE63205034280056B17F /* SEServerCellModel.swift */, - 807FB568204729E500E21429 /* SEServersViewController.swift */, - 807FB581204837AF00E21429 /* SEServersViewModel.swift */, - ); - path = Servers; - sourceTree = ""; - }; - 80977AB7204EFBBB00C41435 /* Navigation */ = { - isa = PBXGroup; - children = ( - 80977AB8204EFBCC00C41435 /* SENavigation.swift */, - 800640F62049BA25006D990F /* SEScene.swift */, - 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */, - ); - path = Navigation; - sourceTree = ""; - }; - 80977AC0204F374100C41435 /* State */ = { - isa = PBXGroup; - children = ( - 80FA907B2057F43F0069038F /* ActionCreators */, - 80977AB7204EFBBB00C41435 /* Navigation */, - 80FA9064205313D10069038F /* Resources */, - 80977ABE204F36F200C41435 /* SESearchState.swift */, - 80977AC1204F37C200C41435 /* SEState.swift */, - 8076FD9920484A6000114F28 /* SEStore.swift */, - ); - path = State; - sourceTree = ""; - }; - 809B530C1FE2EF7C00833DD2 /* Reaction */ = { - isa = PBXGroup; - children = ( - 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */, - 809B53131FE3294400833DD2 /* ReactionListView.xib */, - 809B530F1FE2F17D00833DD2 /* ReactionView.swift */, - 809B53111FE2F2F900833DD2 /* ReactionView.xib */, - 8041C0412028C7EF007E21FA /* ReactorListView.swift */, - 8041C0432028C828007E21FA /* ReactorListView.xib */, - 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */, - ); - path = Reaction; - sourceTree = ""; - }; - 80A97EFD200628A300A2774C /* Views */ = { - isa = PBXGroup; - children = ( - 8020CCF31FEAD8AA003424F4 /* EmojiPicker */, - 809B530C1FE2EF7C00833DD2 /* Reaction */, - 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */, - 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */, - 806465ED1FED1AFE001F27DB /* EmojiView.swift */, - 806465EB1FED19B9001F27DB /* EmojiView.xib */, - ); - path = Views; - sourceTree = ""; - }; - 80A97EFE2006291E00A2774C /* External */ = { - isa = PBXGroup; - children = ( - 80A97EFF2006292500A2774C /* RCEmojiKit */, - ); - path = External; - sourceTree = ""; - }; - 80A97EFF2006292500A2774C /* RCEmojiKit */ = { - isa = PBXGroup; - children = ( - 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */, - 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */, - ); - path = RCEmojiKit; - sourceTree = ""; - }; - 80D41DFB2092152A00034D1F /* ActionSheets */ = { - isa = PBXGroup; - children = ( - 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */, - ); - path = ActionSheets; - sourceTree = ""; - }; - 80D41E0320924A6500034D1F /* Auth */ = { - isa = PBXGroup; - children = ( - 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */, - 416133391D46E0A200E09DA2 /* AuthSpec.swift */, - ); - path = Auth; - sourceTree = ""; - }; - 80D563702058A8A7008896D6 /* Cells */ = { - isa = PBXGroup; - children = ( - 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */, - 80FA906920569F890069038F /* SEComposeFileCell.swift */, - 80FA906B20569FA10069038F /* SEComposeFileCell.xib */, - 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */, - 80FA90712056C1190069038F /* SEComposeTextCell.swift */, - 80FA90732056C1350069038F /* SEComposeTextCell.xib */, - 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */, - 80FE8DEF206587510099170E /* SEFileDetailView.swift */, - 80FE8DED206584EA0099170E /* SEFileDetailView.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 80D5637320593245008896D6 /* Helpers */ = { - isa = PBXGroup; - children = ( - 80D563742059325A008896D6 /* MimeType.swift */, - 8029B2F12059B6F60067157B /* VideoInfo.swift */, - 80DC9A6F206BAC8B00032BE0 /* mimetype.json */, - ); - path = Helpers; - sourceTree = ""; - }; - 80E99F2A1FD8B4AC00B70B59 /* API */ = { - isa = PBXGroup; - children = ( - 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */, - ); - path = API; - sourceTree = ""; - }; - 80E99F2D1FD8B4E200B70B59 /* Models */ = { - isa = PBXGroup; - children = ( - 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */, - 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */, - ); - path = Models; - sourceTree = ""; - }; - 80FA9064205313D10069038F /* Resources */ = { - isa = PBXGroup; - children = ( - 80FA9065205313E20069038F /* SEContent.swift */, - 80FA9067205314040069038F /* SEServer.swift */, - ); - path = Resources; - sourceTree = ""; - }; - 80FA907B2057F43F0069038F /* ActionCreators */ = { - isa = PBXGroup; - children = ( - 80D5637620593533008896D6 /* ParseItemProviders.swift */, - 80977AB5204EEF1E00C41435 /* SelectServer.swift */, - 80FA907C2057F4650069038F /* SubmitContent.swift */, - ); - path = ActionCreators; - sourceTree = ""; - }; - 897083CC1F8CF08100233561 /* Form */ = { - isa = PBXGroup; - children = ( - 897083CD1F8CF08100233561 /* Cells */, - 897083D21F8CF08100233561 /* FormTableViewCell.swift */, - ); - path = Form; - sourceTree = ""; - }; - 897083CD1F8CF08100233561 /* Cells */ = { - isa = PBXGroup; - children = ( - 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */, - 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */, - 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */, - 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */, - 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */, - 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 925FF74F1E8EFC9200982043 /* Preferences */ = { - isa = PBXGroup; - children = ( - 140A95DC202F1E4D003FD564 /* AppIcon */, - 0BBCC2C0204546BB001E3B6D /* Language */, - 99F41BCC20658AD900B240FC /* Profile */, - 994DA2B12065480300083FB8 /* Web Browser */, - 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */, - ); - path = Preferences; - sourceTree = ""; - }; - 99282260204DE0AE005D2067 /* Profile */ = { - isa = PBXGroup; - children = ( - 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */, - 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */, - 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */, - 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */, - ); - path = Profile; - sourceTree = ""; - }; - 994DA2B12065480300083FB8 /* Web Browser */ = { - isa = PBXGroup; - children = ( - 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */, - ); - path = "Web Browser"; - sourceTree = ""; - }; - 9960C82E2063F091004A034C /* Web Browser */ = { - isa = PBXGroup; - children = ( - 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */, - 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */, - ); - path = "Web Browser"; - sourceTree = ""; - }; - 9977302520725B3A009AF465 /* Emoji */ = { - isa = PBXGroup; - children = ( - 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */, - ); - path = Emoji; - sourceTree = ""; - }; - 9977302820727DA0009AF465 /* Emoji */ = { - isa = PBXGroup; - children = ( - 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */, - ); - path = Emoji; - sourceTree = ""; - }; - 998165C8204EBB5E0059D346 /* User */ = { - isa = PBXGroup; - children = ( - 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */, - 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */, - 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */, - ); - path = User; - sourceTree = ""; - }; - 99D888F92046239100E51306 /* User */ = { - isa = PBXGroup; - children = ( - 99D888FA204623A900E51306 /* UpdateUserRequest.swift */, - 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */, - 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */, - ); - path = User; - sourceTree = ""; - }; - 99F41BCC20658AD900B240FC /* Profile */ = { - isa = PBXGroup; - children = ( - 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */, - 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */, - ); - path = Profile; - sourceTree = ""; - }; - D18675E71F70A55D00406FB4 /* API */ = { - isa = PBXGroup; - children = ( - 8013F87E1FD6B66900EE1A4E /* Clients */, - 8013F8771FD6B61400EE1A4E /* Middlewares */, - D18675E81F70A56800406FB4 /* Requests */, - 80A63C561F71D2E400FE5AC4 /* APISpec.swift */, - 8073719B1F963FA400D53ADF /* APITestCase.swift */, - 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */, - 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */, - ); - path = API; - sourceTree = ""; - }; - D18675E81F70A56800406FB4 /* Requests */ = { - isa = PBXGroup; - children = ( - 802498EF1F7A9B92005477EC /* Authentication */, - 8013F88A1FD6B79900EE1A4E /* Command */, - 9977302820727DA0009AF465 /* Emoji */, - 807C7C0A20751F06006B600E /* General */, - 806C59A31FBB2F3700C32D0A /* Message */, - 80235D201F7442C100A56CA5 /* Subscription */, - 998165C8204EBB5E0059D346 /* User */, - ); - path = Requests; - sourceTree = ""; - }; - D1D535EA1F7081E6006625D2 /* API */ = { - isa = PBXGroup; - children = ( - 8013F86E1FD6B59D00EE1A4E /* Clients */, - 80213C0F1FE063B200809E14 /* HTTP */, - 8013F8741FD6B5D100EE1A4E /* Middlewares */, - D1D535EF1F70863C006625D2 /* Requests */, - D1D535EB1F7081FA006625D2 /* API.swift */, - 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */, - 8013F8691FD6B59900EE1A4E /* APIError.swift */, - D1D535ED1F708628006625D2 /* APIRequest.swift */, - 8067DAA5206D1883005E3369 /* APIResource.swift */, - D15C83851F70991F001AB155 /* APIResponse.swift */, - 8013F8681FD6B59900EE1A4E /* Version.swift */, - ); - path = API; - sourceTree = ""; - }; - D1D535EF1F70863C006625D2 /* Requests */ = { - isa = PBXGroup; - children = ( - 802498EC1F7A82CD005477EC /* Authentication */, - 8013F8831FD6B74800EE1A4E /* Command */, - 9977302520725B3A009AF465 /* Emoji */, - 80054CFA1FDAFD3A00F5ECF9 /* General */, - 806C59A01FBB0BA700C32D0A /* Message */, - 80235D1C1F740AAC00A56CA5 /* Subscription */, - 99D888F92046239100E51306 /* User */, - ); - path = Requests; - sourceTree = ""; - }; - D1DA25261F695AC700DB6ABB /* Controllers */ = { - isa = PBXGroup; - children = ( - D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */, - 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */, - 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */, - 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */, - 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */, - ); - path = Controllers; - sourceTree = ""; - }; - D32E28201DFD86AC00D6019C /* Launcher */ = { - isa = PBXGroup; - children = ( - D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */, - D32E28221DFD86C300D6019C /* LauncherProtocol.swift */, - 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */, - 411119B51F680DB00019854B /* NetworkCoordinator.swift */, - D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */, - 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */, - ); - path = Launcher; - sourceTree = ""; - }; - D3CFAFBE1E907FC100BADC0A /* Chat */ = { - isa = PBXGroup; - children = ( - 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */, - 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */, - ); - path = Chat; - sourceTree = ""; - }; - EE693BBD0CC2727847214E2D /* Pods */ = { - isa = PBXGroup; - children = ( - BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */, - 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */, - 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */, - 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */, - AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */, - FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */, - 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */, - 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */, - F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; + 0B3A9760202C4DE10019CA92 /* Resources */ = { + isa = PBXGroup; + children = ( + 14F8A210202E5B2A00175FDC /* AlternateIcons */, + 41DF76E91D2C50710028DBF8 /* Assets.xcassets */, + 41EB22381E5F056600AA3AE7 /* Localizable.strings */, + 80307E431FD75DC0006AD9EF /* VoiceOver.strings */, + ); + path = Resources; + sourceTree = ""; + }; + 0B3A9767202C75A60019CA92 /* ChangeAppIcon */ = { + isa = PBXGroup; + children = ( + 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */, + 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */, + 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */, + ); + path = ChangeAppIcon; + sourceTree = ""; + }; + 0B9AB2BF20444EB300ABEA05 /* Language */ = { + isa = PBXGroup; + children = ( + 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */, + 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */, + 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */, + 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */, + ); + path = Language; + sourceTree = ""; + }; + 0BBCC2C0204546BB001E3B6D /* Language */ = { + isa = PBXGroup; + children = ( + 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */, + ); + path = Language; + sourceTree = ""; + }; + 106DAA428B5BF7289FB70C65 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */, + 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */, + 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 140A95DC202F1E4D003FD564 /* AppIcon */ = { + isa = PBXGroup; + children = ( + 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */, + ); + path = AppIcon; + sourceTree = ""; + }; + 140A95E2202F5321003FD564 /* Drawing */ = { + isa = PBXGroup; + children = ( + 14A6A82F20421DED008C210D /* Color Picker */, + 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */, + 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */, + 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */, + 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */, + 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */, + 140A95E3202F536D003FD564 /* DrawingViewController.swift */, + 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */, + ); + path = Drawing; + sourceTree = ""; + }; + 140C84EA1FC9DB9600032A59 /* CreateChannel */ = { + isa = PBXGroup; + children = ( + 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */, + ); + path = CreateChannel; + sourceTree = ""; + }; + 14A6A82F20421DED008C210D /* Color Picker */ = { + isa = PBXGroup; + children = ( + 14A6A83020421DF8008C210D /* ColorPickerView.swift */, + ); + path = "Color Picker"; + sourceTree = ""; + }; + 14F8A210202E5B2A00175FDC /* AlternateIcons */ = { + isa = PBXGroup; + children = ( + 14F8A211202E5B3200175FDC /* Black */, + 14F8A276202E654900175FDC /* Blue */, + 14F8A247202E649F00175FDC /* BnW */, + 14F8A262202E653600175FDC /* Grey */, + 14F8A212202E5B3B00175FDC /* Red */, + 14F8A275202E654400175FDC /* White */, + ); + path = AlternateIcons; + sourceTree = ""; + }; + 14F8A211202E5B3200175FDC /* Black */ = { + isa = PBXGroup; + children = ( + 14F8A219202E5CBE00175FDC /* Black-29@2x.png */, + 14F8A213202E5CBD00175FDC /* Black-29@3x.png */, + 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */, + 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */, + 14F8A218202E5CBE00175FDC /* Black-60@2x.png */, + 14F8A217202E5CBE00175FDC /* Black-60@3x.png */, + 14F8A216202E5CBE00175FDC /* Black-76@2x.png */, + 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */, + 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */, + ); + path = Black; + sourceTree = ""; + }; + 14F8A212202E5B3B00175FDC /* Red */ = { + isa = PBXGroup; + children = ( + 14F8A232202E5D0400175FDC /* Red-29@2x.png */, + 14F8A230202E5D0400175FDC /* Red-29@3x.png */, + 14F8A236202E5D0500175FDC /* Red-40@2x.png */, + 14F8A235202E5D0500175FDC /* Red-40@3x.png */, + 14F8A234202E5D0400175FDC /* Red-60@2x.png */, + 14F8A22F202E5D0400175FDC /* Red-60@3x.png */, + 14F8A233202E5D0400175FDC /* Red-76@2x.png */, + 14F8A238202E5D0600175FDC /* Red-76@3x.png */, + 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */, + ); + path = Red; + sourceTree = ""; + }; + 14F8A247202E649F00175FDC /* BnW */ = { + isa = PBXGroup; + children = ( + 14F8A24D202E64B100175FDC /* BnW-29@2x.png */, + 14F8A250202E64B100175FDC /* BnW-29@3x.png */, + 14F8A252202E64B100175FDC /* BnW-40@2x.png */, + 14F8A24C202E64B100175FDC /* BnW-40@3x.png */, + 14F8A24E202E64B100175FDC /* BnW-60@2x.png */, + 14F8A24F202E64B100175FDC /* BnW-60@3x.png */, + 14F8A251202E64B100175FDC /* BnW-76@2x.png */, + 14F8A254202E64B200175FDC /* BnW-76@3x.png */, + 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */, + ); + path = BnW; + sourceTree = ""; + }; + 14F8A262202E653600175FDC /* Grey */ = { + isa = PBXGroup; + children = ( + 14F8A264202E653D00175FDC /* Grey-29@2x.png */, + 14F8A269202E653E00175FDC /* Grey-29@3x.png */, + 14F8A263202E653D00175FDC /* Grey-40@2x.png */, + 14F8A268202E653E00175FDC /* Grey-40@3x.png */, + 14F8A26B202E653E00175FDC /* Grey-60@2x.png */, + 14F8A26A202E653E00175FDC /* Grey-60@3x.png */, + 14F8A267202E653D00175FDC /* Grey-76@2x.png */, + 14F8A265202E653D00175FDC /* Grey-76@3x.png */, + 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */, + ); + path = Grey; + sourceTree = ""; + }; + 14F8A275202E654400175FDC /* White */ = { + isa = PBXGroup; + children = ( + 14F8A27D202E658F00175FDC /* White-29@2x.png */, + 14F8A27C202E658F00175FDC /* White-29@3x.png */, + 14F8A27E202E658F00175FDC /* White-40@2x.png */, + 14F8A278202E658E00175FDC /* White-40@3x.png */, + 14F8A27B202E658F00175FDC /* White-60@2x.png */, + 14F8A27F202E658F00175FDC /* White-60@3x.png */, + 14F8A277202E658E00175FDC /* White-76@2x.png */, + 14F8A279202E658E00175FDC /* White-76@3x.png */, + 14F8A27A202E658F00175FDC /* White-83.5@2x.png */, + ); + path = White; + sourceTree = ""; + }; + 14F8A276202E654900175FDC /* Blue */ = { + isa = PBXGroup; + children = ( + 14F8A28F202E65C700175FDC /* Blue-29@2x.png */, + 14F8A289202E65C500175FDC /* Blue-29@3x.png */, + 14F8A28E202E65C600175FDC /* Blue-40@2x.png */, + 14F8A290202E65C700175FDC /* Blue-40@3x.png */, + 14F8A28A202E65C600175FDC /* Blue-60@2x.png */, + 14F8A28B202E65C600175FDC /* Blue-60@3x.png */, + 14F8A291202E65C700175FDC /* Blue-76@2x.png */, + 14F8A28C202E65C600175FDC /* Blue-76@3x.png */, + 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */, + ); + path = Blue; + sourceTree = ""; + }; + 330888B2209901C800D44D4E /* Theme */ = { + isa = PBXGroup; + children = ( + 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */, + 3353DBF7206787E500738D1C /* Theme.swift */, + 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */, + 330888B32099094400D44D4E /* ThemeableViews.swift */, + 3370D8BB2093570D00EEA225 /* ThemeManager.swift */, + ); + path = Theme; + sourceTree = ""; + }; + 3330329F2073905900A9514D /* SubscriptionManager */ = { + isa = PBXGroup; + children = ( + 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */, + 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */, + 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */, + 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */, + 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */, + ); + path = SubscriptionManager; + sourceTree = ""; + }; + 33419D77209916EE00D1682A /* Theme */ = { + isa = PBXGroup; + children = ( + 33419D782099170A00D1682A /* ThemeManagerSpec.swift */, + 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */, + ); + path = Theme; + sourceTree = ""; + }; + 3370D8D420977D4500EEA225 /* Theme */ = { + isa = PBXGroup; + children = ( + 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */, + 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */, + ); + path = Theme; + sourceTree = ""; + }; + 33A5C9C0206A565800FE1C8F /* Emojis */ = { + isa = PBXGroup; + children = ( + 33A5C9C8206A565800FE1C8F /* activity.json */, + 33A5C9C4206A565800FE1C8F /* flags.json */, + 33A5C9C7206A565800FE1C8F /* food.json */, + 33A5C9C9206A565800FE1C8F /* nature.json */, + 33A5C9C6206A565800FE1C8F /* objects.json */, + 33A5C9C5206A565800FE1C8F /* people.json */, + 33A5C9C3206A565800FE1C8F /* regional.json */, + 33A5C9C1206A565800FE1C8F /* symbols.json */, + 33A5C9C2206A565800FE1C8F /* travel.json */, + ); + path = Emojis; + sourceTree = ""; + }; + 33F73B292073BDD800F03F29 /* Notification */ = { + isa = PBXGroup; + children = ( + 33F73B2B2073BDF400F03F29 /* NotificationView.swift */, + 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */, + ); + path = Notification; + sourceTree = ""; + }; + 33F73B2E2073F1FC00F03F29 /* Notification */ = { + isa = PBXGroup; + children = ( + 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */, + 333207FE20766E4F00AD3290 /* NotificationViewController.xib */, + 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */, + ); + path = Notification; + sourceTree = ""; + }; + 4102E3AB1E53272C004BAA82 /* Preferences */ = { + isa = PBXGroup; + children = ( + 0B3A9767202C75A60019CA92 /* ChangeAppIcon */, + 0B9AB2BF20444EB300ABEA05 /* Language */, + 99282260204DE0AE005D2067 /* Profile */, + 3370D8D420977D4500EEA225 /* Theme */, + 9960C82E2063F091004A034C /* Web Browser */, + 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, + 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */, + 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */, + ); + path = Preferences; + sourceTree = ""; + }; + 411EDECE1E30F2D700BC7BE3 /* Uploader */ = { + isa = PBXGroup; + children = ( + 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */, + 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */, + ); + path = Uploader; + sourceTree = ""; + }; + 414A1FF41D4631F600093E10 /* Response */ = { + isa = PBXGroup; + children = ( + 414A1FF51D46320F00093E10 /* ResponseMessage.swift */, + 807371991F94E83600D53ADF /* SocketError.swift */, + 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */, + 414A1FFB1D46395900093E10 /* SocketResponse.swift */, + ); + path = Response; + sourceTree = ""; + }; + 414EFF901E54FE35004F001F /* Models */ = { + isa = PBXGroup; + children = ( + 414EFF911E54FE69004F001F /* AuthExtensions.swift */, + 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */, + 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */, + 41D7CA861E644E47000F38EA /* MessageExtensions.swift */, + D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */, + 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */, + ); + path = Models; + sourceTree = ""; + }; + 41534EE0208E43FF009C5A17 /* Launcher */ = { + isa = PBXGroup; + children = ( + 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */, + ); + path = Launcher; + sourceTree = ""; + }; + 4153E80320504BC800FBC26B /* Preferences */ = { + isa = PBXGroup; + children = ( + 4153E80420504BE700FBC26B /* ReusableViewText.swift */, + 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */, + 412EF3C52050507C001689A3 /* ReusableViewText.xib */, + ); + path = Preferences; + sourceTree = ""; + }; + 41552F641D30307D0081438D /* Model */ = { + isa = PBXGroup; + children = ( + 8076FDB72048580A00114F28 /* AuthManager */, + 3330329F2073905900A9514D /* SubscriptionManager */, + 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */, + 805DEC341FFC03380033151B /* CustomEmojiManager.swift */, + 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */, + 41DC7A1C1D38471700896FC0 /* MessageManager.swift */, + 806401341FB09F8A00990572 /* PermissionManager.swift */, + 4162E1521D651A8800AAAE49 /* UserManager.swift */, + ); + path = Model; + sourceTree = ""; + }; + 41552F691D3035DB0081438D /* Managers */ = { + isa = PBXGroup; + children = ( + 41534EE0208E43FF009C5A17 /* Launcher */, + 419D78851FBDCF5A005FC7A2 /* Requests */, + 417A70011D47916C00FF46EE /* Socket */, + 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */, + 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */, + 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */, + 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */, + 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */, + 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */, + 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */, + 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */, + 411119B71F6825C30019854B /* NetworkManagerSpec.swift */, + 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */, + 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */, + 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */, + 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */, + 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */, + B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */, + 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */, + ); + path = Managers; + sourceTree = ""; + }; + 4161332F1D46CA2800E09DA2 /* Views */ = { + isa = PBXGroup; + children = ( + 80D41DFB2092152A00034D1F /* ActionSheets */, + 41C275DD1D847FEE003C88CF /* Avatar */, + 416133301D46CA3100E09DA2 /* Cells */, + 41F167E51DAC450200775CCA /* Chat */, + 897083CC1F8CF08100233561 /* Form */, + 41ADDD471E9DBAE90007A458 /* Loader */, + 33F73B292073BDD800F03F29 /* Notification */, + 418C4DC41DC4C05000ABED4C /* Sections */, + 41A91AED1E51C4E5005C94B1 /* Subscriptions */, + 7758A7621F8FA34300FAA244 /* UIPickerView */, + ); + path = Views; + sourceTree = ""; + }; + 416133301D46CA3100E09DA2 /* Cells */ = { + isa = PBXGroup; + children = ( + 416133351D46CA7400E09DA2 /* Chat */, + 4153E80320504BC800FBC26B /* Preferences */, + 4192054A1D52F4E7004EEC5F /* Subscription */, + 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */, + 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 416133351D46CA7400E09DA2 /* Chat */ = { + isa = PBXGroup; + children = ( + 800FCD431F728E6A00D9A692 /* Info */, + 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */, + 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */, + 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */, + 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */, + 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */, + 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */, + 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */, + 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */, + 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */, + 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, + 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, + 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */, + 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */, + 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */, + 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, + 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, + 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */, + 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */, + 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, + 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, + D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, + 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, + 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, + 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */, + 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */, + 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, + 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, + ); + path = Chat; + sourceTree = ""; + }; + 416133361D46DB0900E09DA2 /* Models */ = { + isa = PBXGroup; + children = ( + 80D41E0320924A6500034D1F /* Auth */, + 77C261281F97453600724A1F /* CustomFields */, + 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */, + 77C261241F97445300724A1F /* AuthSettingsSpec.swift */, + 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */, + D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */, + 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */, + 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */, + 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */, + 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */, + 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */, + D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */, + 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */, + 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */, + 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */, + 808792371FB14B3300EFE77F /* PermissionSpec.swift */, + 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */, + 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */, + 4161333B1D46E32F00E09DA2 /* UserSpec.swift */, + ); + path = Models; + sourceTree = ""; + }; + 416296F71F41B41100BCCEDD /* Helpers */ = { + isa = PBXGroup; + children = ( + 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */, + 35BCD302201A9FB800B4BE5A /* AskSpec.swift */, + 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */, + 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */, + 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */, + ); + path = Helpers; + sourceTree = ""; + }; + 4171ABA31E7C0556009FC3F0 /* Views */ = { + isa = PBXGroup; + children = ( + D3CFAFBE1E907FC100BADC0A /* Chat */, + 140C84EA1FC9DB9600032A59 /* CreateChannel */, + 418C743F1FA3626200499577 /* UIPickerView */, + 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */, + 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */, + ); + path = Views; + sourceTree = ""; + }; + 4174CB0A1D2D990F0086DAC8 /* Controllers */ = { + isa = PBXGroup; + children = ( + 4174CB101D2D997E0086DAC8 /* Auth */, + 4174CB111D2D99840086DAC8 /* Base */, + 41E2FA021D414ECC00238DFD /* Chat */, + 140A95E2202F5321003FD564 /* Drawing */, + 33F73B2E2073F1FC00F03F29 /* Notification */, + 4102E3AB1E53272C004BAA82 /* Preferences */, + 41E2FA031D414ED400238DFD /* Subscriptions */, + 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */, + ); + path = Controllers; + sourceTree = ""; + }; + 4174CB0B1D2D99170086DAC8 /* Storyboards */ = { + isa = PBXGroup; + children = ( + 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */, + 41E2F9FE1D414DE800238DFD /* Chat.storyboard */, + 140A95E0202F526C003FD564 /* Drawing.storyboard */, + 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */, + 4102E3A91E532323004BAA82 /* Preferences.storyboard */, + 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */, + ); + path = Storyboards; + sourceTree = ""; + }; + 4174CB101D2D997E0086DAC8 /* Auth */ = { + isa = PBXGroup; + children = ( + 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */, + 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */, + 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */, + 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */, + 80D955C1202154A300E3F281 /* CASViewController.swift */, + 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */, + 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */, + 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */, + 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */, + 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */, + 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */, + 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */, + ); + path = Auth; + sourceTree = ""; + }; + 4174CB111D2D99840086DAC8 /* Base */ = { + isa = PBXGroup; + children = ( + 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */, + 4174CB121D2D99960086DAC8 /* BaseViewController.swift */, + ); + path = Base; + sourceTree = ""; + }; + 4174CB181D2D9D940086DAC8 /* Managers */ = { + isa = PBXGroup; + children = ( + D32E28201DFD86AC00D6019C /* Launcher */, + 41552F641D30307D0081438D /* Model */, + 419D78811FBDB78D005FC7A2 /* Requests */, + 41F1702C1D425358007E6948 /* Socket */, + 411EDECE1E30F2D700BC7BE3 /* Uploader */, + 4101BF001F8D0A1700F67E89 /* AppManager.swift */, + 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */, + 419ECCA31F3CA21A005F224B /* DownloadManager.swift */, + 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */, + 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */, + D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */, + 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */, + 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */, + 335F4F02207A31D3005E14AF /* NotificationManager.swift */, + 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */, + 597ECBA31E3708B10041C5C5 /* PushManager.swift */, + 41499C8E1F2A116900790EA7 /* ServerManager.swift */, + B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */, + 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */, + 41B554C61FBF0F9D000510B7 /* WindowManager.swift */, + ); + path = Managers; + sourceTree = ""; + }; + 4174CB1D1D2DB3270086DAC8 /* Extensions */ = { + isa = PBXGroup; + children = ( + 8013F8631FD5E11100EE1A4E /* API */, + 414EFF901E54FE35004F001F /* Models */, + 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */, + 597ECBA11E3708A50041C5C5 /* DataExtension.swift */, + 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */, + 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */, + 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */, + D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */, + 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */, + 8076FDA8204853DE00114F28 /* RealmExecute.swift */, + 8076FDA32048533000114F28 /* String+Random.swift */, + 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */, + 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */, + 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */, + D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */, + 41494B911D63C6280004F369 /* UIImageExtension.swift */, + 419205481D52EDE6004EEC5F /* UILabelExtension.swift */, + 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */, + 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */, + 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */, + 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */, + 41BAE3E61D71B26C00C2445A /* URLExtension.swift */, + 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */, + 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 417A70011D47916C00FF46EE /* Socket */ = { + isa = PBXGroup; + children = ( + 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */, + 41552F671D3035D80081438D /* SocketManagerSpec.swift */, + ); + path = Socket; + sourceTree = ""; + }; + 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */ = { + isa = PBXGroup; + children = ( + 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */, + 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */, + ); + path = WebViewEmbedded; + sourceTree = ""; + }; + 418C4DC41DC4C05000ABED4C /* Sections */ = { + isa = PBXGroup; + children = ( + 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */, + 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */, + 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */, + 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */, + ); + path = Sections; + sourceTree = ""; + }; + 418C743F1FA3626200499577 /* UIPickerView */ = { + isa = PBXGroup; + children = ( + 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */, + 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */, + ); + path = UIPickerView; + sourceTree = ""; + }; + 4192054A1D52F4E7004EEC5F /* Subscription */ = { + isa = PBXGroup; + children = ( + 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */, + 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */, + 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */, + 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */, + 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 4199A9861DABCC2E0035F820 /* External */ = { + isa = PBXGroup; + children = ( + 4199A9871DABCC570035F820 /* RCEmojiKit */, + ); + path = External; + sourceTree = ""; + }; + 4199A9871DABCC570035F820 /* RCEmojiKit */ = { + isa = PBXGroup; + children = ( + 33A5C9C0206A565800FE1C8F /* Emojis */, + 80A97EFD200628A300A2774C /* Views */, + 8069D26D1FFF876D00C75926 /* Emoji.swift */, + 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */, + 807FB53C2044B49800E21429 /* Emojione+Transform.swift */, + 4199A9881DABCC570035F820 /* Emojione.swift */, + 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */, + 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */, + 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */, + 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */, + 33A5C9BD206A561400FE1C8F /* emojiNames.json */, + ); + path = RCEmojiKit; + sourceTree = ""; + }; + 419D78811FBDB78D005FC7A2 /* Requests */ = { + isa = PBXGroup; + children = ( + 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */, + ); + path = Requests; + sourceTree = ""; + }; + 419D78851FBDCF5A005FC7A2 /* Requests */ = { + isa = PBXGroup; + children = ( + 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */, + ); + path = Requests; + sourceTree = ""; + }; + 41A79C0D1D2F084F00A1968E /* Models */ = { + isa = PBXGroup; + children = ( + 8076FDAC2048566100114F28 /* Auth */, + 41BD37D71E290D7400CBC4C2 /* Base */, + 7798B4131F852AE30074B2F4 /* CustomFields */, + 41BD37DF1E290F1500CBC4C2 /* Handler */, + 41BD37DE1E290F1000CBC4C2 /* Mapping */, + 8076FDCF2048644300114F28 /* Message */, + 8076FDC120485A0B00114F28 /* Subscription */, + 8076FDD4204864D400114F28 /* User */, + 41900C261D9FE35400308EF4 /* Attachment.swift */, + 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */, + 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */, + 8013F8661FD6B4F400EE1A4E /* Command.swift */, + 805DEC361FFC08870033151B /* CustomEmoji.swift */, + 8073719F1F96937100D53ADF /* LoginService.swift */, + 806401301FB09DE800990572 /* Permission.swift */, + 99C577ED207E4F1500CE9B4D /* File.swift */, + ); + path = Models; + sourceTree = ""; + }; + 41A91AED1E51C4E5005C94B1 /* Subscriptions */ = { + isa = PBXGroup; + children = ( + 9987B5972093E523007D277C /* FileTableViewCell.swift */, + 9987B5982093E524007D277C /* FileTableViewCell.xib */, + 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */, + 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */, + 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */, + A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */, + ); + path = Subscriptions; + sourceTree = ""; + }; + 41ADDD471E9DBAE90007A458 /* Loader */ = { + isa = PBXGroup; + children = ( + 41ADDD481E9DBB100007A458 /* LoaderView.swift */, + ); + path = Loader; + sourceTree = ""; + }; + 41B96363207E48690068F1A6 /* Validators */ = { + isa = PBXGroup; + children = ( + 41B96361207E48260068F1A6 /* MessageTextValidator.swift */, + ); + path = Validators; + sourceTree = ""; + }; + 41BD37D71E290D7400CBC4C2 /* Base */ = { + isa = PBXGroup; + children = ( + 4112DC551FFFB9B1005995E1 /* BaseModel.swift */, + 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */, + 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */, + ); + path = Base; + sourceTree = ""; + }; + 41BD37DE1E290F1000CBC4C2 /* Mapping */ = { + isa = PBXGroup; + children = ( + 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */, + 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */, + D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */, + 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */, + 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */, + D10E9C211F643616007F1796 /* MentionModelMapping.swift */, + 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */, + 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */, + 806401321FB09EC400990572 /* PermissionModelMapping.swift */, + 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */, + 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */, + 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */, + ); + path = Mapping; + sourceTree = ""; + }; + 41BD37DF1E290F1500CBC4C2 /* Handler */ = { + isa = PBXGroup; + children = ( + 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */, + 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */, + 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */, + ); + path = Handler; + sourceTree = ""; + }; + 41C275DD1D847FEE003C88CF /* Avatar */ = { + isa = PBXGroup; + children = ( + 41C275DE1D848005003C88CF /* AvatarView.swift */, + 41C275E01D84815C003C88CF /* AvatarView.xib */, + ); + path = Avatar; + sourceTree = ""; + }; + 41D701D41E67103C00FED2EE /* Helpers */ = { + isa = PBXGroup; + children = ( + 41B96363207E48690068F1A6 /* Validators */, + 80307E3A1FD75BD3006AD9EF /* VoiceOver */, + 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */, + 802A4E23204D730F0072CD23 /* AppGroup.swift */, + 35BCD300201A57EA00B4BE5A /* Ask.swift */, + 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */, + 800F38EC2019492D0005CB78 /* DeepLink.swift */, + 80DC9A6B206BA95600032BE0 /* Localized.swift */, + 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */, + 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */, + 413996161F3B44500075F96E /* UploadHelper.swift */, + ); + path = Helpers; + sourceTree = ""; + }; + 41DC7A201D386B2C00896FC0 /* Extensions */ = { + isa = PBXGroup; + children = ( + 80E99F2A1FD8B4AC00B70B59 /* API */, + 80E99F2D1FD8B4E200B70B59 /* Models */, + 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */, + 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */, + D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */, + 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */, + 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */, + 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 41DF76D61D2C50710028DBF8 = { + isa = PBXGroup; + children = ( + 41DF76E11D2C50710028DBF8 /* Rocket.Chat */, + 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */, + 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */, + 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */, + 106DAA428B5BF7289FB70C65 /* Frameworks */, + EE693BBD0CC2727847214E2D /* Pods */, + 41DF76E01D2C50710028DBF8 /* Products */, + ); + sourceTree = ""; + }; + 41DF76E01D2C50710028DBF8 /* Products */ = { + isa = PBXGroup; + children = ( + 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */, + 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */, + 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */, + 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */, + ); + name = Products; + sourceTree = ""; + }; + 41DF76E11D2C50710028DBF8 /* Rocket.Chat */ = { + isa = PBXGroup; + children = ( + 330888B2209901C800D44D4E /* Theme */, + D1D535EA1F7081E6006625D2 /* API */, + 4174CB0A1D2D990F0086DAC8 /* Controllers */, + 4174CB1D1D2DB3270086DAC8 /* Extensions */, + 4199A9861DABCC2E0035F820 /* External */, + 41D701D41E67103C00FED2EE /* Helpers */, + 4174CB181D2D9D940086DAC8 /* Managers */, + 41A79C0D1D2F084F00A1968E /* Models */, + 0B3A9760202C4DE10019CA92 /* Resources */, + 4174CB0B1D2D99170086DAC8 /* Storyboards */, + 4161332F1D46CA2800E09DA2 /* Views */, + 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */, + 41DF76EE1D2C50720028DBF8 /* Info.plist */, + 41833F4D1DEF16B600E54655 /* Keys.plist */, + 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, + 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */, + ); + path = Rocket.Chat; + sourceTree = ""; + }; + 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */ = { + isa = PBXGroup; + children = ( + 33419D77209916EE00D1682A /* Theme */, + D18675E71F70A55D00406FB4 /* API */, + D1DA25261F695AC700DB6ABB /* Controllers */, + 41DC7A201D386B2C00896FC0 /* Extensions */, + 80A97EFE2006291E00A2774C /* External */, + 416296F71F41B41100BCCEDD /* Helpers */, + 41552F691D3035DB0081438D /* Managers */, + 416133361D46DB0900E09DA2 /* Models */, + 925FF74F1E8EFC9200982043 /* Preferences */, + 4171ABA31E7C0556009FC3F0 /* Views */, + 41DF76F91D2C50720028DBF8 /* Info.plist */, + 803782B61FB4751D00DED049 /* RealmTestCase.swift */, + ); + path = Rocket.ChatTests; + sourceTree = ""; + }; + 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */ = { + isa = PBXGroup; + children = ( + 41DF77041D2C50720028DBF8 /* Info.plist */, + 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */, + ); + path = Rocket.ChatUITests; + sourceTree = ""; + }; + 41E2FA021D414ECC00238DFD /* Chat */ = { + isa = PBXGroup; + children = ( + 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */, + 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */, + 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */, + 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */, + 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */, + 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */, + 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */, + 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */, + 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */, + 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */, + 41E2FA061D41513C00238DFD /* ChatViewController.swift */, + 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */, + 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */, + 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */, + 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */, + 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */, + ); + path = Chat; + sourceTree = ""; + }; + 41E2FA031D414ED400238DFD /* Subscriptions */ = { + isa = PBXGroup; + children = ( + 9987B5952093E4BA007D277C /* FilesListViewController.swift */, + 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */, + 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */, + 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */, + 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */, + 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */, + ); + path = Subscriptions; + sourceTree = ""; + }; + 41F167E51DAC450200775CCA /* Chat */ = { + isa = PBXGroup; + children = ( + 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */, + 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */, + 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */, + 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */, + 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */, + 3370D8B920926E5700EEA225 /* ChatView.swift */, + 339B6929205042D300F97392 /* KeyboardFrameView.swift */, + 1435BFA21F9B601600FB2768 /* RCTextView.swift */, + 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */, + 80CFB5711F8D697100FC9715 /* ReplyView.xib */, + ); + path = Chat; + sourceTree = ""; + }; + 41F1702C1D425358007E6948 /* Socket */ = { + isa = PBXGroup; + children = ( + 414A1FF41D4631F600093E10 /* Response */, + 414A1FF91D46395400093E10 /* SocketManager.swift */, + ); + path = Socket; + sourceTree = ""; + }; + 7758A7621F8FA34300FAA244 /* UIPickerView */ = { + isa = PBXGroup; + children = ( + 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */, + 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */, + ); + path = UIPickerView; + sourceTree = ""; + }; + 7798B4131F852AE30074B2F4 /* CustomFields */ = { + isa = PBXGroup; + children = ( + 7798B4181F852D670074B2F4 /* CustomField.swift */, + 7798B4141F852B720074B2F4 /* SelectField.swift */, + 77BA81501F87C4CB00F295F4 /* TextField.swift */, + ); + path = CustomFields; + sourceTree = ""; + }; + 77C261281F97453600724A1F /* CustomFields */ = { + isa = PBXGroup; + children = ( + 77C261291F97453600724A1F /* CustomFieldsSpec.swift */, + 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */, + 77C2612B1F97453600724A1F /* TextFieldSpec.swift */, + ); + path = CustomFields; + sourceTree = ""; + }; + 80054CFA1FDAFD3A00F5ECF9 /* General */ = { + isa = PBXGroup; + children = ( + D1D535F01F70864C006625D2 /* InfoRequest.swift */, + 807C7C11207522EF006B600E /* LoginServicesRequest.swift */, + 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */, + 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */, + 807C7C0720751EDB006B600E /* SpotlightRequest.swift */, + ); + path = General; + sourceTree = ""; + }; + 800FCD431F728E6A00D9A692 /* Info */ = { + isa = PBXGroup; + children = ( + 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */, + 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */, + 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */, + 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */, + 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */, + 800FCD491F728E6A00D9A692 /* MemberCell.swift */, + 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */, + ); + path = Info; + sourceTree = ""; + }; + 8013F8631FD5E11100EE1A4E /* API */ = { + isa = PBXGroup; + children = ( + 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */, + ); + path = API; + sourceTree = ""; + }; + 8013F86E1FD6B59D00EE1A4E /* Clients */ = { + isa = PBXGroup; + children = ( + 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */, + 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */, + 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */, + 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */, + 807C7C0520751ED1006B600E /* SpotlightClient.swift */, + 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */, + ); + path = Clients; + sourceTree = ""; + }; + 8013F8741FD6B5D100EE1A4E /* Middlewares */ = { + isa = PBXGroup; + children = ( + 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */, + ); + path = Middlewares; + sourceTree = ""; + }; + 8013F8771FD6B61400EE1A4E /* Middlewares */ = { + isa = PBXGroup; + children = ( + 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */, + ); + path = Middlewares; + sourceTree = ""; + }; + 8013F87E1FD6B66900EE1A4E /* Clients */ = { + isa = PBXGroup; + children = ( + 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */, + 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */, + 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */, + 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */, + ); + path = Clients; + sourceTree = ""; + }; + 8013F8831FD6B74800EE1A4E /* Command */ = { + isa = PBXGroup; + children = ( + 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */, + 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */, + ); + path = Command; + sourceTree = ""; + }; + 8013F88A1FD6B79900EE1A4E /* Command */ = { + isa = PBXGroup; + children = ( + 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */, + ); + path = Command; + sourceTree = ""; + }; + 8020CCF31FEAD8AA003424F4 /* EmojiPicker */ = { + isa = PBXGroup; + children = ( + 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */, + 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */, + 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */, + 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */, + ); + path = EmojiPicker; + sourceTree = ""; + }; + 80213C0F1FE063B200809E14 /* HTTP */ = { + isa = PBXGroup; + children = ( + 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */, + ); + path = HTTP; + sourceTree = ""; + }; + 80235D1C1F740AAC00A56CA5 /* Subscription */ = { + isa = PBXGroup; + children = ( + 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */, + 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */, + 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */, + 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */, + 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */, + 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 80235D201F7442C100A56CA5 /* Subscription */ = { + isa = PBXGroup; + children = ( + 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */, + 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */, + 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */, + 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */, + 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 802498EC1F7A82CD005477EC /* Authentication */ = { + isa = PBXGroup; + children = ( + D18675EB1F716A0D00406FB4 /* LoginRequest.swift */, + 802498ED1F7A8380005477EC /* MeRequest.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 802498EF1F7A9B92005477EC /* Authentication */ = { + isa = PBXGroup; + children = ( + D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */, + 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 80307E3A1FD75BD3006AD9EF /* VoiceOver */ = { + isa = PBXGroup; + children = ( + 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */, + 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */, + ); + path = VoiceOver; + sourceTree = ""; + }; + 806C2ACE206BBAF200EE5F67 /* External */ = { + isa = PBXGroup; + children = ( + 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */, + ); + path = External; + sourceTree = ""; + }; + 806C59A01FBB0BA700C32D0A /* Message */ = { + isa = PBXGroup; + children = ( + 806728FE20079734009FE94D /* DeleteMessageRequest.swift */, + 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */, + 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */, + 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */, + 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */, + 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */, + 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */, + 3370D8C12095995800EEA225 /* StarMessageRequest.swift */, + ); + path = Message; + sourceTree = ""; + }; + 806C59A31FBB2F3700C32D0A /* Message */ = { + isa = PBXGroup; + children = ( + 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */, + 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */, + 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */, + 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */, + 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */, + 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */, + ); + path = Message; + sourceTree = ""; + }; + 8076FDAC2048566100114F28 /* Auth */ = { + isa = PBXGroup; + children = ( + 41A79C121D2F09F200A1968E /* Auth.swift */, + 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */, + 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */, + 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */, + 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */, + 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */, + 8076FDB42048571200114F28 /* AuthUser.swift */, + ); + path = Auth; + sourceTree = ""; + }; + 8076FDB72048580A00114F28 /* AuthManager */ = { + isa = PBXGroup; + children = ( + 41552F651D30308C0081438D /* AuthManager.swift */, + 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */, + 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */, + 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */, + ); + path = AuthManager; + sourceTree = ""; + }; + 8076FDC120485A0B00114F28 /* Subscription */ = { + isa = PBXGroup; + children = ( + 41DAE93D1D318F350098E068 /* Subscription.swift */, + 8076FDC62048632300114F28 /* SubscriptionQueries.swift */, + 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */, + 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 8076FDCF2048644300114F28 /* Message */ = { + isa = PBXGroup; + children = ( + D10E9C191F643457007F1796 /* Channel.swift */, + 4159720B1D3DB854002258F4 /* Email.swift */, + 4159720D1D3DB882002258F4 /* Mention.swift */, + 41DC7A1A1D38454500896FC0 /* Message.swift */, + 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */, + 8076FDD02048646500114F28 /* MessageReply.swift */, + 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */, + ); + path = Message; + sourceTree = ""; + }; + 8076FDD4204864D400114F28 /* User */ = { + isa = PBXGroup; + children = ( + 41A79C0E1D2F085F00A1968E /* User.swift */, + 8076FDD5204864E700114F28 /* UserQueries.swift */, + 8076FDD72048654F00114F28 /* UserUtils.swift */, + ); + path = User; + sourceTree = ""; + }; + 8076FDE02048A69200114F28 /* Compose */ = { + isa = PBXGroup; + children = ( + 80D563702058A8A7008896D6 /* Cells */, + 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */, + 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */, + 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */, + 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */, + 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */, + ); + path = Compose; + sourceTree = ""; + }; + 8076FDEB2049A5CB00114F28 /* Base */ = { + isa = PBXGroup; + children = ( + 80D0CE6E20509C100056B17F /* SEAvatarView.swift */, + 80D0CE7020509C230056B17F /* SEAvatarView.xib */, + 80D0CE61205023710056B17F /* SECell.swift */, + 8076FDEC2049A5F600114F28 /* SECellModel.swift */, + 802A4E102049C7340072CD23 /* SENavigationController.swift */, + 8076FDD920489F5900114F28 /* SEViewController.swift */, + 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */, + ); + path = Base; + sourceTree = ""; + }; + 807C7C0A20751F06006B600E /* General */ = { + isa = PBXGroup; + children = ( + D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */, + 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */, + 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */, + ); + path = General; + sourceTree = ""; + }; + 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { + isa = PBXGroup; + children = ( + 8076FDEB2049A5CB00114F28 /* Base */, + 8076FDE02048A69200114F28 /* Compose */, + 806C2ACE206BBAF200EE5F67 /* External */, + 80D5637320593245008896D6 /* Helpers */, + 807FB56C20472B2700E21429 /* Resources */, + 807FB57E2048376900E21429 /* Rooms */, + 807FB5802048378500E21429 /* Servers */, + 80977AC0204F374100C41435 /* State */, + 807FB55F2046E7DD00E21429 /* Info.plist */, + 807FB55C2046E7DD00E21429 /* Main.storyboard */, + 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */, + ); + path = Rocket.Chat.ShareExtension; + sourceTree = ""; + }; + 807FB56C20472B2700E21429 /* Resources */ = { + isa = PBXGroup; + children = ( + 80D5637120592D32008896D6 /* Assets.xcassets */, + 807FB57120472B6A00E21429 /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; + 807FB57E2048376900E21429 /* Rooms */ = { + isa = PBXGroup; + children = ( + 80D0CE6520503C860056B17F /* SERoomCell.swift */, + 80D0CE6720503C970056B17F /* SERoomCell.xib */, + 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */, + 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */, + 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */, + ); + path = Rooms; + sourceTree = ""; + }; + 807FB5802048378500E21429 /* Servers */ = { + isa = PBXGroup; + children = ( + 80D0CE5F205016B40056B17F /* SEServerCell.swift */, + 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */, + 80D0CE63205034280056B17F /* SEServerCellModel.swift */, + 807FB568204729E500E21429 /* SEServersViewController.swift */, + 807FB581204837AF00E21429 /* SEServersViewModel.swift */, + ); + path = Servers; + sourceTree = ""; + }; + 80977AB7204EFBBB00C41435 /* Navigation */ = { + isa = PBXGroup; + children = ( + 80977AB8204EFBCC00C41435 /* SENavigation.swift */, + 800640F62049BA25006D990F /* SEScene.swift */, + 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */, + ); + path = Navigation; + sourceTree = ""; + }; + 80977AC0204F374100C41435 /* State */ = { + isa = PBXGroup; + children = ( + 80FA907B2057F43F0069038F /* ActionCreators */, + 80977AB7204EFBBB00C41435 /* Navigation */, + 80FA9064205313D10069038F /* Resources */, + 80977ABE204F36F200C41435 /* SESearchState.swift */, + 80977AC1204F37C200C41435 /* SEState.swift */, + 8076FD9920484A6000114F28 /* SEStore.swift */, + ); + path = State; + sourceTree = ""; + }; + 809B530C1FE2EF7C00833DD2 /* Reaction */ = { + isa = PBXGroup; + children = ( + 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */, + 809B53131FE3294400833DD2 /* ReactionListView.xib */, + 809B530F1FE2F17D00833DD2 /* ReactionView.swift */, + 809B53111FE2F2F900833DD2 /* ReactionView.xib */, + 8041C0412028C7EF007E21FA /* ReactorListView.swift */, + 8041C0432028C828007E21FA /* ReactorListView.xib */, + 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */, + ); + path = Reaction; + sourceTree = ""; + }; + 80A97EFD200628A300A2774C /* Views */ = { + isa = PBXGroup; + children = ( + 8020CCF31FEAD8AA003424F4 /* EmojiPicker */, + 809B530C1FE2EF7C00833DD2 /* Reaction */, + 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */, + 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */, + 806465ED1FED1AFE001F27DB /* EmojiView.swift */, + 806465EB1FED19B9001F27DB /* EmojiView.xib */, + ); + path = Views; + sourceTree = ""; + }; + 80A97EFE2006291E00A2774C /* External */ = { + isa = PBXGroup; + children = ( + 80A97EFF2006292500A2774C /* RCEmojiKit */, + ); + path = External; + sourceTree = ""; + }; + 80A97EFF2006292500A2774C /* RCEmojiKit */ = { + isa = PBXGroup; + children = ( + 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */, + 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */, + ); + path = RCEmojiKit; + sourceTree = ""; + }; + 80D41DFB2092152A00034D1F /* ActionSheets */ = { + isa = PBXGroup; + children = ( + 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */, + ); + path = ActionSheets; + sourceTree = ""; + }; + 80D41E0320924A6500034D1F /* Auth */ = { + isa = PBXGroup; + children = ( + 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */, + 416133391D46E0A200E09DA2 /* AuthSpec.swift */, + ); + path = Auth; + sourceTree = ""; + }; + 80D563702058A8A7008896D6 /* Cells */ = { + isa = PBXGroup; + children = ( + 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */, + 80FA906920569F890069038F /* SEComposeFileCell.swift */, + 80FA906B20569FA10069038F /* SEComposeFileCell.xib */, + 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */, + 80FA90712056C1190069038F /* SEComposeTextCell.swift */, + 80FA90732056C1350069038F /* SEComposeTextCell.xib */, + 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */, + 80FE8DEF206587510099170E /* SEFileDetailView.swift */, + 80FE8DED206584EA0099170E /* SEFileDetailView.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 80D5637320593245008896D6 /* Helpers */ = { + isa = PBXGroup; + children = ( + 80D563742059325A008896D6 /* MimeType.swift */, + 8029B2F12059B6F60067157B /* VideoInfo.swift */, + 80DC9A6F206BAC8B00032BE0 /* mimetype.json */, + ); + path = Helpers; + sourceTree = ""; + }; + 80E99F2A1FD8B4AC00B70B59 /* API */ = { + isa = PBXGroup; + children = ( + 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */, + ); + path = API; + sourceTree = ""; + }; + 80E99F2D1FD8B4E200B70B59 /* Models */ = { + isa = PBXGroup; + children = ( + 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */, + 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */, + ); + path = Models; + sourceTree = ""; + }; + 80FA9064205313D10069038F /* Resources */ = { + isa = PBXGroup; + children = ( + 80FA9065205313E20069038F /* SEContent.swift */, + 80FA9067205314040069038F /* SEServer.swift */, + ); + path = Resources; + sourceTree = ""; + }; + 80FA907B2057F43F0069038F /* ActionCreators */ = { + isa = PBXGroup; + children = ( + 80D5637620593533008896D6 /* ParseItemProviders.swift */, + 80977AB5204EEF1E00C41435 /* SelectServer.swift */, + 80FA907C2057F4650069038F /* SubmitContent.swift */, + ); + path = ActionCreators; + sourceTree = ""; + }; + 897083CC1F8CF08100233561 /* Form */ = { + isa = PBXGroup; + children = ( + 897083CD1F8CF08100233561 /* Cells */, + 897083D21F8CF08100233561 /* FormTableViewCell.swift */, + ); + path = Form; + sourceTree = ""; + }; + 897083CD1F8CF08100233561 /* Cells */ = { + isa = PBXGroup; + children = ( + 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */, + 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */, + 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */, + 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */, + 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */, + 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 925FF74F1E8EFC9200982043 /* Preferences */ = { + isa = PBXGroup; + children = ( + 140A95DC202F1E4D003FD564 /* AppIcon */, + 0BBCC2C0204546BB001E3B6D /* Language */, + 99F41BCC20658AD900B240FC /* Profile */, + 994DA2B12065480300083FB8 /* Web Browser */, + 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */, + ); + path = Preferences; + sourceTree = ""; + }; + 99282260204DE0AE005D2067 /* Profile */ = { + isa = PBXGroup; + children = ( + 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */, + 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */, + 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */, + 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */, + ); + path = Profile; + sourceTree = ""; + }; + 994DA2B12065480300083FB8 /* Web Browser */ = { + isa = PBXGroup; + children = ( + 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */, + ); + path = "Web Browser"; + sourceTree = ""; + }; + 9960C82E2063F091004A034C /* Web Browser */ = { + isa = PBXGroup; + children = ( + 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */, + 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */, + ); + path = "Web Browser"; + sourceTree = ""; + }; + 9977302520725B3A009AF465 /* Emoji */ = { + isa = PBXGroup; + children = ( + 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */, + ); + path = Emoji; + sourceTree = ""; + }; + 9977302820727DA0009AF465 /* Emoji */ = { + isa = PBXGroup; + children = ( + 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */, + ); + path = Emoji; + sourceTree = ""; + }; + 998165C8204EBB5E0059D346 /* User */ = { + isa = PBXGroup; + children = ( + 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */, + 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */, + 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */, + ); + path = User; + sourceTree = ""; + }; + 99D888F92046239100E51306 /* User */ = { + isa = PBXGroup; + children = ( + 99D888FA204623A900E51306 /* UpdateUserRequest.swift */, + 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */, + 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */, + ); + path = User; + sourceTree = ""; + }; + 99F41BCC20658AD900B240FC /* Profile */ = { + isa = PBXGroup; + children = ( + 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */, + 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */, + ); + path = Profile; + sourceTree = ""; + }; + D18675E71F70A55D00406FB4 /* API */ = { + isa = PBXGroup; + children = ( + 8013F87E1FD6B66900EE1A4E /* Clients */, + 8013F8771FD6B61400EE1A4E /* Middlewares */, + D18675E81F70A56800406FB4 /* Requests */, + 80A63C561F71D2E400FE5AC4 /* APISpec.swift */, + 8073719B1F963FA400D53ADF /* APITestCase.swift */, + 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */, + 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */, + ); + path = API; + sourceTree = ""; + }; + D18675E81F70A56800406FB4 /* Requests */ = { + isa = PBXGroup; + children = ( + 802498EF1F7A9B92005477EC /* Authentication */, + 8013F88A1FD6B79900EE1A4E /* Command */, + 9977302820727DA0009AF465 /* Emoji */, + 807C7C0A20751F06006B600E /* General */, + 806C59A31FBB2F3700C32D0A /* Message */, + 80235D201F7442C100A56CA5 /* Subscription */, + 998165C8204EBB5E0059D346 /* User */, + ); + path = Requests; + sourceTree = ""; + }; + D1D535EA1F7081E6006625D2 /* API */ = { + isa = PBXGroup; + children = ( + 8013F86E1FD6B59D00EE1A4E /* Clients */, + 80213C0F1FE063B200809E14 /* HTTP */, + 8013F8741FD6B5D100EE1A4E /* Middlewares */, + D1D535EF1F70863C006625D2 /* Requests */, + D1D535EB1F7081FA006625D2 /* API.swift */, + 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */, + 8013F8691FD6B59900EE1A4E /* APIError.swift */, + D1D535ED1F708628006625D2 /* APIRequest.swift */, + 8067DAA5206D1883005E3369 /* APIResource.swift */, + D15C83851F70991F001AB155 /* APIResponse.swift */, + 8013F8681FD6B59900EE1A4E /* Version.swift */, + ); + path = API; + sourceTree = ""; + }; + D1D535EF1F70863C006625D2 /* Requests */ = { + isa = PBXGroup; + children = ( + 802498EC1F7A82CD005477EC /* Authentication */, + 8013F8831FD6B74800EE1A4E /* Command */, + 9977302520725B3A009AF465 /* Emoji */, + 80054CFA1FDAFD3A00F5ECF9 /* General */, + 806C59A01FBB0BA700C32D0A /* Message */, + 80235D1C1F740AAC00A56CA5 /* Subscription */, + 99D888F92046239100E51306 /* User */, + ); + path = Requests; + sourceTree = ""; + }; + D1DA25261F695AC700DB6ABB /* Controllers */ = { + isa = PBXGroup; + children = ( + D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */, + 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */, + 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */, + 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */, + 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */, + ); + path = Controllers; + sourceTree = ""; + }; + D32E28201DFD86AC00D6019C /* Launcher */ = { + isa = PBXGroup; + children = ( + D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */, + D32E28221DFD86C300D6019C /* LauncherProtocol.swift */, + 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */, + 411119B51F680DB00019854B /* NetworkCoordinator.swift */, + D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */, + 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */, + ); + path = Launcher; + sourceTree = ""; + }; + D3CFAFBE1E907FC100BADC0A /* Chat */ = { + isa = PBXGroup; + children = ( + 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */, + 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */, + ); + path = Chat; + sourceTree = ""; + }; + EE693BBD0CC2727847214E2D /* Pods */ = { + isa = PBXGroup; + children = ( + BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */, + 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */, + 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */, + 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */, + AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */, + FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */, + 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */, + 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */, + F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */; - buildPhases = ( - 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */, - D37272A11E13E60E00A25E1A /* SwiftLint */, - 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */, - 41DF76DB1D2C50710028DBF8 /* Sources */, - 41DF76DC1D2C50710028DBF8 /* Frameworks */, - 41DF76DD1D2C50710028DBF8 /* Resources */, - FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */, - FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */, - 807FB5672046E7DD00E21429 /* Embed App Extensions */, - ); - buildRules = ( - ); - dependencies = ( - 807FB5612046E7DD00E21429 /* PBXTargetDependency */, - ); - name = Rocket.Chat; - productName = Rocket.Chat; - productReference = 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */; - productType = "com.apple.product-type.application"; - }; - 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */; - buildPhases = ( - 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */, - F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */, - 41DF76EF1D2C50720028DBF8 /* Sources */, - 41DF76F01D2C50720028DBF8 /* Frameworks */, - 41DF76F11D2C50720028DBF8 /* Resources */, - DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */, - DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */, - ); - name = Rocket.ChatTests; - productName = Rocket.ChatTests; - productReference = 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */; - buildPhases = ( - 41DF76FA1D2C50720028DBF8 /* Sources */, - 41DF76FB1D2C50720028DBF8 /* Frameworks */, - 41DF76FC1D2C50720028DBF8 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 41DF77001D2C50720028DBF8 /* PBXTargetDependency */, - ); - name = Rocket.ChatUITests; - productName = Rocket.ChatUITests; - productReference = 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; - 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */; - buildPhases = ( - EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */, - 807FB5542046E7DD00E21429 /* Sources */, - 807FB5552046E7DD00E21429 /* Frameworks */, - 807FB5562046E7DD00E21429 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Rocket.Chat.ShareExtension; - productName = Rocket.Chat.ShareExtension; - productReference = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; - productType = "com.apple.product-type.app-extension"; - }; + 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */; + buildPhases = ( + 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */, + D37272A11E13E60E00A25E1A /* SwiftLint */, + 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */, + 41DF76DB1D2C50710028DBF8 /* Sources */, + 41DF76DC1D2C50710028DBF8 /* Frameworks */, + 41DF76DD1D2C50710028DBF8 /* Resources */, + FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */, + FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */, + 807FB5672046E7DD00E21429 /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + 807FB5612046E7DD00E21429 /* PBXTargetDependency */, + ); + name = Rocket.Chat; + productName = Rocket.Chat; + productReference = 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */; + productType = "com.apple.product-type.application"; + }; + 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */; + buildPhases = ( + 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */, + F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */, + 41DF76EF1D2C50720028DBF8 /* Sources */, + 41DF76F01D2C50720028DBF8 /* Frameworks */, + 41DF76F11D2C50720028DBF8 /* Resources */, + DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */, + DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */, + ); + name = Rocket.ChatTests; + productName = Rocket.ChatTests; + productReference = 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */; + buildPhases = ( + 41DF76FA1D2C50720028DBF8 /* Sources */, + 41DF76FB1D2C50720028DBF8 /* Frameworks */, + 41DF76FC1D2C50720028DBF8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 41DF77001D2C50720028DBF8 /* PBXTargetDependency */, + ); + name = Rocket.ChatUITests; + productName = Rocket.ChatUITests; + productReference = 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */; + buildPhases = ( + EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */, + 807FB5542046E7DD00E21429 /* Sources */, + 807FB5552046E7DD00E21429 /* Frameworks */, + 807FB5562046E7DD00E21429 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Rocket.Chat.ShareExtension; + productName = Rocket.Chat.ShareExtension; + productReference = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 41DF76D71D2C50710028DBF8 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0930; - ORGANIZATIONNAME = Rocket.Chat; - TargetAttributes = { - 41DF76DE1D2C50710028DBF8 = { - CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - SystemCapabilities = { - com.apple.ApplicationGroups.iOS = { - enabled = 1; - }; - com.apple.BackgroundModes = { - enabled = 1; - }; - com.apple.Push = { - enabled = 1; - }; - com.apple.SafariKeychain = { - enabled = 1; - }; - com.apple.iCloud = { - enabled = 1; - }; - }; - }; - 41DF76F21D2C50720028DBF8 = { - CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - TestTargetID = 41DF76DE1D2C50710028DBF8; - }; - 41DF76FD1D2C50720028DBF8 = { - CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - TestTargetID = 41DF76DE1D2C50710028DBF8; - }; - 807FB5572046E7DD00E21429 = { - CreatedOnToolsVersion = 9.2; - DevelopmentTeam = S6UPZG7ZR3; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.ApplicationGroups.iOS = { - enabled = 1; - }; - }; - }; - }; - }; - buildConfigurationList = 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - "pt-BR", - de, - pl, - cs, - fr, - el, - es, - ); - mainGroup = 41DF76D61D2C50710028DBF8; - productRefGroup = 41DF76E01D2C50710028DBF8 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */, - 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */, - 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */, - 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */, - ); - }; + 41DF76D71D2C50710028DBF8 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = Rocket.Chat; + TargetAttributes = { + 41DF76DE1D2C50710028DBF8 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = S6UPZG7ZR3; + LastSwiftMigration = 0900; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + com.apple.BackgroundModes = { + enabled = 1; + }; + com.apple.Push = { + enabled = 1; + }; + com.apple.SafariKeychain = { + enabled = 1; + }; + com.apple.iCloud = { + enabled = 1; + }; + }; + }; + 41DF76F21D2C50720028DBF8 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = S6UPZG7ZR3; + LastSwiftMigration = 0900; + TestTargetID = 41DF76DE1D2C50710028DBF8; + }; + 41DF76FD1D2C50720028DBF8 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = S6UPZG7ZR3; + LastSwiftMigration = 0900; + TestTargetID = 41DF76DE1D2C50710028DBF8; + }; + 807FB5572046E7DD00E21429 = { + CreatedOnToolsVersion = 9.2; + DevelopmentTeam = S6UPZG7ZR3; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + }; + }; + }; + }; + buildConfigurationList = 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + "pt-BR", + de, + pl, + cs, + fr, + el, + es, + ); + mainGroup = 41DF76D61D2C50710028DBF8; + productRefGroup = 41DF76E01D2C50710028DBF8 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */, + 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */, + 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */, + 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */, + ); + }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 41DF76DD1D2C50710028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */, - 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */, - 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */, - 33A5C9CC206A565800FE1C8F /* regional.json in Resources */, - 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */, - 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */, - 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */, - 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */, - 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */, - 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */, - 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */, - 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */, - 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */, - 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */, - 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */, - 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */, - 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */, - 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */, - 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */, - 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */, - 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */, - 33A5C9CE206A565800FE1C8F /* people.json in Resources */, - 33A5C9D1206A565800FE1C8F /* activity.json in Resources */, - 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */, - 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */, - 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */, - 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */, - 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */, - 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */, - 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */, - 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */, - 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */, - 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */, - 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */, - 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */, - 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */, - 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */, - 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */, - 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */, - 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */, - 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */, - 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */, - 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */, - 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */, - 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */, - 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */, - 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */, - 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */, - 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */, - 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */, - 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */, - 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */, - 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */, - 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */, - 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */, - 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */, - 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */, - 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */, - 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */, - 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */, - 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */, - 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */, - 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */, - 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */, - 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */, - 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */, - 14F8A281202E659000175FDC /* White-40@3x.png in Resources */, - 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */, - 9987B59A2093E526007D277C /* FileTableViewCell.xib in Resources */, - 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */, - 33A5C9CB206A565800FE1C8F /* travel.json in Resources */, - 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */, - 14F8A287202E659000175FDC /* White-40@2x.png in Resources */, - 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */, - 14F8A288202E659000175FDC /* White-60@3x.png in Resources */, - 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */, - 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */, - 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */, - 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */, - 14F8A280202E659000175FDC /* White-76@2x.png in Resources */, - 33A5C9CD206A565800FE1C8F /* flags.json in Resources */, - 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */, - 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */, - 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */, - 14F8A284202E659000175FDC /* White-60@2x.png in Resources */, - 14F8A286202E659000175FDC /* White-29@2x.png in Resources */, - 14F8A282202E659000175FDC /* White-76@3x.png in Resources */, - 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */, - 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */, - 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */, - 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */, - 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */, - 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */, - 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */, - 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */, - 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */, - 33A5C9D2206A565800FE1C8F /* nature.json in Resources */, - 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */, - 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */, - 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */, - 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */, - 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */, - 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */, - 14F8A285202E659000175FDC /* White-29@3x.png in Resources */, - 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */, - 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */, - 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */, - 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */, - 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */, - 33A5C9D0206A565800FE1C8F /* food.json in Resources */, - 33A5C9CF206A565800FE1C8F /* objects.json in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76F11D2C50720028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FC1D2C50720028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5562046E7DD00E21429 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */, - 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */, - 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */, - 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */, - 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */, - 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */, - 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */, - 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */, - 80D5637220592D32008896D6 /* Assets.xcassets in Resources */, - 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 41DF76DD1D2C50710028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */, + 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */, + 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */, + 33A5C9CC206A565800FE1C8F /* regional.json in Resources */, + 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */, + 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */, + 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */, + 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */, + 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */, + 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */, + 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */, + 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */, + 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */, + 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */, + 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */, + 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */, + 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */, + 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */, + 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */, + 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */, + 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */, + 33A5C9CE206A565800FE1C8F /* people.json in Resources */, + 33A5C9D1206A565800FE1C8F /* activity.json in Resources */, + 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */, + 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */, + 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */, + 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */, + 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */, + 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */, + 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */, + 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */, + 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */, + 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */, + 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */, + 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */, + 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */, + 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */, + 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */, + 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */, + 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */, + 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */, + 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */, + 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */, + 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */, + 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */, + 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */, + 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */, + 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */, + 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */, + 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */, + 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */, + 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */, + 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */, + 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */, + 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */, + 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */, + 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */, + 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */, + 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */, + 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */, + 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */, + 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */, + 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */, + 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */, + 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */, + 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */, + 14F8A281202E659000175FDC /* White-40@3x.png in Resources */, + 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */, + 9987B59A2093E526007D277C /* FileTableViewCell.xib in Resources */, + 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */, + 33A5C9CB206A565800FE1C8F /* travel.json in Resources */, + 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */, + 14F8A287202E659000175FDC /* White-40@2x.png in Resources */, + 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */, + 14F8A288202E659000175FDC /* White-60@3x.png in Resources */, + 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */, + 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */, + 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */, + 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */, + 14F8A280202E659000175FDC /* White-76@2x.png in Resources */, + 33A5C9CD206A565800FE1C8F /* flags.json in Resources */, + 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */, + 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */, + 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */, + 14F8A284202E659000175FDC /* White-60@2x.png in Resources */, + 14F8A286202E659000175FDC /* White-29@2x.png in Resources */, + 14F8A282202E659000175FDC /* White-76@3x.png in Resources */, + 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */, + 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */, + 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */, + 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */, + 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */, + 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */, + 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */, + 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */, + 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */, + 33A5C9D2206A565800FE1C8F /* nature.json in Resources */, + 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */, + 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */, + 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */, + 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */, + 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */, + 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */, + 14F8A285202E659000175FDC /* White-29@3x.png in Resources */, + 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */, + 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */, + 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */, + 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */, + 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */, + 33A5C9D0206A565800FE1C8F /* food.json in Resources */, + 33A5C9CF206A565800FE1C8F /* objects.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76F11D2C50720028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FC1D2C50720028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5562046E7DD00E21429 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */, + 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */, + 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */, + 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */, + 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */, + 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */, + 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */, + 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */, + 80D5637220592D32008896D6 /* Assets.xcassets in Resources */, + 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.ChatTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - D37272A11E13E60E00A25E1A /* SwiftLint */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 12; - files = ( - ); - inputPaths = ( - ); - name = SwiftLint; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n \"${PODS_ROOT}/SwiftLint/swiftlint\"\nfi"; - }; - DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", - "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", - "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", - "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", - "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", - "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", - "${PODS_ROOT}/Instabug/Instabug.framework", - "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", - "${PODS_ROOT}/Instabug/InstabugCore.framework", - "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", - "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", - "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", - "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", - "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", - "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", - "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", - "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", - "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", - "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", - "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", - "${BUILT_PRODUCTS_DIR}/semver/semver.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", - "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", - "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "📦 Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat.ShareExtension-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", - "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", - "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", - "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", - "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", - "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", - "${PODS_ROOT}/Instabug/Instabug.framework", - "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", - "${PODS_ROOT}/Instabug/InstabugCore.framework", - "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", - "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", - "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", - "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", - "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", - "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", - "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", - "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", - "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", - "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", - "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", - "${BUILT_PRODUCTS_DIR}/semver/semver.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", - "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", - "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "📦 Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; + 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.ChatTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + D37272A11E13E60E00A25E1A /* SwiftLint */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 12; + files = ( + ); + inputPaths = ( + ); + name = SwiftLint; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n \"${PODS_ROOT}/SwiftLint/swiftlint\"\nfi"; + }; + DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", + "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", + "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", + "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", + "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", + "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", + "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", + "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", + "${PODS_ROOT}/Instabug/Instabug.framework", + "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", + "${PODS_ROOT}/Instabug/InstabugCore.framework", + "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", + "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", + "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", + "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", + "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", + "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", + "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", + "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", + "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", + "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", + "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", + "${BUILT_PRODUCTS_DIR}/semver/semver.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", + "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", + "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "📦 Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat.ShareExtension-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", + "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", + "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", + "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", + "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", + "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", + "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", + "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", + "${PODS_ROOT}/Instabug/Instabug.framework", + "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", + "${PODS_ROOT}/Instabug/InstabugCore.framework", + "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", + "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", + "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", + "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", + "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", + "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", + "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", + "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", + "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", + "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", + "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", + "${BUILT_PRODUCTS_DIR}/semver/semver.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", + "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", + "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "📦 Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 41DF76DB1D2C50710028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */, - 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */, - 3370D8D820977E9C00EEA225 /* ThemePreferenceController.swift in Sources */, - 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */, - 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */, - 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */, - 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */, - 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */, - 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */, - D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */, - 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */, - 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */, - 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */, - 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */, - 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */, - 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */, - 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */, - 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */, - 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */, - 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */, - 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */, - 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */, - 9987B5992093E526007D277C /* FileTableViewCell.swift in Sources */, - 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */, - 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */, - 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */, - 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */, - 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */, - 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */, - 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */, - 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */, - 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */, - B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */, - 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */, - 41552F661D30308C0081438D /* AuthManager.swift in Sources */, - 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */, - 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */, - D10E9C1A1F643457007F1796 /* Channel.swift in Sources */, - 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */, - 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */, - 413996171F3B44500075F96E /* UploadHelper.swift in Sources */, - 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */, - 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */, - 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */, - 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */, - 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */, - 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */, - 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */, - 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */, - 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */, - 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */, - 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */, - 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */, - 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */, - 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */, - 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */, - 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */, - 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */, - 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */, - D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */, - D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */, - 8076FDA42048533000114F28 /* String+Random.swift in Sources */, - 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */, - 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */, - 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */, - 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */, - 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */, - 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */, - D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */, - 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */, - 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */, - 8076FDB52048571200114F28 /* AuthUser.swift in Sources */, - 4159720E1D3DB882002258F4 /* Mention.swift in Sources */, - 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */, - 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */, - 806401311FB09DE800990572 /* Permission.swift in Sources */, - 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */, - 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */, - 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */, - 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */, - 4159720C1D3DB854002258F4 /* Email.swift in Sources */, - 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */, - 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */, - 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */, - 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */, - 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */, - 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */, - 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, - 4199A9891DABCC570035F820 /* Emojione.swift in Sources */, - 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */, - 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */, - 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */, - 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */, - 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */, - 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */, - D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */, - 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */, - 3370D8D620977D8600EEA225 /* ThemePreferenceViewModel.swift in Sources */, - 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, - 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, - A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, - 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */, - 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */, - 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */, - 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */, - 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */, - 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */, - 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */, - 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */, - 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */, - 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */, + 41DF76DB1D2C50710028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */, + 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */, + 3370D8D820977E9C00EEA225 /* ThemePreferenceController.swift in Sources */, + 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */, + 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */, + 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */, + 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */, + 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */, + 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */, + D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */, + 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */, + 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */, + 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */, + 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */, + 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */, + 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */, + 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */, + 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */, + 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */, + 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */, + 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */, + 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */, + 9987B5992093E526007D277C /* FileTableViewCell.swift in Sources */, + 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */, + 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */, + 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */, + 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */, + 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */, + 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */, + 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */, + 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */, + 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */, + B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */, + 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */, + 41552F661D30308C0081438D /* AuthManager.swift in Sources */, + 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */, + 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */, + D10E9C1A1F643457007F1796 /* Channel.swift in Sources */, + 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */, + 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */, + 413996171F3B44500075F96E /* UploadHelper.swift in Sources */, + 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */, + 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */, + 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */, + 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */, + 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */, + 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */, + 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */, + 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */, + 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */, + 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */, + 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */, + 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */, + 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */, + 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */, + 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */, + 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */, + 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */, + 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */, + D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */, + D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */, + 8076FDA42048533000114F28 /* String+Random.swift in Sources */, + 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */, + 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */, + 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */, + 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */, + 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */, + 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */, + D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */, + 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */, + 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */, + 8076FDB52048571200114F28 /* AuthUser.swift in Sources */, + 4159720E1D3DB882002258F4 /* Mention.swift in Sources */, + 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */, + 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */, + 806401311FB09DE800990572 /* Permission.swift in Sources */, + 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */, + 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */, + 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */, + 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */, + 4159720C1D3DB854002258F4 /* Email.swift in Sources */, + 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */, + 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */, + 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */, + 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */, + 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */, + 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */, + 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, + 4199A9891DABCC570035F820 /* Emojione.swift in Sources */, + 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */, + 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */, + 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */, + 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */, + 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */, + 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */, + D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */, + 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */, + 3370D8D620977D8600EEA225 /* ThemePreferenceViewModel.swift in Sources */, + 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, + 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, + A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, + 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */, + 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */, + 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */, + 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */, + 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */, + 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */, + 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */, + 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */, + 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */, + 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */, 3370D8BC2093570D00EEA225 /* ThemeManager.swift in Sources */, - 41A79C131D2F09F200A1968E /* Auth.swift in Sources */, - 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */, - 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */, - 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */, - 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */, - 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */, - D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */, - D1D535EC1F7081FA006625D2 /* API.swift in Sources */, - 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */, - 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */, - 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */, - 330888B6209909F600D44D4E /* ThemeableViewControllers.swift in Sources */, - 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */, - 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */, - 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */, - 9987B5962093E4BA007D277C /* FilesListViewController.swift in Sources */, - 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */, - 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */, - 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */, - 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */, - 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */, - 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */, - 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */, - 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */, - 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */, - 99DBB8742090360600382DB2 /* MessagesListControllerSearch.swift in Sources */, - 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */, - 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */, - 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */, - 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */, - 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */, - 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */, - 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */, - 41A79C0F1D2F085F00A1968E /* User.swift in Sources */, - 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */, - 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */, - 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */, - 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */, - 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */, - 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */, - 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */, - 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */, - 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */, - 9987B59C2093E60D007D277C /* SubscriptionFilesRequest.swift in Sources */, - 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */, - 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */, - 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */, - 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */, - 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */, - 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */, - 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */, - 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */, - 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */, - 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */, - 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */, - 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */, - 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */, - 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */, - 8076FDD12048646500114F28 /* MessageReply.swift in Sources */, - D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */, - 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */, - 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */, - 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */, - 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */, - 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */, - 3370D8BE2095978800EEA225 /* UserActionSheetPresenter.swift in Sources */, - 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */, - 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */, - 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */, - 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */, - 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */, - 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */, - 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */, - 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */, - 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */, - 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */, - 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */, - 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */, - 807371A01F96937100D53ADF /* LoginService.swift in Sources */, - 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */, - 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */, - 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */, - 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */, - 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */, - D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */, - 99C577EE207E4F1500CE9B4D /* File.swift in Sources */, - 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */, - 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */, - 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */, - 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */, - 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */, - D15C83861F70991F001AB155 /* APIResponse.swift in Sources */, - 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */, - 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */, - 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */, - 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */, - 992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */, - 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */, - 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */, - 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */, - 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */, - 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */, - 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */, - 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */, - 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */, - 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */, - 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */, - 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */, - 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */, - 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */, - 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */, - 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */, - 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */, - 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */, - 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */, - 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */, - 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */, - 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */, - 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */, - 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */, - 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */, - 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */, - 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */, - 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */, - 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */, - 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */, - 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */, - 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */, - 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */, - 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */, - 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */, - D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */, - 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */, - 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */, - 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */, - 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */, - 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */, - 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */, - 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */, - 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */, - 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */, - 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */, - 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */, - 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */, - 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */, - 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */, - 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */, - 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */, - 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */, - 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */, - D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */, - D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */, - 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */, - D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */, - 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */, - 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */, - D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */, - 999F25B7207EEE70002E0F68 /* (null) in Sources */, - 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */, - 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */, - 99DBB872208FF6FE00382DB2 /* SearchMessagesRequest.swift in Sources */, - 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */, - 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */, - 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */, - 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */, - 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */, - 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, - 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, - 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, - 3353DBF8206787E500738D1C /* Theme.swift in Sources */, - 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */, - 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */, - 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */, - 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */, - 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */, - 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */, - 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */, - 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */, - 4129937E208E25C200E12C49 /* (null) in Sources */, - 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */, - 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */, - 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */, - 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */, - 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */, - 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */, - 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */, - 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */, - 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */, - 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */, - 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */, - 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */, - 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */, - 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */, - 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */, - 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */, - 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */, - 3370D8CE2096261F00EEA225 /* NotThemeableView.swift in Sources */, - 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */, - 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */, - 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */, - 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */, - 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */, - 330888B42099094400D44D4E /* ThemeableViews.swift in Sources */, - 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76EF1D2C50720028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */, - 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */, - 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */, - 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */, - D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */, - 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */, - 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */, - 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */, - D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */, - 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */, - 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */, - 33419D7B2099B7B900D1682A /* ThemeableSpec.swift in Sources */, - 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */, - 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */, - 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */, - 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */, - 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */, - 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */, - 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */, - 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */, - 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */, - 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */, - 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */, - 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */, - 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */, - 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */, - 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */, - 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */, - 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */, - 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */, - 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */, - D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */, - 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */, - 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */, - 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */, - 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */, - 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */, - 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */, - 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */, - 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */, - 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */, - 33419D792099170A00D1682A /* ThemeManagerSpec.swift in Sources */, - 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */, - 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */, - 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */, - 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */, - 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */, - 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */, - 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */, - 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */, - 992B5AB8209A2890009C8123 /* SubscriptionFilesRequestSpec.swift in Sources */, - 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */, - 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */, - 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */, - 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */, - 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */, - 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */, - D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */, - 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */, - 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */, - 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */, - 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */, - 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */, - 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */, - 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */, - 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */, - 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */, - 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */, - 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */, - 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */, - 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */, - 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */, - 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */, - 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */, - 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */, - 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */, - 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */, - B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */, - 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */, - 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */, - 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */, - 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */, - 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */, - 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */, - 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */, - 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */, - 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */, - 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */, - 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */, - 99DBB87620903A7F00382DB2 /* SearchMessagesRequestSpec.swift in Sources */, - 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */, - D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */, - 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */, - 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */, - 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */, - 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */, - 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */, - 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */, - 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */, - 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */, - 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */, - 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */, - 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */, - 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */, - 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */, - 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */, - 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */, - D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */, - 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FA1D2C50720028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5542046E7DD00E21429 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4100B2842087779D00E2883A /* LogManager.swift in Sources */, - 80D0CE62205023710056B17F /* SECell.swift in Sources */, - 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */, - 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */, - 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */, - 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */, - 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */, - 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */, - 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */, - 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */, - 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */, - 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */, - 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */, - 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */, - 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */, - 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */, - 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */, - 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */, - 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */, - 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */, - 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */, - 80977AC2204F37C200C41435 /* SEState.swift in Sources */, - 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */, - 8076FDCA204863B900114F28 /* Channel.swift in Sources */, - 8076FDBD2048598100114F28 /* Subscription.swift in Sources */, - 804273DE204EBD51006DF420 /* APIClient.swift in Sources */, - 8076FDCB204863C500114F28 /* Attachment.swift in Sources */, - 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */, - 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */, - 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */, - 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */, - 8076FDC82048639700114F28 /* Message.swift in Sources */, - 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */, - 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */, - 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */, - 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */, - 80FA9066205313E20069038F /* SEContent.swift in Sources */, - 804273E0204EBD51006DF420 /* Version.swift in Sources */, - 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */, - 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */, - 8076FDA62048536800114F28 /* BaseModel.swift in Sources */, - 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */, - 804273DF204EBD51006DF420 /* APIError.swift in Sources */, - 806DB94320687697004ED8ED /* Alert.swift in Sources */, - 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */, - 800640F72049BA25006D990F /* SEScene.swift in Sources */, - 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */, - 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */, - 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */, - 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */, - 8076FDB3204856E200114F28 /* Auth.swift in Sources */, - 8076FDC9204863AF00114F28 /* Mention.swift in Sources */, - 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */, - 8076FDD22048648D00114F28 /* Email.swift in Sources */, - 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */, - 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */, - 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */, - 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */, - 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */, - 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */, - 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */, - 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */, - 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */, - 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */, - 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */, - 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */, - 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */, - 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */, - 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */, - 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */, - 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */, - 80D563752059325A008896D6 /* MimeType.swift in Sources */, - 8076FDA52048534200114F28 /* String+Random.swift in Sources */, - 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */, - 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */, - 8076FDCE2048642400114F28 /* User.swift in Sources */, - 804273DD204EBD51006DF420 /* API.swift in Sources */, - 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */, - 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */, - 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */, - 80FA9068205314040069038F /* SEServer.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 999F25B5207EEB0C002E0F68 /* FileModelMapping.swift in Sources */, + 41A79C131D2F09F200A1968E /* Auth.swift in Sources */, + 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */, + 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */, + 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */, + 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */, + 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */, + D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */, + D1D535EC1F7081FA006625D2 /* API.swift in Sources */, + 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */, + 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */, + 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */, + 330888B6209909F600D44D4E /* ThemeableViewControllers.swift in Sources */, + 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */, + 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */, + 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */, + 9987B5962093E4BA007D277C /* FilesListViewController.swift in Sources */, + 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */, + 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */, + 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */, + 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */, + 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */, + 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */, + 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */, + 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */, + 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */, + 99DBB8742090360600382DB2 /* MessagesListControllerSearch.swift in Sources */, + 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */, + 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */, + 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */, + 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */, + 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */, + 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */, + 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */, + 41A79C0F1D2F085F00A1968E /* User.swift in Sources */, + 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */, + 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */, + 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */, + 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */, + 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */, + 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */, + 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */, + 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */, + 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */, + 9987B59C2093E60D007D277C /* SubscriptionFilesRequest.swift in Sources */, + 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */, + 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */, + 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */, + 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */, + 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */, + 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */, + 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */, + 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */, + 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */, + 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */, + 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */, + 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */, + 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */, + 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */, + 8076FDD12048646500114F28 /* MessageReply.swift in Sources */, + D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */, + 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */, + 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */, + 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */, + 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */, + 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */, + 3370D8BE2095978800EEA225 /* UserActionSheetPresenter.swift in Sources */, + 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */, + 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */, + 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */, + 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */, + 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */, + 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */, + 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */, + 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */, + 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */, + 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */, + 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */, + 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */, + 807371A01F96937100D53ADF /* LoginService.swift in Sources */, + 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */, + 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */, + 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */, + 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */, + 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */, + D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */, + 99C577EE207E4F1500CE9B4D /* File.swift in Sources */, + 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */, + 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */, + 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */, + 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */, + 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */, + D15C83861F70991F001AB155 /* APIResponse.swift in Sources */, + 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */, + 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */, + 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */, + 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */, + 992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */, + 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */, + 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */, + 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */, + 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */, + 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */, + 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */, + 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */, + 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */, + 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */, + 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */, + 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */, + 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */, + 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */, + 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */, + 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */, + 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */, + 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */, + 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */, + 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */, + 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */, + 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */, + 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */, + 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */, + 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */, + 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */, + 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */, + 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */, + 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */, + 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */, + 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */, + 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */, + 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */, + 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */, + 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */, + D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */, + 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */, + 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */, + 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */, + 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */, + 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */, + 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */, + 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */, + 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */, + 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */, + 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */, + 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */, + 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */, + 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */, + 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */, + 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */, + 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */, + 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */, + 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */, + D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */, + D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */, + 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */, + D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */, + 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */, + 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */, + D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */, + 999F25B7207EEE70002E0F68 /* (null) in Sources */, + 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */, + 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */, + 99DBB872208FF6FE00382DB2 /* SearchMessagesRequest.swift in Sources */, + 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */, + 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */, + 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */, + 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */, + 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */, + 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, + 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, + 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, + 3353DBF8206787E500738D1C /* Theme.swift in Sources */, + 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */, + 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */, + 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */, + 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */, + 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */, + 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */, + 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */, + 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */, + 4129937E208E25C200E12C49 /* (null) in Sources */, + 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */, + 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */, + 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */, + 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */, + 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */, + 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */, + 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */, + 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */, + 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */, + 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */, + 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */, + 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */, + 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */, + 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */, + 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */, + 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */, + 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */, + 3370D8CE2096261F00EEA225 /* NotThemeableView.swift in Sources */, + 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */, + 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */, + 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */, + 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */, + 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */, + 330888B42099094400D44D4E /* ThemeableViews.swift in Sources */, + 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76EF1D2C50720028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */, + 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */, + 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */, + 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */, + D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */, + 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */, + 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */, + 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */, + D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */, + 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */, + 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */, + 33419D7B2099B7B900D1682A /* ThemeableSpec.swift in Sources */, + 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */, + 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */, + 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */, + 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */, + 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */, + 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */, + 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */, + 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */, + 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */, + 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */, + 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */, + 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */, + 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */, + 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */, + 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */, + 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */, + 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */, + 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */, + 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */, + D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */, + 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */, + 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */, + 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */, + 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */, + 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */, + 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */, + 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */, + 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */, + 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */, + 33419D792099170A00D1682A /* ThemeManagerSpec.swift in Sources */, + 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */, + 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */, + 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */, + 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */, + 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */, + 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */, + 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */, + 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */, + 992B5AB8209A2890009C8123 /* SubscriptionFilesRequestSpec.swift in Sources */, + 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */, + 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */, + 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */, + 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */, + 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */, + 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */, + D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */, + 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */, + 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */, + 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */, + 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */, + 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */, + 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */, + 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */, + 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */, + 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */, + 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */, + 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */, + 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */, + 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */, + 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */, + 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */, + 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */, + 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */, + 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */, + 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */, + B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */, + 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */, + 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */, + 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */, + 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */, + 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */, + 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */, + 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */, + 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */, + 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */, + 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */, + 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */, + 99DBB87620903A7F00382DB2 /* SearchMessagesRequestSpec.swift in Sources */, + 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */, + D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */, + 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */, + 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */, + 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */, + 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */, + 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */, + 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */, + 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */, + 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */, + 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */, + 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */, + 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */, + 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */, + 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */, + 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */, + 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */, + D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */, + 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FA1D2C50720028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5542046E7DD00E21429 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4100B2842087779D00E2883A /* LogManager.swift in Sources */, + 80D0CE62205023710056B17F /* SECell.swift in Sources */, + 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */, + 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */, + 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */, + 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */, + 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */, + 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */, + 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */, + 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */, + 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */, + 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */, + 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */, + 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */, + 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */, + 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */, + 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */, + 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */, + 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */, + 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */, + 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */, + 80977AC2204F37C200C41435 /* SEState.swift in Sources */, + 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */, + 8076FDCA204863B900114F28 /* Channel.swift in Sources */, + 8076FDBD2048598100114F28 /* Subscription.swift in Sources */, + 804273DE204EBD51006DF420 /* APIClient.swift in Sources */, + 8076FDCB204863C500114F28 /* Attachment.swift in Sources */, + 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */, + 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */, + 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */, + 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */, + 8076FDC82048639700114F28 /* Message.swift in Sources */, + 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */, + 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */, + 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */, + 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */, + 80FA9066205313E20069038F /* SEContent.swift in Sources */, + 804273E0204EBD51006DF420 /* Version.swift in Sources */, + 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */, + 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */, + 8076FDA62048536800114F28 /* BaseModel.swift in Sources */, + 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */, + 804273DF204EBD51006DF420 /* APIError.swift in Sources */, + 806DB94320687697004ED8ED /* Alert.swift in Sources */, + 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */, + 800640F72049BA25006D990F /* SEScene.swift in Sources */, + 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */, + 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */, + 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */, + 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */, + 8076FDB3204856E200114F28 /* Auth.swift in Sources */, + 8076FDC9204863AF00114F28 /* Mention.swift in Sources */, + 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */, + 8076FDD22048648D00114F28 /* Email.swift in Sources */, + 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */, + 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */, + 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */, + 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */, + 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */, + 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */, + 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */, + 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */, + 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */, + 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */, + 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */, + 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */, + 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */, + 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */, + 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */, + 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */, + 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */, + 80D563752059325A008896D6 /* MimeType.swift in Sources */, + 8076FDA52048534200114F28 /* String+Random.swift in Sources */, + 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */, + 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */, + 8076FDCE2048642400114F28 /* User.swift in Sources */, + 804273DD204EBD51006DF420 /* API.swift in Sources */, + 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */, + 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */, + 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */, + 80FA9068205314040069038F /* SEServer.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; - targetProxy = 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */; - }; - 41DF77001D2C50720028DBF8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; - targetProxy = 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */; - }; - 807FB5612046E7DD00E21429 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */; - targetProxy = 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */; - }; + 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; + targetProxy = 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */; + }; + 41DF77001D2C50720028DBF8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; + targetProxy = 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */; + }; + 807FB5612046E7DD00E21429 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */; + targetProxy = 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 41DF76EC1D2C50720028DBF8 /* Base */, - ); - name = LaunchScreen.storyboard; - path = .; - sourceTree = ""; - }; - 41EB22381E5F056600AA3AE7 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 41A6191A1FA7065400CFFA69 /* cs */, - 41EB223B1E5F19EB00AA3AE7 /* de */, - 848088BB204370E8005022E8 /* el */, - 41EB22371E5F056600AA3AE7 /* en */, - 412184A520472F7900DAAA88 /* es */, - 35D2F140200A45E800B4BE5A /* fr */, - 1499781C1FA605CE007E013D /* pl */, - 41EB223A1E5F057F00AA3AE7 /* pt-BR */, - ); - name = Localizable.strings; - path = .; - sourceTree = ""; - }; - 80307E431FD75DC0006AD9EF /* VoiceOver.strings */ = { - isa = PBXVariantGroup; - children = ( - 80307E481FD75DD5006AD9EF /* cs */, - 80307E451FD75DCF006AD9EF /* de */, - 848088BC204370E9005022E8 /* el */, - 80307E421FD75DC0006AD9EF /* en */, - 412184A620472F7900DAAA88 /* es */, - 80307E461FD75DD1006AD9EF /* fr */, - 80307E471FD75DD2006AD9EF /* pl */, - 80307E441FD75DCB006AD9EF /* pt-BR */, - ); - name = VoiceOver.strings; - path = .; - sourceTree = ""; - }; - 807FB55C2046E7DD00E21429 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 807FB55D2046E7DD00E21429 /* Base */, - ); - name = Main.storyboard; - path = .; - sourceTree = ""; - }; - 807FB57120472B6A00E21429 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 807FB57420472B7000E21429 /* cs */, - 807FB57220472B6D00E21429 /* de */, - 807FB57620472B7300E21429 /* el */, - 807FB57720472B8200E21429 /* en */, - 807FB57520472B7200E21429 /* fr */, - 807FB57320472B6F00E21429 /* pl */, - 807FB57020472B6A00E21429 /* pt-BR */, - ); - name = Localizable.strings; - path = .; - sourceTree = ""; - }; - 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */ = { - isa = PBXVariantGroup; - children = ( - 80C7DD631FF46B8700E6647C /* cs */, - 80C7DD621FF46B8600E6647C /* de */, - 848088BA204370E8005022E8 /* el */, - 80C7DD5F1FF46B8000E6647C /* en */, - 412184A420472F7900DAAA88 /* es */, - 80C7DD651FF46B8C00E6647C /* fr */, - 80C7DD641FF46B8800E6647C /* pl */, - 80C7DD611FF46B8300E6647C /* pt-BR */, - ); - name = RCEmojiKit.strings; - path = .; - sourceTree = ""; - }; + 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 41DF76EC1D2C50720028DBF8 /* Base */, + ); + name = LaunchScreen.storyboard; + path = .; + sourceTree = ""; + }; + 41EB22381E5F056600AA3AE7 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 41A6191A1FA7065400CFFA69 /* cs */, + 41EB223B1E5F19EB00AA3AE7 /* de */, + 848088BB204370E8005022E8 /* el */, + 41EB22371E5F056600AA3AE7 /* en */, + 412184A520472F7900DAAA88 /* es */, + 35D2F140200A45E800B4BE5A /* fr */, + 1499781C1FA605CE007E013D /* pl */, + 41EB223A1E5F057F00AA3AE7 /* pt-BR */, + ); + name = Localizable.strings; + path = .; + sourceTree = ""; + }; + 80307E431FD75DC0006AD9EF /* VoiceOver.strings */ = { + isa = PBXVariantGroup; + children = ( + 80307E481FD75DD5006AD9EF /* cs */, + 80307E451FD75DCF006AD9EF /* de */, + 848088BC204370E9005022E8 /* el */, + 80307E421FD75DC0006AD9EF /* en */, + 412184A620472F7900DAAA88 /* es */, + 80307E461FD75DD1006AD9EF /* fr */, + 80307E471FD75DD2006AD9EF /* pl */, + 80307E441FD75DCB006AD9EF /* pt-BR */, + ); + name = VoiceOver.strings; + path = .; + sourceTree = ""; + }; + 807FB55C2046E7DD00E21429 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 807FB55D2046E7DD00E21429 /* Base */, + ); + name = Main.storyboard; + path = .; + sourceTree = ""; + }; + 807FB57120472B6A00E21429 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 807FB57420472B7000E21429 /* cs */, + 807FB57220472B6D00E21429 /* de */, + 807FB57620472B7300E21429 /* el */, + 807FB57720472B8200E21429 /* en */, + 807FB57520472B7200E21429 /* fr */, + 807FB57320472B6F00E21429 /* pl */, + 807FB57020472B6A00E21429 /* pt-BR */, + ); + name = Localizable.strings; + path = .; + sourceTree = ""; + }; + 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */ = { + isa = PBXVariantGroup; + children = ( + 80C7DD631FF46B8700E6647C /* cs */, + 80C7DD621FF46B8600E6647C /* de */, + 848088BA204370E8005022E8 /* el */, + 80C7DD5F1FF46B8000E6647C /* en */, + 412184A420472F7900DAAA88 /* es */, + 80C7DD651FF46B8C00E6647C /* fr */, + 80C7DD641FF46B8800E6647C /* pl */, + 80C7DD611FF46B8300E6647C /* pt-BR */, + ); + name = RCEmojiKit.strings; + path = .; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 41DF77051D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 41DF77061D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 41DF77081D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_SWIFT_FLAGS = "$(inherited) -Onone -D DEBUG \"-D\" \"COCOAPODS\""; - PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_DISABLE_SAFETY_CHECKS = NO; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 41DF77091D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - 41DF770B1D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Debug; - }; - 41DF770C1D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Release; - }; - 41DF770E1D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Debug; - }; - 41DF770F1D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Release; - }; - 41E69F0420050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Beta; - }; - 41E69F0520050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-D\" \"BETA\""; - PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Beta; - }; - 41E69F0620050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Beta; - }; - 41E69F0720050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Beta; - }; - 807FB5632046E7DD00E21429 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 807FB5642046E7DD00E21429 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 807FB5652046E7DD00E21429 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Beta; - }; + 41DF77051D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 41DF77061D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 41DF77081D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_SWIFT_FLAGS = "$(inherited) -Onone -D DEBUG \"-D\" \"COCOAPODS\""; + PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_DISABLE_SAFETY_CHECKS = NO; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Debug; + }; + 41DF77091D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Release; + }; + 41DF770B1D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Debug; + }; + 41DF770C1D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Release; + }; + 41DF770E1D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Debug; + }; + 41DF770F1D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Release; + }; + 41E69F0420050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Beta; + }; + 41E69F0520050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-D\" \"BETA\""; + PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Beta; + }; + 41E69F0620050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Beta; + }; + 41E69F0720050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Beta; + }; + 807FB5632046E7DD00E21429 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 807FB5642046E7DD00E21429 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 807FB5652046E7DD00E21429 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Beta; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF77051D2C50720028DBF8 /* Debug */, - 41DF77061D2C50720028DBF8 /* Release */, - 41E69F0420050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF77081D2C50720028DBF8 /* Debug */, - 41DF77091D2C50720028DBF8 /* Release */, - 41E69F0520050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF770B1D2C50720028DBF8 /* Debug */, - 41DF770C1D2C50720028DBF8 /* Release */, - 41E69F0620050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF770E1D2C50720028DBF8 /* Debug */, - 41DF770F1D2C50720028DBF8 /* Release */, - 41E69F0720050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 807FB5632046E7DD00E21429 /* Debug */, - 807FB5642046E7DD00E21429 /* Release */, - 807FB5652046E7DD00E21429 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; + 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF77051D2C50720028DBF8 /* Debug */, + 41DF77061D2C50720028DBF8 /* Release */, + 41E69F0420050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF77081D2C50720028DBF8 /* Debug */, + 41DF77091D2C50720028DBF8 /* Release */, + 41E69F0520050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF770B1D2C50720028DBF8 /* Debug */, + 41DF770C1D2C50720028DBF8 /* Release */, + 41E69F0620050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF770E1D2C50720028DBF8 /* Debug */, + 41DF770F1D2C50720028DBF8 /* Release */, + 41E69F0720050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 807FB5632046E7DD00E21429 /* Debug */, + 807FB5642046E7DD00E21429 /* Release */, + 807FB5652046E7DD00E21429 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ - }; - rootObject = 41DF76D71D2C50710028DBF8 /* Project object */; + }; + rootObject = 41DF76D71D2C50710028DBF8 /* Project object */; } From 9055539db78cba0fd1da3fc1375c1e877c22fb0a Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 3 May 2018 14:13:17 +0530 Subject: [PATCH 044/124] Revert "Merge issues fixed" This reverts commit edb133efee4d137e8db8f2e5af5504bf503f69df. --- Rocket.Chat.xcodeproj/project.pbxproj | 9411 ++++++++++++------------- 1 file changed, 4705 insertions(+), 4706 deletions(-) diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index c9b58c2cd3..1f18f1fd75 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -1,4755 +1,4754 @@ // !$*UTF8*$! { - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { /* Begin PBXBuildFile section */ - 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */; }; - 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */; }; - 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */; }; - 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */; }; - 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */; }; - 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */; }; - 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */; }; - 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */; }; - 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */; }; - 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */; }; - 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */; }; - 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */; }; - 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */; }; - 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 140A95E0202F526C003FD564 /* Drawing.storyboard */; }; - 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E3202F536D003FD564 /* DrawingViewController.swift */; }; - 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */; }; - 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */; }; - 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1435BFA21F9B601600FB2768 /* RCTextView.swift */; }; - 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14A6A83020421DF8008C210D /* ColorPickerView.swift */; }; - 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */; }; - 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */; }; - 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */; }; - 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A213202E5CBD00175FDC /* Black-29@3x.png */; }; - 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A216202E5CBE00175FDC /* Black-76@2x.png */; }; - 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A217202E5CBE00175FDC /* Black-60@3x.png */; }; - 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A218202E5CBE00175FDC /* Black-60@2x.png */; }; - 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A219202E5CBE00175FDC /* Black-29@2x.png */; }; - 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */; }; - 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */; }; - 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */; }; - 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */; }; - 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A22F202E5D0400175FDC /* Red-60@3x.png */; }; - 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A230202E5D0400175FDC /* Red-29@3x.png */; }; - 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A232202E5D0400175FDC /* Red-29@2x.png */; }; - 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A233202E5D0400175FDC /* Red-76@2x.png */; }; - 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A234202E5D0400175FDC /* Red-60@2x.png */; }; - 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A235202E5D0500175FDC /* Red-40@3x.png */; }; - 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A236202E5D0500175FDC /* Red-40@2x.png */; }; - 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */; }; - 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A238202E5D0600175FDC /* Red-76@3x.png */; }; - 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */; }; - 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24C202E64B100175FDC /* BnW-40@3x.png */; }; - 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24D202E64B100175FDC /* BnW-29@2x.png */; }; - 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24E202E64B100175FDC /* BnW-60@2x.png */; }; - 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24F202E64B100175FDC /* BnW-60@3x.png */; }; - 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A250202E64B100175FDC /* BnW-29@3x.png */; }; - 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A251202E64B100175FDC /* BnW-76@2x.png */; }; - 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A252202E64B100175FDC /* BnW-40@2x.png */; }; - 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A254202E64B200175FDC /* BnW-76@3x.png */; }; - 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A263202E653D00175FDC /* Grey-40@2x.png */; }; - 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A264202E653D00175FDC /* Grey-29@2x.png */; }; - 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A265202E653D00175FDC /* Grey-76@3x.png */; }; - 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */; }; - 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A267202E653D00175FDC /* Grey-76@2x.png */; }; - 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A268202E653E00175FDC /* Grey-40@3x.png */; }; - 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A269202E653E00175FDC /* Grey-29@3x.png */; }; - 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26A202E653E00175FDC /* Grey-60@3x.png */; }; - 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26B202E653E00175FDC /* Grey-60@2x.png */; }; - 14F8A280202E659000175FDC /* White-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A277202E658E00175FDC /* White-76@2x.png */; }; - 14F8A281202E659000175FDC /* White-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A278202E658E00175FDC /* White-40@3x.png */; }; - 14F8A282202E659000175FDC /* White-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A279202E658E00175FDC /* White-76@3x.png */; }; - 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27A202E658F00175FDC /* White-83.5@2x.png */; }; - 14F8A284202E659000175FDC /* White-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27B202E658F00175FDC /* White-60@2x.png */; }; - 14F8A285202E659000175FDC /* White-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27C202E658F00175FDC /* White-29@3x.png */; }; - 14F8A286202E659000175FDC /* White-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27D202E658F00175FDC /* White-29@2x.png */; }; - 14F8A287202E659000175FDC /* White-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27E202E658F00175FDC /* White-40@2x.png */; }; - 14F8A288202E659000175FDC /* White-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27F202E658F00175FDC /* White-60@3x.png */; }; - 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A289202E65C500175FDC /* Blue-29@3x.png */; }; - 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28A202E65C600175FDC /* Blue-60@2x.png */; }; - 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28B202E65C600175FDC /* Blue-60@3x.png */; }; - 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28C202E65C600175FDC /* Blue-76@3x.png */; }; - 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */; }; - 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28E202E65C600175FDC /* Blue-40@2x.png */; }; - 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28F202E65C700175FDC /* Blue-29@2x.png */; }; - 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A290202E65C700175FDC /* Blue-40@3x.png */; }; - 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A291202E65C700175FDC /* Blue-76@2x.png */; }; - 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */; }; - 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */; }; - 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */; }; - 330888B42099094400D44D4E /* ThemeableViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330888B32099094400D44D4E /* ThemeableViews.swift */; }; - 330888B6209909F600D44D4E /* ThemeableViewControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */; }; - 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */; }; - 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */; }; - 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */; }; - 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */; }; - 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */; }; - 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */; }; - 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */; }; - 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */; }; - 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 333207FE20766E4F00AD3290 /* NotificationViewController.xib */; }; - 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */; }; - 33419D792099170A00D1682A /* ThemeManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33419D782099170A00D1682A /* ThemeManagerSpec.swift */; }; - 33419D7B2099B7B900D1682A /* ThemeableSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */; }; - 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; - 3353DBF8206787E500738D1C /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Theme.swift */; }; - 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; - 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8B920926E5700EEA225 /* ChatView.swift */; }; - 3370D8BC2093570D00EEA225 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BB2093570D00EEA225 /* ThemeManager.swift */; }; - 3370D8BE2095978800EEA225 /* UserActionSheetPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */; }; - 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */; }; - 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C12095995800EEA225 /* StarMessageRequest.swift */; }; - 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */; }; - 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */; }; - 3370D8CE2096261F00EEA225 /* NotThemeableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */; }; - 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */; }; - 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */; }; - 3370D8D620977D8600EEA225 /* ThemePreferenceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */; }; - 3370D8D820977E9C00EEA225 /* ThemePreferenceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */; }; - 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; - 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; - 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; - 33A5C9CB206A565800FE1C8F /* travel.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C2206A565800FE1C8F /* travel.json */; }; - 33A5C9CC206A565800FE1C8F /* regional.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C3206A565800FE1C8F /* regional.json */; }; - 33A5C9CD206A565800FE1C8F /* flags.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C4206A565800FE1C8F /* flags.json */; }; - 33A5C9CE206A565800FE1C8F /* people.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C5206A565800FE1C8F /* people.json */; }; - 33A5C9CF206A565800FE1C8F /* objects.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C6206A565800FE1C8F /* objects.json */; }; - 33A5C9D0206A565800FE1C8F /* food.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C7206A565800FE1C8F /* food.json */; }; - 33A5C9D1206A565800FE1C8F /* activity.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C8206A565800FE1C8F /* activity.json */; }; - 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; - 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; - 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */; }; - 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; - 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; - 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; - 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; - 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; - 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */; }; - 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */; }; - 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */; }; - 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */; }; - 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */; }; - 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */; }; - 4100B2842087779D00E2883A /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; - 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF001F8D0A1700F67E89 /* AppManager.swift */; }; - 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */; }; - 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B51F680DB00019854B /* NetworkCoordinator.swift */; }; - 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B71F6825C30019854B /* NetworkManagerSpec.swift */; }; - 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */; }; - 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; - 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */; }; - 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */; }; - 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4102E3A91E532323004BAA82 /* Preferences.storyboard */; }; - 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */; }; - 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */; }; - 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */; }; - 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */; }; - 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */; }; - 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */; }; - 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */; }; - 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */; }; - 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */; }; - 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */; }; - 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */; }; - 4129937E208E25C200E12C49 /* (null) in Sources */ = {isa = PBXBuildFile; }; - 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */; }; - 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */; }; - 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */; }; - 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */; }; - 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; - 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */; }; - 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */; }; - 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412EF3C52050507C001689A3 /* ReusableViewText.xib */; }; - 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; - 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */; }; - 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */; }; - 413996171F3B44500075F96E /* UploadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 413996161F3B44500075F96E /* UploadHelper.swift */; }; - 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */; }; - 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */; }; - 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */; }; - 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */; }; - 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; - 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C8E1F2A116900790EA7 /* ServerManager.swift */; }; - 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */; }; - 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF51D46320F00093E10 /* ResponseMessage.swift */; }; - 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF91D46395400093E10 /* SocketManager.swift */; }; - 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FFB1D46395900093E10 /* SocketResponse.swift */; }; - 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */; }; - 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; - 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */; }; - 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */; }; - 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */; }; - 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */; }; - 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */; }; - 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */; }; - 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */; }; - 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */; }; - 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */; }; - 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */; }; - 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4153E80420504BE700FBC26B /* ReusableViewText.swift */; }; - 41552F661D30308C0081438D /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; - 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F671D3035D80081438D /* SocketManagerSpec.swift */; }; - 4159720C1D3DB854002258F4 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; - 4159720E1D3DB882002258F4 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; - 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */; }; - 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */; }; - 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */; }; - 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */; }; - 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */; }; - 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133391D46E0A200E09DA2 /* AuthSpec.swift */; }; - 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333B1D46E32F00E09DA2 /* UserSpec.swift */; }; - 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */; }; - 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */; }; - 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */; }; - 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; - 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */; }; - 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1521D651A8800AAAE49 /* UserManager.swift */; }; - 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */; }; - 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */; }; - 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */; }; - 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */; }; - 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB121D2D99960086DAC8 /* BaseViewController.swift */; }; - 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */; }; - 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */; }; - 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; - 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */; }; - 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */; }; - 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */; }; - 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 41833F4D1DEF16B600E54655 /* Keys.plist */; }; - 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */; }; - 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */; }; - 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */; }; - 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */; }; - 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */; }; - 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */; }; - 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */; }; - 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */; }; - 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */; }; - 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; - 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419205481D52EDE6004EEC5F /* UILabelExtension.swift */; }; - 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */; }; - 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; - 4199A9891DABCC570035F820 /* Emojione.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4199A9881DABCC570035F820 /* Emojione.swift */; }; - 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */; }; - 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */; }; - 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */; }; - 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */; }; - 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */; }; - 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA31F3CA21A005F224B /* DownloadManager.swift */; }; - 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */; }; - 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */; }; - 41A79C0F1D2F085F00A1968E /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; - 41A79C131D2F09F200A1968E /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; - 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; - 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */; }; - 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */; }; - 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */; }; - 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */; }; - 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD481E9DBB100007A458 /* LoaderView.swift */; }; - 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */; }; - 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */; }; - 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; - 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C61FBF0F9D000510B7 /* WindowManager.swift */; }; - 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */; }; - 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96361207E48260068F1A6 /* MessageTextValidator.swift */; }; - 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */; }; - 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */; }; - 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; - 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */; }; - 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */; }; - 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C275DE1D848005003C88CF /* AvatarView.swift */; }; - 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41C275E01D84815C003C88CF /* AvatarView.xib */; }; - 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */; }; - 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */; }; - 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */; }; - 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */; }; - 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */; }; - 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */; }; - 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */; }; - 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */; }; - 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */; }; - 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */; }; - 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D7CA861E644E47000F38EA /* MessageExtensions.swift */; }; - 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */; }; - 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */; }; - 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */; }; - 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; - 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; - 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1C1D38471700896FC0 /* MessageManager.swift */; }; - 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */; }; - 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */; }; - 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */; }; - 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */; }; - 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */; }; - 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */; }; - 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; - 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */; }; - 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */; }; - 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2F9FE1D414DE800238DFD /* Chat.storyboard */; }; - 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */; }; - 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */; }; - 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA061D41513C00238DFD /* ChatViewController.swift */; }; - 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */; }; - 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */; }; - 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */; }; - 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */; }; - 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */; }; - 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */; }; - 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 41EB22381E5F056600AA3AE7 /* Localizable.strings */; }; - 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */; }; - 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */; }; - 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */; }; - 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */; }; - 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */; }; - 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; - 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */; }; - 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */; }; - 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; - 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA31E3708B10041C5C5 /* PushManager.swift */; }; - 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */; }; - 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */; }; - 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4141F852B720074B2F4 /* SelectField.swift */; }; - 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4181F852D670074B2F4 /* CustomField.swift */; }; - 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77BA81501F87C4CB00F295F4 /* TextField.swift */; }; - 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261241F97445300724A1F /* AuthSettingsSpec.swift */; }; - 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */; }; - 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261291F97453600724A1F /* CustomFieldsSpec.swift */; }; - 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */; }; - 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612B1F97453600724A1F /* TextFieldSpec.swift */; }; - 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */; }; - 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */; }; - 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; - 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */; }; - 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */; }; - 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; - 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */; }; - 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */; }; - 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; - 800640F72049BA25006D990F /* SEScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800640F62049BA25006D990F /* SEScene.swift */; }; - 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */; }; - 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */; }; - 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800F38EC2019492D0005CB78 /* DeepLink.swift */; }; - 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */; }; - 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */; }; - 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */; }; - 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */; }; - 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */; }; - 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */; }; - 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD491F728E6A00D9A692 /* MemberCell.swift */; }; - 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */; }; - 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */; }; - 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */; }; - 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */; }; - 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8661FD6B4F400EE1A4E /* Command.swift */; }; - 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; - 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; - 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; - 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */; }; - 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */; }; - 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; - 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */; }; - 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */; }; - 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */; }; - 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */; }; - 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */; }; - 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */; }; - 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */; }; - 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */; }; - 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */; }; - 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */; }; - 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */; }; - 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */; }; - 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */; }; - 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */; }; - 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */; }; - 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; - 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */; }; - 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */; }; - 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */; }; - 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */; }; - 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */; }; - 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498ED1F7A8380005477EC /* MeRequest.swift */; }; - 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */; }; - 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */; }; - 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */; }; - 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F12059B6F60067157B /* VideoInfo.swift */; }; - 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */; }; - 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E102049C7340072CD23 /* SENavigationController.swift */; }; - 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; - 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */; }; - 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */; }; - 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80307E431FD75DC0006AD9EF /* VoiceOver.strings */; }; - 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */; }; - 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 803782B61FB4751D00DED049 /* RealmTestCase.swift */; }; - 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */; }; - 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C0412028C7EF007E21FA /* ReactorListView.swift */; }; - 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8041C0432028C828007E21FA /* ReactorListView.xib */; }; - 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */; }; - 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */; }; - 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; - 804273DD204EBD51006DF420 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; - 804273DE204EBD51006DF420 /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; - 804273DF204EBD51006DF420 /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; - 804273E0204EBD51006DF420 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; - 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; - 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; - 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */; }; - 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */; }; - 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC341FFC03380033151B /* CustomEmojiManager.swift */; }; - 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC361FFC08870033151B /* CustomEmoji.swift */; }; - 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */; }; - 806401311FB09DE800990572 /* Permission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401301FB09DE800990572 /* Permission.swift */; }; - 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401321FB09EC400990572 /* PermissionModelMapping.swift */; }; - 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401341FB09F8A00990572 /* PermissionManager.swift */; }; - 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 806465EB1FED19B9001F27DB /* EmojiView.xib */; }; - 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806465ED1FED1AFE001F27DB /* EmojiView.swift */; }; - 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */; }; - 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FE20079734009FE94D /* DeleteMessageRequest.swift */; }; - 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */; }; - 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */; }; - 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */; }; - 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; - 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8069D26D1FFF876D00C75926 /* Emoji.swift */; }; - 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */; }; - 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */; }; - 806DB94320687697004ED8ED /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; - 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; - 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */; }; - 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */; }; - 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */; }; - 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */; }; - 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371991F94E83600D53ADF /* SocketError.swift */; }; - 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719B1F963FA400D53ADF /* APITestCase.swift */; }; - 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */; }; - 807371A01F96937100D53ADF /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719F1F96937100D53ADF /* LoginService.swift */; }; - 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */; }; - 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */; }; - 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9920484A6000114F28 /* SEStore.swift */; }; - 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; - 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; - 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; - 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */; }; - 8076FDA42048533000114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; - 8076FDA52048534200114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; - 8076FDA62048536800114F28 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; - 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA8204853DE00114F28 /* RealmExecute.swift */; }; - 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */; }; - 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */; }; - 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */; }; - 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */; }; - 8076FDB3204856E200114F28 /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; - 8076FDB52048571200114F28 /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; - 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; - 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */; }; - 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; - 8076FDBD2048598100114F28 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; - 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */; }; - 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; - 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC62048632300114F28 /* SubscriptionQueries.swift */; }; - 8076FDC82048639700114F28 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; - 8076FDC9204863AF00114F28 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; - 8076FDCA204863B900114F28 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; - 8076FDCB204863C500114F28 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; - 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; - 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; - 8076FDCE2048642400114F28 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; - 8076FDD12048646500114F28 /* MessageReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD02048646500114F28 /* MessageReply.swift */; }; - 8076FDD22048648D00114F28 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; - 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; - 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD5204864E700114F28 /* UserQueries.swift */; }; - 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD72048654F00114F28 /* UserUtils.swift */; }; - 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD920489F5900114F28 /* SEViewController.swift */; }; - 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */; }; - 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */; }; - 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; - 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; - 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDEC2049A5F600114F28 /* SECellModel.swift */; }; - 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */; }; - 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */; }; - 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */; }; - 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */; }; - 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0520751ED1006B600E /* SpotlightClient.swift */; }; - 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0720751EDB006B600E /* SpotlightRequest.swift */; }; - 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */; }; - 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */; }; - 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C11207522EF006B600E /* LoginServicesRequest.swift */; }; - 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53C2044B49800E21429 /* Emojione+Transform.swift */; }; - 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */; }; - 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */; }; - 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 807FB55C2046E7DD00E21429 /* Main.storyboard */; }; - 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB568204729E500E21429 /* SEServersViewController.swift */; }; - 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */; }; - 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 807FB57120472B6A00E21429 /* Localizable.strings */; }; - 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB581204837AF00E21429 /* SEServersViewModel.swift */; }; - 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */; }; - 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; - 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */; }; - 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792371FB14B3300EFE77F /* PermissionSpec.swift */; }; - 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; - 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; - 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; - 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; - 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; - 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB5204EEF1E00C41435 /* SelectServer.swift */; }; - 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB8204EFBCC00C41435 /* SENavigation.swift */; }; - 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */; }; - 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABE204F36F200C41435 /* SESearchState.swift */; }; - 80977AC2204F37C200C41435 /* SEState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC1204F37C200C41435 /* SEState.swift */; }; - 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */; }; - 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */; }; - 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */; }; - 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530F1FE2F17D00833DD2 /* ReactionView.swift */; }; - 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53111FE2F2F900833DD2 /* ReactionView.xib */; }; - 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53131FE3294400833DD2 /* ReactionListView.xib */; }; - 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; - 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; - 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; - 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */; }; - 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */; }; - 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */; }; - 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */; }; - 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */; }; - 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */; }; - 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */; }; - 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C561F71D2E400FE5AC4 /* APISpec.swift */; }; - 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */; }; - 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */; }; - 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */; }; - 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */; }; - 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */; }; - 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */; }; - 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80CFB5711F8D697100FC9715 /* ReplyView.xib */; }; - 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */; }; - 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */; }; - 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE5F205016B40056B17F /* SEServerCell.swift */; }; - 80D0CE62205023710056B17F /* SECell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE61205023710056B17F /* SECell.swift */; }; - 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE63205034280056B17F /* SEServerCellModel.swift */; }; - 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6520503C860056B17F /* SERoomCell.swift */; }; - 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE6720503C970056B17F /* SERoomCell.xib */; }; - 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */; }; - 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; - 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6E20509C100056B17F /* SEAvatarView.swift */; }; - 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE7020509C230056B17F /* SEAvatarView.xib */; }; - 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; - 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; - 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; - 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; - 80D5637220592D32008896D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80D5637120592D32008896D6 /* Assets.xcassets */; }; - 80D563752059325A008896D6 /* MimeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D563742059325A008896D6 /* MimeType.swift */; }; - 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5637620593533008896D6 /* ParseItemProviders.swift */; }; - 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D955C1202154A300E3F281 /* CASViewController.swift */; }; - 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; - 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; - 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */ = {isa = PBXBuildFile; fileRef = 80DC9A6F206BAC8B00032BE0 /* mimetype.json */; }; - 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */; }; - 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */; }; - 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */; }; - 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; - 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */; }; - 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */; }; - 80FA9066205313E20069038F /* SEContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9065205313E20069038F /* SEContent.swift */; }; - 80FA9068205314040069038F /* SEServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9067205314040069038F /* SEServer.swift */; }; - 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906920569F890069038F /* SEComposeFileCell.swift */; }; - 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA906B20569FA10069038F /* SEComposeFileCell.xib */; }; - 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */; }; - 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */; }; - 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90712056C1190069038F /* SEComposeTextCell.swift */; }; - 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA90732056C1350069038F /* SEComposeTextCell.xib */; }; - 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */; }; - 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */; }; - 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA907C2057F4650069038F /* SubmitContent.swift */; }; - 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FE8DED206584EA0099170E /* SEFileDetailView.xib */; }; - 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FE8DEF206587510099170E /* SEFileDetailView.swift */; }; - 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */; }; - 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */; }; - 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */; }; - 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */; }; - 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */; }; - 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D21F8CF08100233561 /* FormTableViewCell.swift */; }; - 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */; }; - 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */; }; - 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */; }; - 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */; }; - 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */; }; - 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */; }; - 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */; }; - 992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */; }; - 992B5AB8209A2890009C8123 /* SubscriptionFilesRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */; }; - 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */; }; - 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */; }; - 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */; }; - 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */; }; - 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */; }; - 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */; }; - 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */; }; - 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */; }; - 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */; }; - 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */; }; - 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */; }; - 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */; }; - 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */; }; - 9987B5962093E4BA007D277C /* FilesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B5952093E4BA007D277C /* FilesListViewController.swift */; }; - 9987B5992093E526007D277C /* FileTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B5972093E523007D277C /* FileTableViewCell.swift */; }; - 9987B59A2093E526007D277C /* FileTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9987B5982093E524007D277C /* FileTableViewCell.xib */; }; - 9987B59C2093E60D007D277C /* SubscriptionFilesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */; }; - 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */; }; - 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */; }; - 999F25B5207EEB0C002E0F68 /* FileModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */; }; - 999F25B7207EEE70002E0F68 /* (null) in Sources */ = {isa = PBXBuildFile; }; - 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */; }; - 99C577EE207E4F1500CE9B4D /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C577ED207E4F1500CE9B4D /* File.swift */; }; - 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */; }; - 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888FA204623A900E51306 /* UpdateUserRequest.swift */; }; - 99DBB872208FF6FE00382DB2 /* SearchMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */; }; - 99DBB8742090360600382DB2 /* MessagesListControllerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */; }; - 99DBB87620903A7F00382DB2 /* SearchMessagesRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */; }; - 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */; }; - 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */; }; - A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */; }; - AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */; }; - B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */; }; - B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */; }; - D10E9C1A1F643457007F1796 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; - D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */; }; - D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */; }; - D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C211F643616007F1796 /* MentionModelMapping.swift */; }; - D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */; }; - D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */; }; - D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */; }; - D15C83861F70991F001AB155 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; - D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */; }; - D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675EB1F716A0D00406FB4 /* LoginRequest.swift */; }; - D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */; }; - D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */; }; - D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */; }; - D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */; }; - D1D535EC1F7081FA006625D2 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; - D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; - D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535F01F70864C006625D2 /* InfoRequest.swift */; }; - D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */; }; - D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */; }; - D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28221DFD86C300D6019C /* LauncherProtocol.swift */; }; - D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */; }; - D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */; }; + 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */; }; + 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */; }; + 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */; }; + 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */; }; + 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */; }; + 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */; }; + 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */; }; + 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */; }; + 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */; }; + 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */; }; + 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */; }; + 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */; }; + 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */; }; + 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 140A95E0202F526C003FD564 /* Drawing.storyboard */; }; + 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E3202F536D003FD564 /* DrawingViewController.swift */; }; + 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */; }; + 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */; }; + 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1435BFA21F9B601600FB2768 /* RCTextView.swift */; }; + 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14A6A83020421DF8008C210D /* ColorPickerView.swift */; }; + 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */; }; + 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */; }; + 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */; }; + 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A213202E5CBD00175FDC /* Black-29@3x.png */; }; + 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A216202E5CBE00175FDC /* Black-76@2x.png */; }; + 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A217202E5CBE00175FDC /* Black-60@3x.png */; }; + 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A218202E5CBE00175FDC /* Black-60@2x.png */; }; + 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A219202E5CBE00175FDC /* Black-29@2x.png */; }; + 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */; }; + 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */; }; + 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */; }; + 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */; }; + 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A22F202E5D0400175FDC /* Red-60@3x.png */; }; + 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A230202E5D0400175FDC /* Red-29@3x.png */; }; + 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A232202E5D0400175FDC /* Red-29@2x.png */; }; + 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A233202E5D0400175FDC /* Red-76@2x.png */; }; + 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A234202E5D0400175FDC /* Red-60@2x.png */; }; + 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A235202E5D0500175FDC /* Red-40@3x.png */; }; + 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A236202E5D0500175FDC /* Red-40@2x.png */; }; + 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */; }; + 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A238202E5D0600175FDC /* Red-76@3x.png */; }; + 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */; }; + 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24C202E64B100175FDC /* BnW-40@3x.png */; }; + 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24D202E64B100175FDC /* BnW-29@2x.png */; }; + 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24E202E64B100175FDC /* BnW-60@2x.png */; }; + 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A24F202E64B100175FDC /* BnW-60@3x.png */; }; + 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A250202E64B100175FDC /* BnW-29@3x.png */; }; + 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A251202E64B100175FDC /* BnW-76@2x.png */; }; + 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A252202E64B100175FDC /* BnW-40@2x.png */; }; + 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A254202E64B200175FDC /* BnW-76@3x.png */; }; + 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A263202E653D00175FDC /* Grey-40@2x.png */; }; + 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A264202E653D00175FDC /* Grey-29@2x.png */; }; + 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A265202E653D00175FDC /* Grey-76@3x.png */; }; + 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */; }; + 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A267202E653D00175FDC /* Grey-76@2x.png */; }; + 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A268202E653E00175FDC /* Grey-40@3x.png */; }; + 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A269202E653E00175FDC /* Grey-29@3x.png */; }; + 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26A202E653E00175FDC /* Grey-60@3x.png */; }; + 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A26B202E653E00175FDC /* Grey-60@2x.png */; }; + 14F8A280202E659000175FDC /* White-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A277202E658E00175FDC /* White-76@2x.png */; }; + 14F8A281202E659000175FDC /* White-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A278202E658E00175FDC /* White-40@3x.png */; }; + 14F8A282202E659000175FDC /* White-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A279202E658E00175FDC /* White-76@3x.png */; }; + 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27A202E658F00175FDC /* White-83.5@2x.png */; }; + 14F8A284202E659000175FDC /* White-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27B202E658F00175FDC /* White-60@2x.png */; }; + 14F8A285202E659000175FDC /* White-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27C202E658F00175FDC /* White-29@3x.png */; }; + 14F8A286202E659000175FDC /* White-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27D202E658F00175FDC /* White-29@2x.png */; }; + 14F8A287202E659000175FDC /* White-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27E202E658F00175FDC /* White-40@2x.png */; }; + 14F8A288202E659000175FDC /* White-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A27F202E658F00175FDC /* White-60@3x.png */; }; + 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A289202E65C500175FDC /* Blue-29@3x.png */; }; + 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28A202E65C600175FDC /* Blue-60@2x.png */; }; + 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28B202E65C600175FDC /* Blue-60@3x.png */; }; + 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28C202E65C600175FDC /* Blue-76@3x.png */; }; + 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */; }; + 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28E202E65C600175FDC /* Blue-40@2x.png */; }; + 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A28F202E65C700175FDC /* Blue-29@2x.png */; }; + 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A290202E65C700175FDC /* Blue-40@3x.png */; }; + 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14F8A291202E65C700175FDC /* Blue-76@2x.png */; }; + 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */; }; + 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */; }; + 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */; }; + 330888B42099094400D44D4E /* ThemeableViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330888B32099094400D44D4E /* ThemeableViews.swift */; }; + 330888B6209909F600D44D4E /* ThemeableViewControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */; }; + 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */; }; + 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */; }; + 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */; }; + 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */; }; + 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */; }; + 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */; }; + 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */; }; + 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */; }; + 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 333207FE20766E4F00AD3290 /* NotificationViewController.xib */; }; + 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */; }; + 33419D792099170A00D1682A /* ThemeManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33419D782099170A00D1682A /* ThemeManagerSpec.swift */; }; + 33419D7B2099B7B900D1682A /* ThemeableSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */; }; + 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */; }; + 3353DBF8206787E500738D1C /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3353DBF7206787E500738D1C /* Theme.swift */; }; + 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335F4F02207A31D3005E14AF /* NotificationManager.swift */; }; + 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8B920926E5700EEA225 /* ChatView.swift */; }; + 3370D8BC2093570D00EEA225 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BB2093570D00EEA225 /* ThemeManager.swift */; }; + 3370D8BE2095978800EEA225 /* UserActionSheetPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */; }; + 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */; }; + 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C12095995800EEA225 /* StarMessageRequest.swift */; }; + 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */; }; + 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */; }; + 3370D8CE2096261F00EEA225 /* NotThemeableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */; }; + 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */; }; + 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */; }; + 3370D8D620977D8600EEA225 /* ThemePreferenceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */; }; + 3370D8D820977E9C00EEA225 /* ThemePreferenceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */; }; + 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339B6929205042D300F97392 /* KeyboardFrameView.swift */; }; + 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9BD206A561400FE1C8F /* emojiNames.json */; }; + 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C1206A565800FE1C8F /* symbols.json */; }; + 33A5C9CB206A565800FE1C8F /* travel.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C2206A565800FE1C8F /* travel.json */; }; + 33A5C9CC206A565800FE1C8F /* regional.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C3206A565800FE1C8F /* regional.json */; }; + 33A5C9CD206A565800FE1C8F /* flags.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C4206A565800FE1C8F /* flags.json */; }; + 33A5C9CE206A565800FE1C8F /* people.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C5206A565800FE1C8F /* people.json */; }; + 33A5C9CF206A565800FE1C8F /* objects.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C6206A565800FE1C8F /* objects.json */; }; + 33A5C9D0206A565800FE1C8F /* food.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C7206A565800FE1C8F /* food.json */; }; + 33A5C9D1206A565800FE1C8F /* activity.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C8206A565800FE1C8F /* activity.json */; }; + 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; + 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; + 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */; }; + 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; + 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; + 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; + 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; + 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; + 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */; }; + 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */; }; + 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */; }; + 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */; }; + 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */; }; + 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */; }; + 4100B2842087779D00E2883A /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; + 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF001F8D0A1700F67E89 /* AppManager.swift */; }; + 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */; }; + 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B51F680DB00019854B /* NetworkCoordinator.swift */; }; + 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411119B71F6825C30019854B /* NetworkManagerSpec.swift */; }; + 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */; }; + 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; + 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */; }; + 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */; }; + 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4102E3A91E532323004BAA82 /* Preferences.storyboard */; }; + 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */; }; + 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */; }; + 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */; }; + 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */; }; + 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */; }; + 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */; }; + 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */; }; + 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */; }; + 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */; }; + 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */; }; + 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */; }; + 4129937E208E25C200E12C49 /* (null) in Sources */ = {isa = PBXBuildFile; }; + 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */; }; + 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */; }; + 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */; }; + 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */; }; + 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; + 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */; }; + 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */; }; + 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412EF3C52050507C001689A3 /* ReusableViewText.xib */; }; + 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; + 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */; }; + 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */; }; + 413996171F3B44500075F96E /* UploadHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 413996161F3B44500075F96E /* UploadHelper.swift */; }; + 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */; }; + 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */; }; + 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */; }; + 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */; }; + 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; + 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C8E1F2A116900790EA7 /* ServerManager.swift */; }; + 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */; }; + 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF51D46320F00093E10 /* ResponseMessage.swift */; }; + 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FF91D46395400093E10 /* SocketManager.swift */; }; + 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414A1FFB1D46395900093E10 /* SocketResponse.swift */; }; + 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */; }; + 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; + 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */; }; + 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */; }; + 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */; }; + 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */; }; + 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */; }; + 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */; }; + 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */; }; + 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */; }; + 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */; }; + 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */; }; + 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4153E80420504BE700FBC26B /* ReusableViewText.swift */; }; + 41552F661D30308C0081438D /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; + 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F671D3035D80081438D /* SocketManagerSpec.swift */; }; + 4159720C1D3DB854002258F4 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; + 4159720E1D3DB882002258F4 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; + 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */; }; + 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */; }; + 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */; }; + 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */; }; + 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */; }; + 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133391D46E0A200E09DA2 /* AuthSpec.swift */; }; + 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333B1D46E32F00E09DA2 /* UserSpec.swift */; }; + 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */; }; + 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */; }; + 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */; }; + 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; + 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */; }; + 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1521D651A8800AAAE49 /* UserManager.swift */; }; + 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */; }; + 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */; }; + 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */; }; + 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */; }; + 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB121D2D99960086DAC8 /* BaseViewController.swift */; }; + 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */; }; + 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */; }; + 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; + 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */; }; + 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */; }; + 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */; }; + 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 41833F4D1DEF16B600E54655 /* Keys.plist */; }; + 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */; }; + 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */; }; + 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */; }; + 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */; }; + 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */; }; + 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */; }; + 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */; }; + 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */; }; + 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */; }; + 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; + 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419205481D52EDE6004EEC5F /* UILabelExtension.swift */; }; + 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */; }; + 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; + 4199A9891DABCC570035F820 /* Emojione.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4199A9881DABCC570035F820 /* Emojione.swift */; }; + 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */; }; + 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */; }; + 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */; }; + 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */; }; + 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */; }; + 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA31F3CA21A005F224B /* DownloadManager.swift */; }; + 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */; }; + 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */; }; + 41A79C0F1D2F085F00A1968E /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; + 41A79C131D2F09F200A1968E /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; + 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; + 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */; }; + 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */; }; + 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */; }; + 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */; }; + 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD481E9DBB100007A458 /* LoaderView.swift */; }; + 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */; }; + 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */; }; + 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; + 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C61FBF0F9D000510B7 /* WindowManager.swift */; }; + 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */; }; + 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96361207E48260068F1A6 /* MessageTextValidator.swift */; }; + 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */; }; + 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */; }; + 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; + 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */; }; + 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */; }; + 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C275DE1D848005003C88CF /* AvatarView.swift */; }; + 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41C275E01D84815C003C88CF /* AvatarView.xib */; }; + 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */; }; + 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */; }; + 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */; }; + 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */; }; + 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */; }; + 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */; }; + 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */; }; + 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */; }; + 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */; }; + 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */; }; + 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D7CA861E644E47000F38EA /* MessageExtensions.swift */; }; + 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */; }; + 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */; }; + 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */; }; + 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; + 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; + 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1C1D38471700896FC0 /* MessageManager.swift */; }; + 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */; }; + 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */; }; + 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */; }; + 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */; }; + 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */; }; + 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */; }; + 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76E91D2C50710028DBF8 /* Assets.xcassets */; }; + 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */; }; + 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */; }; + 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2F9FE1D414DE800238DFD /* Chat.storyboard */; }; + 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */; }; + 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */; }; + 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E2FA061D41513C00238DFD /* ChatViewController.swift */; }; + 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */; }; + 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */; }; + 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */; }; + 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */; }; + 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */; }; + 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */; }; + 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 41EB22381E5F056600AA3AE7 /* Localizable.strings */; }; + 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */; }; + 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */; }; + 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */; }; + 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */; }; + 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */; }; + 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; + 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */; }; + 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */; }; + 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; + 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA31E3708B10041C5C5 /* PushManager.swift */; }; + 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */; }; + 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */; }; + 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4141F852B720074B2F4 /* SelectField.swift */; }; + 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7798B4181F852D670074B2F4 /* CustomField.swift */; }; + 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77BA81501F87C4CB00F295F4 /* TextField.swift */; }; + 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261241F97445300724A1F /* AuthSettingsSpec.swift */; }; + 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */; }; + 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C261291F97453600724A1F /* CustomFieldsSpec.swift */; }; + 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */; }; + 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77C2612B1F97453600724A1F /* TextFieldSpec.swift */; }; + 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */; }; + 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */; }; + 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; + 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */; }; + 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */; }; + 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; + 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */; }; + 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */; }; + 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; + 800640F72049BA25006D990F /* SEScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800640F62049BA25006D990F /* SEScene.swift */; }; + 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */; }; + 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */; }; + 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800F38EC2019492D0005CB78 /* DeepLink.swift */; }; + 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */; }; + 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */; }; + 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */; }; + 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */; }; + 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */; }; + 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */; }; + 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800FCD491F728E6A00D9A692 /* MemberCell.swift */; }; + 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */; }; + 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */; }; + 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */; }; + 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */; }; + 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8661FD6B4F400EE1A4E /* Command.swift */; }; + 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; + 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; + 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; + 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */; }; + 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */; }; + 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; + 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */; }; + 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */; }; + 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */; }; + 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */; }; + 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */; }; + 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */; }; + 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */; }; + 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */; }; + 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */; }; + 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */; }; + 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */; }; + 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */; }; + 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */; }; + 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */; }; + 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */; }; + 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; + 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */; }; + 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */; }; + 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */; }; + 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */; }; + 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */; }; + 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498ED1F7A8380005477EC /* MeRequest.swift */; }; + 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */; }; + 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */; }; + 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */; }; + 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F12059B6F60067157B /* VideoInfo.swift */; }; + 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */; }; + 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E102049C7340072CD23 /* SENavigationController.swift */; }; + 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; + 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */; }; + 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */; }; + 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */ = {isa = PBXBuildFile; fileRef = 80307E431FD75DC0006AD9EF /* VoiceOver.strings */; }; + 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */; }; + 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 803782B61FB4751D00DED049 /* RealmTestCase.swift */; }; + 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */; }; + 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C0412028C7EF007E21FA /* ReactorListView.swift */; }; + 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8041C0432028C828007E21FA /* ReactorListView.xib */; }; + 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */; }; + 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */; }; + 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 802A4E23204D730F0072CD23 /* AppGroup.swift */; }; + 804273DD204EBD51006DF420 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; + 804273DE204EBD51006DF420 /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */; }; + 804273DF204EBD51006DF420 /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8691FD6B59900EE1A4E /* APIError.swift */; }; + 804273E0204EBD51006DF420 /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8681FD6B59900EE1A4E /* Version.swift */; }; + 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; + 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; + 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */; }; + 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */; }; + 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC341FFC03380033151B /* CustomEmojiManager.swift */; }; + 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC361FFC08870033151B /* CustomEmoji.swift */; }; + 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */; }; + 806401311FB09DE800990572 /* Permission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401301FB09DE800990572 /* Permission.swift */; }; + 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401321FB09EC400990572 /* PermissionModelMapping.swift */; }; + 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806401341FB09F8A00990572 /* PermissionManager.swift */; }; + 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 806465EB1FED19B9001F27DB /* EmojiView.xib */; }; + 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806465ED1FED1AFE001F27DB /* EmojiView.swift */; }; + 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */; }; + 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806728FE20079734009FE94D /* DeleteMessageRequest.swift */; }; + 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */; }; + 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */; }; + 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */; }; + 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; + 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8069D26D1FFF876D00C75926 /* Emoji.swift */; }; + 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */; }; + 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */; }; + 806DB94320687697004ED8ED /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; + 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; + 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */; }; + 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */; }; + 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */; }; + 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */; }; + 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371991F94E83600D53ADF /* SocketError.swift */; }; + 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719B1F963FA400D53ADF /* APITestCase.swift */; }; + 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */; }; + 807371A01F96937100D53ADF /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8073719F1F96937100D53ADF /* LoginService.swift */; }; + 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */; }; + 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */; }; + 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9920484A6000114F28 /* SEStore.swift */; }; + 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */; }; + 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */; }; + 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41552F651D30308C0081438D /* AuthManager.swift */; }; + 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */; }; + 8076FDA42048533000114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; + 8076FDA52048534200114F28 /* String+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA32048533000114F28 /* String+Random.swift */; }; + 8076FDA62048536800114F28 /* BaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4112DC551FFFB9B1005995E1 /* BaseModel.swift */; }; + 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDA8204853DE00114F28 /* RealmExecute.swift */; }; + 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */; }; + 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */; }; + 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */; }; + 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */; }; + 8076FDB3204856E200114F28 /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C121D2F09F200A1968E /* Auth.swift */; }; + 8076FDB52048571200114F28 /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; + 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; + 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */; }; + 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41BAE3E61D71B26C00C2445A /* URLExtension.swift */; }; + 8076FDBD2048598100114F28 /* Subscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DAE93D1D318F350098E068 /* Subscription.swift */; }; + 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */; }; + 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; + 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC62048632300114F28 /* SubscriptionQueries.swift */; }; + 8076FDC82048639700114F28 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41DC7A1A1D38454500896FC0 /* Message.swift */; }; + 8076FDC9204863AF00114F28 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; + 8076FDCA204863B900114F28 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; + 8076FDCB204863C500114F28 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41900C261D9FE35400308EF4 /* Attachment.swift */; }; + 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EFF911E54FE69004F001F /* AuthExtensions.swift */; }; + 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */; }; + 8076FDCE2048642400114F28 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A79C0E1D2F085F00A1968E /* User.swift */; }; + 8076FDD12048646500114F28 /* MessageReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD02048646500114F28 /* MessageReply.swift */; }; + 8076FDD22048648D00114F28 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; + 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; + 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD5204864E700114F28 /* UserQueries.swift */; }; + 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD72048654F00114F28 /* UserUtils.swift */; }; + 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDD920489F5900114F28 /* SEViewController.swift */; }; + 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */; }; + 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */; }; + 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; + 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */; }; + 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDEC2049A5F600114F28 /* SECellModel.swift */; }; + 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */; }; + 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */; }; + 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */; }; + 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */; }; + 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0520751ED1006B600E /* SpotlightClient.swift */; }; + 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0720751EDB006B600E /* SpotlightRequest.swift */; }; + 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */; }; + 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */; }; + 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807C7C11207522EF006B600E /* LoginServicesRequest.swift */; }; + 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53C2044B49800E21429 /* Emojione+Transform.swift */; }; + 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */; }; + 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */; }; + 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 807FB55C2046E7DD00E21429 /* Main.storyboard */; }; + 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB568204729E500E21429 /* SEServersViewController.swift */; }; + 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */; }; + 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 807FB57120472B6A00E21429 /* Localizable.strings */; }; + 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 807FB581204837AF00E21429 /* SEServersViewModel.swift */; }; + 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */; }; + 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8067DAA5206D1883005E3369 /* APIResource.swift */; }; + 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */; }; + 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 808792371FB14B3300EFE77F /* PermissionSpec.swift */; }; + 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */; }; + 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */; }; + 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */; }; + 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */; }; + 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597ECBA11E3708A50041C5C5 /* DataExtension.swift */; }; + 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB5204EEF1E00C41435 /* SelectServer.swift */; }; + 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AB8204EFBCC00C41435 /* SENavigation.swift */; }; + 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */; }; + 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977ABE204F36F200C41435 /* SESearchState.swift */; }; + 80977AC2204F37C200C41435 /* SEState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC1204F37C200C41435 /* SEState.swift */; }; + 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */; }; + 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */; }; + 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */; }; + 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B530F1FE2F17D00833DD2 /* ReactionView.swift */; }; + 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53111FE2F2F900833DD2 /* ReactionView.xib */; }; + 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 809B53131FE3294400833DD2 /* ReactionListView.xib */; }; + 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */; }; + 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; + 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */; }; + 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */; }; + 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */; }; + 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */; }; + 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */; }; + 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */; }; + 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */; }; + 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */; }; + 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A63C561F71D2E400FE5AC4 /* APISpec.swift */; }; + 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */; }; + 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */; }; + 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */; }; + 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */; }; + 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */; }; + 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */; }; + 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80CFB5711F8D697100FC9715 /* ReplyView.xib */; }; + 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */; }; + 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */; }; + 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE5F205016B40056B17F /* SEServerCell.swift */; }; + 80D0CE62205023710056B17F /* SECell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE61205023710056B17F /* SECell.swift */; }; + 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE63205034280056B17F /* SEServerCellModel.swift */; }; + 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6520503C860056B17F /* SERoomCell.swift */; }; + 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE6720503C970056B17F /* SERoomCell.xib */; }; + 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */; }; + 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */; }; + 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D0CE6E20509C100056B17F /* SEAvatarView.swift */; }; + 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80D0CE7020509C230056B17F /* SEAvatarView.xib */; }; + 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */; }; + 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */; }; + 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */; }; + 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8076FDB42048571200114F28 /* AuthUser.swift */; }; + 80D5637220592D32008896D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 80D5637120592D32008896D6 /* Assets.xcassets */; }; + 80D563752059325A008896D6 /* MimeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D563742059325A008896D6 /* MimeType.swift */; }; + 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D5637620593533008896D6 /* ParseItemProviders.swift */; }; + 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D955C1202154A300E3F281 /* CASViewController.swift */; }; + 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; + 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80DC9A6B206BA95600032BE0 /* Localized.swift */; }; + 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */ = {isa = PBXBuildFile; fileRef = 80DC9A6F206BAC8B00032BE0 /* mimetype.json */; }; + 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */; }; + 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */; }; + 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */; }; + 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41494B911D63C6280004F369 /* UIImageExtension.swift */; }; + 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */; }; + 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */; }; + 80FA9066205313E20069038F /* SEContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9065205313E20069038F /* SEContent.swift */; }; + 80FA9068205314040069038F /* SEServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA9067205314040069038F /* SEServer.swift */; }; + 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906920569F890069038F /* SEComposeFileCell.swift */; }; + 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA906B20569FA10069038F /* SEComposeFileCell.xib */; }; + 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */; }; + 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */; }; + 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90712056C1190069038F /* SEComposeTextCell.swift */; }; + 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FA90732056C1350069038F /* SEComposeTextCell.xib */; }; + 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */; }; + 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */; }; + 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FA907C2057F4650069038F /* SubmitContent.swift */; }; + 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 80FE8DED206584EA0099170E /* SEFileDetailView.xib */; }; + 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80FE8DEF206587510099170E /* SEFileDetailView.swift */; }; + 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */; }; + 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */; }; + 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */; }; + 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */; }; + 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */; }; + 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897083D21F8CF08100233561 /* FormTableViewCell.swift */; }; + 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */; }; + 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */; }; + 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */; }; + 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */; }; + 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */; }; + 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */; }; + 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */; }; + 992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */; }; + 992B5AB8209A2890009C8123 /* SubscriptionFilesRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */; }; + 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */; }; + 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */; }; + 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */; }; + 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */; }; + 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */; }; + 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */; }; + 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */; }; + 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */; }; + 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */; }; + 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */; }; + 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */; }; + 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */; }; + 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */; }; + 9987B5962093E4BA007D277C /* FilesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B5952093E4BA007D277C /* FilesListViewController.swift */; }; + 9987B5992093E526007D277C /* FileTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B5972093E523007D277C /* FileTableViewCell.swift */; }; + 9987B59A2093E526007D277C /* FileTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9987B5982093E524007D277C /* FileTableViewCell.xib */; }; + 9987B59C2093E60D007D277C /* SubscriptionFilesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */; }; + 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */; }; + 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */; }; + 999F25B5207EEB0C002E0F68 /* FileModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */; }; + 999F25B7207EEE70002E0F68 /* (null) in Sources */ = {isa = PBXBuildFile; }; + 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */; }; + 99C577EE207E4F1500CE9B4D /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C577ED207E4F1500CE9B4D /* File.swift */; }; + 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */; }; + 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888FA204623A900E51306 /* UpdateUserRequest.swift */; }; + 99DBB872208FF6FE00382DB2 /* SearchMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */; }; + 99DBB8742090360600382DB2 /* MessagesListControllerSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */; }; + 99DBB87620903A7F00382DB2 /* SearchMessagesRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */; }; + 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */; }; + 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */; }; + A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */; }; + AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */; }; + B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */; }; + B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */; }; + D10E9C1A1F643457007F1796 /* Channel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C191F643457007F1796 /* Channel.swift */; }; + D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */; }; + D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */; }; + D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D10E9C211F643616007F1796 /* MentionModelMapping.swift */; }; + D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */; }; + D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */; }; + D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */; }; + D15C83861F70991F001AB155 /* APIResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15C83851F70991F001AB155 /* APIResponse.swift */; }; + D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */; }; + D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675EB1F716A0D00406FB4 /* LoginRequest.swift */; }; + D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */; }; + D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */; }; + D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */; }; + D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */; }; + D1D535EC1F7081FA006625D2 /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535EB1F7081FA006625D2 /* API.swift */; }; + D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535ED1F708628006625D2 /* APIRequest.swift */; }; + D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D535F01F70864C006625D2 /* InfoRequest.swift */; }; + D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */; }; + D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */; }; + D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28221DFD86C300D6019C /* LauncherProtocol.swift */; }; + D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */; }; + D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; - remoteInfo = Rocket.Chat; - }; - 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; - remoteInfo = Rocket.Chat; - }; - 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 807FB5572046E7DD00E21429; - remoteInfo = Rocket.Chat.ShareExtension; - }; + 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; + remoteInfo = Rocket.Chat; + }; + 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 41DF76DE1D2C50710028DBF8; + remoteInfo = Rocket.Chat; + }; + 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 41DF76D71D2C50710028DBF8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 807FB5572046E7DD00E21429; + remoteInfo = Rocket.Chat.ShareExtension; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 807FB5672046E7DD00E21429 /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; + 807FB5672046E7DD00E21429 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 807FB5622046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewController.swift; sourceTree = ""; }; - 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModel.swift; sourceTree = ""; }; - 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconCell.swift; sourceTree = ""; }; - 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageResetCell.swift; sourceTree = ""; }; - 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewController.swift; sourceTree = ""; }; - 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModel.swift; sourceTree = ""; }; - 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewModel.swift; sourceTree = ""; }; - 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageCell.swift; sourceTree = ""; }; - 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModelSpec.swift; sourceTree = ""; }; - 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorSpec.swift; sourceTree = ""; }; - 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModel.swift; sourceTree = ""; }; - 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModelSpec.swift; sourceTree = ""; }; - 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModelSpec.swift; sourceTree = ""; }; - 140A95E0202F526C003FD564 /* Drawing.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Drawing.storyboard; sourceTree = ""; }; - 140A95E3202F536D003FD564 /* DrawingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewController.swift; sourceTree = ""; }; - 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingControllerDelegate.swift; sourceTree = ""; }; - 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCellSpec.swift; sourceTree = ""; }; - 1435BFA21F9B601600FB2768 /* RCTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTextView.swift; sourceTree = ""; }; - 1499781C1FA605CE007E013D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 14A6A83020421DF8008C210D /* ColorPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPickerView.swift; sourceTree = ""; }; - 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushWidthViewController.swift; sourceTree = ""; }; - 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushOpacityViewController.swift; sourceTree = ""; }; - 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewController.swift; sourceTree = ""; }; - 14F8A213202E5CBD00175FDC /* Black-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@3x.png"; sourceTree = ""; }; - 14F8A216202E5CBE00175FDC /* Black-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@2x.png"; sourceTree = ""; }; - 14F8A217202E5CBE00175FDC /* Black-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@3x.png"; sourceTree = ""; }; - 14F8A218202E5CBE00175FDC /* Black-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@2x.png"; sourceTree = ""; }; - 14F8A219202E5CBE00175FDC /* Black-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@2x.png"; sourceTree = ""; }; - 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-83.5@2x.png"; sourceTree = ""; }; - 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@3x.png"; sourceTree = ""; }; - 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@2x.png"; sourceTree = ""; }; - 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@3x.png"; sourceTree = ""; }; - 14F8A22F202E5D0400175FDC /* Red-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@3x.png"; sourceTree = ""; }; - 14F8A230202E5D0400175FDC /* Red-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@3x.png"; sourceTree = ""; }; - 14F8A232202E5D0400175FDC /* Red-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@2x.png"; sourceTree = ""; }; - 14F8A233202E5D0400175FDC /* Red-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@2x.png"; sourceTree = ""; }; - 14F8A234202E5D0400175FDC /* Red-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@2x.png"; sourceTree = ""; }; - 14F8A235202E5D0500175FDC /* Red-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@3x.png"; sourceTree = ""; }; - 14F8A236202E5D0500175FDC /* Red-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@2x.png"; sourceTree = ""; }; - 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-83.5@2x.png"; sourceTree = ""; }; - 14F8A238202E5D0600175FDC /* Red-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@3x.png"; sourceTree = ""; }; - 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-83.5@2x.png"; sourceTree = ""; }; - 14F8A24C202E64B100175FDC /* BnW-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@3x.png"; sourceTree = ""; }; - 14F8A24D202E64B100175FDC /* BnW-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@2x.png"; sourceTree = ""; }; - 14F8A24E202E64B100175FDC /* BnW-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@2x.png"; sourceTree = ""; }; - 14F8A24F202E64B100175FDC /* BnW-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@3x.png"; sourceTree = ""; }; - 14F8A250202E64B100175FDC /* BnW-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@3x.png"; sourceTree = ""; }; - 14F8A251202E64B100175FDC /* BnW-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@2x.png"; sourceTree = ""; }; - 14F8A252202E64B100175FDC /* BnW-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@2x.png"; sourceTree = ""; }; - 14F8A254202E64B200175FDC /* BnW-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@3x.png"; sourceTree = ""; }; - 14F8A263202E653D00175FDC /* Grey-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@2x.png"; sourceTree = ""; }; - 14F8A264202E653D00175FDC /* Grey-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@2x.png"; sourceTree = ""; }; - 14F8A265202E653D00175FDC /* Grey-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@3x.png"; sourceTree = ""; }; - 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-83.5@2x.png"; sourceTree = ""; }; - 14F8A267202E653D00175FDC /* Grey-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@2x.png"; sourceTree = ""; }; - 14F8A268202E653E00175FDC /* Grey-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@3x.png"; sourceTree = ""; }; - 14F8A269202E653E00175FDC /* Grey-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@3x.png"; sourceTree = ""; }; - 14F8A26A202E653E00175FDC /* Grey-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@3x.png"; sourceTree = ""; }; - 14F8A26B202E653E00175FDC /* Grey-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@2x.png"; sourceTree = ""; }; - 14F8A277202E658E00175FDC /* White-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@2x.png"; sourceTree = ""; }; - 14F8A278202E658E00175FDC /* White-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@3x.png"; sourceTree = ""; }; - 14F8A279202E658E00175FDC /* White-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@3x.png"; sourceTree = ""; }; - 14F8A27A202E658F00175FDC /* White-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-83.5@2x.png"; sourceTree = ""; }; - 14F8A27B202E658F00175FDC /* White-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@2x.png"; sourceTree = ""; }; - 14F8A27C202E658F00175FDC /* White-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@3x.png"; sourceTree = ""; }; - 14F8A27D202E658F00175FDC /* White-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@2x.png"; sourceTree = ""; }; - 14F8A27E202E658F00175FDC /* White-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@2x.png"; sourceTree = ""; }; - 14F8A27F202E658F00175FDC /* White-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@3x.png"; sourceTree = ""; }; - 14F8A289202E65C500175FDC /* Blue-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@3x.png"; sourceTree = ""; }; - 14F8A28A202E65C600175FDC /* Blue-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@2x.png"; sourceTree = ""; }; - 14F8A28B202E65C600175FDC /* Blue-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@3x.png"; sourceTree = ""; }; - 14F8A28C202E65C600175FDC /* Blue-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@3x.png"; sourceTree = ""; }; - 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-83.5@2x.png"; sourceTree = ""; }; - 14F8A28E202E65C600175FDC /* Blue-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@2x.png"; sourceTree = ""; }; - 14F8A28F202E65C700175FDC /* Blue-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@2x.png"; sourceTree = ""; }; - 14F8A290202E65C700175FDC /* Blue-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@3x.png"; sourceTree = ""; }; - 14F8A291202E65C700175FDC /* Blue-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@2x.png"; sourceTree = ""; }; - 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCell.swift; sourceTree = ""; }; - 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MentionsTextFieldTableViewCell.xib; sourceTree = ""; }; - 330888B32099094400D44D4E /* ThemeableViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableViews.swift; sourceTree = ""; }; - 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableViewControllers.swift; sourceTree = ""; }; - 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatNotificationSpec.swift; sourceTree = ""; }; - 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerSpec.swift; sourceTree = ""; }; - 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewControllerSpec.swift; sourceTree = ""; }; - 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerMessages.swift; sourceTree = ""; }; - 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerRooms.swift; sourceTree = ""; }; - 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerSearch.swift; sourceTree = ""; }; - 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerTyping.swift; sourceTree = ""; }; - 333207FE20766E4F00AD3290 /* NotificationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotificationViewController.xib; sourceTree = ""; }; - 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentToTouchesWindow.swift; sourceTree = ""; }; - 33419D782099170A00D1682A /* ThemeManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManagerSpec.swift; sourceTree = ""; }; - 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableSpec.swift; sourceTree = ""; }; - 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; - 3353DBF7206787E500738D1C /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; - 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; - 3370D8B920926E5700EEA225 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; }; - 3370D8BB2093570D00EEA225 /* ThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManager.swift; sourceTree = ""; }; - 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserActionSheetPresenter.swift; sourceTree = ""; }; - 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessage.swift; sourceTree = ""; }; - 3370D8C12095995800EEA225 /* StarMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequest.swift; sourceTree = ""; }; - 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequestSpec.swift; sourceTree = ""; }; - 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessageSpec.swift; sourceTree = ""; }; - 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotThemeableView.swift; sourceTree = ""; }; - 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopTransparentViewController.swift; sourceTree = ""; }; - 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceCell.swift; sourceTree = ""; }; - 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceViewModel.swift; sourceTree = ""; }; - 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceController.swift; sourceTree = ""; }; - 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; - 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; - 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; - 33A5C9C2206A565800FE1C8F /* travel.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = travel.json; sourceTree = ""; }; - 33A5C9C3206A565800FE1C8F /* regional.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = regional.json; sourceTree = ""; }; - 33A5C9C4206A565800FE1C8F /* flags.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = flags.json; sourceTree = ""; }; - 33A5C9C5206A565800FE1C8F /* people.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = people.json; sourceTree = ""; }; - 33A5C9C6206A565800FE1C8F /* objects.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = objects.json; sourceTree = ""; }; - 33A5C9C7206A565800FE1C8F /* food.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = food.json; sourceTree = ""; }; - 33A5C9C8206A565800FE1C8F /* activity.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = activity.json; sourceTree = ""; }; - 33A5C9C9206A565800FE1C8F /* nature.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = nature.json; sourceTree = ""; }; - 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatNotification.swift; sourceTree = ""; }; - 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; - 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; - 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; - 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; - 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; - 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; - 35BCD302201A9FB800B4BE5A /* AskSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AskSpec.swift; sourceTree = ""; }; - 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCDateFormatter.swift; sourceTree = ""; }; - 35D2F140200A45E800B4BE5A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertSpec.swift; sourceTree = ""; }; - 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OAuthManager.swift; sourceTree = ""; }; - 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewRoomViewController.swift; sourceTree = ""; }; - 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModel.swift; sourceTree = ""; }; - 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewControllerCustomFields.swift; sourceTree = ""; }; - 4101BF001F8D0A1700F67E89 /* AppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManager.swift; sourceTree = ""; }; - 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManagerSpec.swift; sourceTree = ""; }; - 4102E3A91E532323004BAA82 /* Preferences.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Preferences.storyboard; sourceTree = ""; }; - 411119B51F680DB00019854B /* NetworkCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkCoordinator.swift; sourceTree = ""; }; - 411119B71F6825C30019854B /* NetworkManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManagerSpec.swift; sourceTree = ""; }; - 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainChatViewController.swift; sourceTree = ""; }; - 4112DC551FFFB9B1005995E1 /* BaseModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModel.swift; sourceTree = ""; }; - 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelHandler.swift; sourceTree = ""; }; - 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelMappeable.swift; sourceTree = ""; }; - 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModelSpec.swift; sourceTree = ""; }; - 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModel.swift; sourceTree = ""; }; - 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentSpec.swift; sourceTree = ""; }; - 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManager.swift; sourceTree = ""; }; - 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManagerSpec.swift; sourceTree = ""; }; - 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadManager.swift; sourceTree = ""; }; - 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatChannelHeaderCell.swift; sourceTree = ""; }; - 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatChannelHeaderCell.xib; sourceTree = ""; }; - 412184A420472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 412184A520472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; - 412184A620472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/VoiceOver.strings; sourceTree = ""; }; - 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterUsernameViewController.swift; sourceTree = ""; }; - 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatPreviewModeView.xib; sourceTree = ""; }; - 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPreviewModeView.swift; sourceTree = ""; }; - 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageVideoView.swift; sourceTree = ""; }; - 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageVideoView.xib; sourceTree = ""; }; - 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageTextView.xib; sourceTree = ""; }; - 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextView.swift; sourceTree = ""; }; - 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorCSSColorsExtension.swift; sourceTree = ""; }; - 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageURLView.swift; sourceTree = ""; }; - 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageURLView.xib; sourceTree = ""; }; - 412EF3C52050507C001689A3 /* ReusableViewText.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReusableViewText.xib; sourceTree = ""; }; - 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = ""; }; - 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageImageView.swift; sourceTree = ""; }; - 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageImageView.xib; sourceTree = ""; }; - 413996161F3B44500075F96E /* UploadHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelper.swift; sourceTree = ""; }; - 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsPageViewController.swift; sourceTree = ""; }; - 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServersViewController.swift; sourceTree = ""; }; - 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCell.swift; sourceTree = ""; }; - 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddServerCell.swift; sourceTree = ""; }; - 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManagerSpec.swift; sourceTree = ""; }; - 41494B911D63C6280004F369 /* UIImageExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; - 41499C8E1F2A116900790EA7 /* ServerManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManager.swift; sourceTree = ""; }; - 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampCoordinator.swift; sourceTree = ""; }; - 414A1FF51D46320F00093E10 /* ResponseMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessage.swift; sourceTree = ""; }; - 414A1FF91D46395400093E10 /* SocketManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManager.swift; sourceTree = ""; }; - 414A1FFB1D46395900093E10 /* SocketResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketResponse.swift; sourceTree = ""; }; - 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewController.swift; sourceTree = ""; }; - 414EFF911E54FE69004F001F /* AuthExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthExtensions.swift; sourceTree = ""; }; - 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextCacheManager.swift; sourceTree = ""; }; - 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModelSpec.swift; sourceTree = ""; }; - 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelHandler.swift; sourceTree = ""; }; - 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelHandler.swift; sourceTree = ""; }; - 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelMapping.swift; sourceTree = ""; }; - 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageModelMapping.swift; sourceTree = ""; }; - 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttachmentModelMapping.swift; sourceTree = ""; }; - 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsModelMapping.swift; sourceTree = ""; }; - 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLModelMapping.swift; sourceTree = ""; }; - 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinatorSpec.swift; sourceTree = ""; }; - 4153E80420504BE700FBC26B /* ReusableViewText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReusableViewText.swift; sourceTree = ""; }; - 41552F651D30308C0081438D /* AuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManager.swift; sourceTree = ""; }; - 41552F671D3035D80081438D /* SocketManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManagerSpec.swift; sourceTree = ""; }; - 4159720B1D3DB854002258F4 /* Email.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Email.swift; sourceTree = ""; }; - 4159720D1D3DB882002258F4 /* Mention.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mention.swift; sourceTree = ""; }; - 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoFactorAuthenticationViewController.swift; sourceTree = ""; }; - 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; - 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCell.swift; sourceTree = ""; }; - 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageCell.xib; sourceTree = ""; }; - 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModelSpec.swift; sourceTree = ""; }; - 416133391D46E0A200E09DA2 /* AuthSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSpec.swift; sourceTree = ""; }; - 4161333B1D46E32F00E09DA2 /* UserSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserSpec.swift; sourceTree = ""; }; - 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSpec.swift; sourceTree = ""; }; - 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageSpec.swift; sourceTree = ""; }; - 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelperSpec.swift; sourceTree = ""; }; - 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManagerSpec.swift; sourceTree = ""; }; - 4162E1521D651A8800AAAE49 /* UserManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserManager.swift; sourceTree = ""; }; - 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketHandlers.swift; sourceTree = ""; }; - 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarViewSpec.swift; sourceTree = ""; }; - 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectServerViewController.swift; sourceTree = ""; }; - 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Auth.storyboard; sourceTree = ""; }; - 4174CB121D2D99960086DAC8 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; - 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseNavigationController.swift; sourceTree = ""; }; - 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthViewController.swift; sourceTree = ""; }; - 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; - 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; - 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Rocket.Chat-Bridge.h"; sourceTree = ""; }; - 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessageSpec.swift; sourceTree = ""; }; - 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoViewController.swift; sourceTree = ""; }; - 41833F4D1DEF16B600E54655 /* Keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Keys.plist; sourceTree = ""; }; - 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatControllerReplyHandler.swift; sourceTree = ""; }; - 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewControllerEmbedded.swift; sourceTree = ""; }; - 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WebViewControllerEmbedded.xib; sourceTree = ""; }; - 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageActions.swift; sourceTree = ""; }; - 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSectionView.swift; sourceTree = ""; }; - 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSectionView.xib; sourceTree = ""; }; - 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegateSpec.swift; sourceTree = ""; }; - 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegate.swift; sourceTree = ""; }; - 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegateSpec.swift; sourceTree = ""; }; - 41900C261D9FE35400308EF4 /* Attachment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Attachment.swift; sourceTree = ""; }; - 419205481D52EDE6004EEC5F /* UILabelExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UILabelExtension.swift; sourceTree = ""; }; - 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionCell.swift; sourceTree = ""; }; - 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; - 4199A9881DABCC570035F820 /* Emojione.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Emojione.swift; sourceTree = ""; }; - 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandler.swift; sourceTree = ""; }; - 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandlerSpec.swift; sourceTree = ""; }; - 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatHeaderViewStatus.xib; sourceTree = ""; }; - 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHeaderViewStatus.swift; sourceTree = ""; }; - 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerHeaderStatus.swift; sourceTree = ""; }; - 419ECCA31F3CA21A005F224B /* DownloadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; - 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerDocuments.swift; sourceTree = ""; }; - 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewControllerExtension.swift; sourceTree = ""; }; - 41A6191A1FA7065400CFFA69 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; - 41A79C0E1D2F085F00A1968E /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; - 41A79C121D2F09F200A1968E /* Auth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Auth.swift; sourceTree = ""; }; - 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettings.swift; sourceTree = ""; }; - 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionUserStatusView.xib; sourceTree = ""; }; - 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionUserStatusView.swift; sourceTree = ""; }; - 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AutocompleteCell.xib; sourceTree = ""; }; - 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutocompleteCell.swift; sourceTree = ""; }; - 41ADDD481E9DBB100007A458 /* LoaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderView.swift; sourceTree = ""; }; - 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderViewSpec.swift; sourceTree = ""; }; - 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerUploader.swift; sourceTree = ""; }; - 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIWindowExtensions.swift; sourceTree = ""; }; - 41B554C61FBF0F9D000510B7 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = ""; }; - 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewControllerTextViewDelegate.swift; sourceTree = ""; }; - 41B96361207E48260068F1A6 /* MessageTextValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidator.swift; sourceTree = ""; }; - 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidatorSpec.swift; sourceTree = ""; }; - 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManagerSpec.swift; sourceTree = ""; }; - 41BAE3E61D71B26C00C2445A /* URLExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtension.swift; sourceTree = ""; }; - 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtensionSpec.swift; sourceTree = ""; }; - 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelMapping.swift; sourceTree = ""; }; - 41C275DE1D848005003C88CF /* AvatarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarView.swift; sourceTree = ""; }; - 41C275E01D84815C003C88CF /* AvatarView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AvatarView.xib; sourceTree = ""; }; - 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataController.swift; sourceTree = ""; }; - 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatLoaderCell.xib; sourceTree = ""; }; - 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatLoaderCell.swift; sourceTree = ""; }; - 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayExtensions.swift; sourceTree = ""; }; - 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageDaySeparator.xib; sourceTree = ""; }; - 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageDaySeparator.swift; sourceTree = ""; }; - 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayout.swift; sourceTree = ""; }; - 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewExtentions.swift; sourceTree = ""; }; - 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextFontAttributes.swift; sourceTree = ""; }; - 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensions.swift; sourceTree = ""; }; - 41D7CA861E644E47000F38EA /* MessageExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageExtensions.swift; sourceTree = ""; }; - 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDirectMessageHeaderCell.swift; sourceTree = ""; }; - 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatDirectMessageHeaderCell.xib; sourceTree = ""; }; - 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionManager.swift; sourceTree = ""; }; - 41DAE93D1D318F350098E068 /* Subscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscription.swift; sourceTree = ""; }; - 41DC7A1A1D38454500896FC0 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; - 41DC7A1C1D38471700896FC0 /* MessageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManager.swift; sourceTree = ""; }; - 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManagerSpec.swift; sourceTree = ""; }; - 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensionSpec.swift; sourceTree = ""; }; - 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtensionsSpec.swift; sourceTree = ""; }; - 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSearchMoreView.xib; sourceTree = ""; }; - 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSearchMoreView.swift; sourceTree = ""; }; - 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 41DF76E91D2C50710028DBF8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 41DF76EC1D2C50720028DBF8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 41DF76EE1D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF76F91D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RocketChatUITests.swift; sourceTree = ""; }; - 41DF77041D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 41E2F9FE1D414DE800238DFD /* Chat.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Chat.storyboard; sourceTree = ""; }; - 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Subscriptions.storyboard; sourceTree = ""; }; - 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsViewController.swift; sourceTree = ""; }; - 41E2FA061D41513C00238DFD /* ChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = ""; }; - 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensionSpec.swift; sourceTree = ""; }; - 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UINibExtensions.swift; sourceTree = ""; }; - 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = ""; }; - 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthInternalExtensions.swift; sourceTree = ""; }; - 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueriesSpec.swift; sourceTree = ""; }; - 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadVideoCompression.swift; sourceTree = ""; }; - 41EB22371E5F056600AA3AE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 41EB223A1E5F057F00AA3AE7 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - 41EB223B1E5F19EB00AA3AE7 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerAutocomplete.swift; sourceTree = ""; }; - 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageCellProtocol.swift; sourceTree = ""; }; - 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerSocketConnectionHandler.swift; sourceTree = ""; }; - 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTitleView.swift; sourceTree = ""; }; - 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatTitleView.xib; sourceTree = ""; }; - 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURL.swift; sourceTree = ""; }; - 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModelSpec.swift; sourceTree = ""; }; - 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManagerSpec.swift; sourceTree = ""; }; - 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.release.xcconfig"; sourceTree = ""; }; - 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.debug.xcconfig"; sourceTree = ""; }; - 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.entitlements; sourceTree = ""; }; - 597ECBA11E3708A50041C5C5 /* DataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataExtension.swift; sourceTree = ""; }; - 597ECBA31E3708B10041C5C5 /* PushManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushManager.swift; sourceTree = ""; }; - 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; sourceTree = ""; }; - 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat_ShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLSpec.swift; sourceTree = ""; }; - 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_ChatTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegate.swift; sourceTree = ""; }; - 7798B4141F852B720074B2F4 /* SelectField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectField.swift; sourceTree = ""; }; - 7798B4181F852D670074B2F4 /* CustomField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomField.swift; sourceTree = ""; }; - 77BA81501F87C4CB00F295F4 /* TextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextField.swift; sourceTree = ""; }; - 77C261241F97445300724A1F /* AuthSettingsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsSpec.swift; sourceTree = ""; }; - 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DictionaryExtensionsSpec.swift; sourceTree = ""; }; - 77C261291F97453600724A1F /* CustomFieldsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomFieldsSpec.swift; sourceTree = ""; }; - 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectFieldSpec.swift; sourceTree = ""; }; - 77C2612B1F97453600724A1F /* TextFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldSpec.swift; sourceTree = ""; }; - 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtensions.swift; sourceTree = ""; }; - 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendMessageRequest.swift; sourceTree = ""; }; - 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClient.swift; sourceTree = ""; }; - 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClientSpec.swift; sourceTree = ""; }; - 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequest.swift; sourceTree = ""; }; - 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushTokenDeleteRequest.swift; sourceTree = ""; }; - 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushClient.swift; sourceTree = ""; }; - 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = ""; }; - 800640F62049BA25006D990F /* SEScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEScene.swift; sourceTree = ""; }; - 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListViewController.swift; sourceTree = ""; }; - 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMessagesRequest.swift; sourceTree = ""; }; - 800F38EC2019492D0005CB78 /* DeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLink.swift; sourceTree = ""; }; - 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembersListViewController.swift; sourceTree = ""; }; - 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoBasicCell.swift; sourceTree = ""; }; - 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoCellProtocol.swift; sourceTree = ""; }; - 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDescriptionCell.swift; sourceTree = ""; }; - 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDetailCell.swift; sourceTree = ""; }; - 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoUserCell.swift; sourceTree = ""; }; - 800FCD491F728E6A00D9A692 /* MemberCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberCell.swift; sourceTree = ""; }; - 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MemberCell.xib; sourceTree = ""; }; - 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewController.swift; sourceTree = ""; }; - 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayoutSpec.swift; sourceTree = ""; }; - 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensions.swift; sourceTree = ""; }; - 8013F8661FD6B4F400EE1A4E /* Command.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Command.swift; sourceTree = ""; }; - 8013F8681FD6B59900EE1A4E /* Version.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Version.swift; sourceTree = ""; }; - 8013F8691FD6B59900EE1A4E /* APIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIError.swift; sourceTree = ""; }; - 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIClient.swift; sourceTree = ""; }; - 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClient.swift; sourceTree = ""; }; - 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClient.swift; sourceTree = ""; }; - 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddleware.swift; sourceTree = ""; }; - 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddlewareSpec.swift; sourceTree = ""; }; - 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockAPI.swift; sourceTree = ""; }; - 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionSpec.swift; sourceTree = ""; }; - 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClientSpec.swift; sourceTree = ""; }; - 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClientSpec.swift; sourceTree = ""; }; - 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsRequest.swift; sourceTree = ""; }; - 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequest.swift; sourceTree = ""; }; - 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequestSpec.swift; sourceTree = ""; }; - 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandModelMapping.swift; sourceTree = ""; }; - 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushManagerSpec.swift; sourceTree = ""; }; - 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUserView.swift; sourceTree = ""; }; - 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPicker.swift; sourceTree = ""; }; - 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiPicker.xib; sourceTree = ""; }; - 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerController.swift; sourceTree = ""; }; - 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequestSpec.swift; sourceTree = ""; }; - 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPMethod.swift; sourceTree = ""; }; - 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequest.swift; sourceTree = ""; }; - 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequestSpec.swift; sourceTree = ""; }; - 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoaderTableViewCell.swift; sourceTree = ""; }; - 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoaderTableViewCell.xib; sourceTree = ""; }; - 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactionSpec.swift; sourceTree = ""; }; - 802498ED1F7A8380005477EC /* MeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequest.swift; sourceTree = ""; }; - 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequestSpec.swift; sourceTree = ""; }; - 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageAudioView.xib; sourceTree = ""; }; - 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAudioView.swift; sourceTree = ""; }; - 8029B2F12059B6F60067157B /* VideoInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoInfo.swift; sourceTree = ""; }; - 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+StatusReport.swift"; sourceTree = ""; }; - 802A4E102049C7340072CD23 /* SENavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigationController.swift; sourceTree = ""; }; - 802A4E23204D730F0072CD23 /* AppGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppGroup.swift; sourceTree = ""; }; - 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOTextField.swift; sourceTree = ""; }; - 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOLocalized.swift; sourceTree = ""; }; - 80307E421FD75DC0006AD9EF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E441FD75DCB006AD9EF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/VoiceOver.strings"; sourceTree = ""; }; - 80307E451FD75DCF006AD9EF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E461FD75DD1006AD9EF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E471FD75DD2006AD9EF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/VoiceOver.strings; sourceTree = ""; }; - 80307E481FD75DD5006AD9EF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/VoiceOver.strings; sourceTree = ""; }; - 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateMessageRequest.swift; sourceTree = ""; }; - 803782B61FB4751D00DED049 /* RealmTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmTestCase.swift; sourceTree = ""; }; - 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListViewController.swift; sourceTree = ""; }; - 8041C0412028C7EF007E21FA /* ReactorListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListView.swift; sourceTree = ""; }; - 8041C0432028C828007E21FA /* ReactorListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactorListView.xib; sourceTree = ""; }; - 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCEmojiKitLocalizable.swift; sourceTree = ""; }; - 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = RCEmojiKit.xcassets; sourceTree = ""; }; - 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewController.swift; sourceTree = ""; }; - 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEXibInitializable.swift; sourceTree = ""; }; - 805DEC341FFC03380033151B /* CustomEmojiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiManager.swift; sourceTree = ""; }; - 805DEC361FFC08870033151B /* CustomEmoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmoji.swift; sourceTree = ""; }; - 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiSpec.swift; sourceTree = ""; }; - 806401301FB09DE800990572 /* Permission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Permission.swift; sourceTree = ""; }; - 806401321FB09EC400990572 /* PermissionModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionModelMapping.swift; sourceTree = ""; }; - 806401341FB09F8A00990572 /* PermissionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManager.swift; sourceTree = ""; }; - 806465EB1FED19B9001F27DB /* EmojiView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiView.xib; sourceTree = ""; }; - 806465ED1FED1AFE001F27DB /* EmojiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiView.swift; sourceTree = ""; }; - 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesNavigationController.swift; sourceTree = ""; }; - 806728FE20079734009FE94D /* DeleteMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequest.swift; sourceTree = ""; }; - 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequestSpec.swift; sourceTree = ""; }; - 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequest.swift; sourceTree = ""; }; - 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequestSpec.swift; sourceTree = ""; }; - 8067DAA5206D1883005E3369 /* APIResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResource.swift; sourceTree = ""; }; - 8069D26D1FFF876D00C75926 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; - 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostMessageRequest.swift; sourceTree = ""; }; - 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMessageRequestSpec.swift; sourceTree = ""; }; - 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerLoginServices.swift; sourceTree = ""; }; - 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerConnectionHandler.swift; sourceTree = ""; }; - 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerAuthenticationHandler.swift; sourceTree = ""; }; - 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageCellAccessibility.swift; sourceTree = ""; }; - 807371991F94E83600D53ADF /* SocketError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocketError.swift; sourceTree = ""; }; - 8073719B1F963FA400D53ADF /* APITestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APITestCase.swift; sourceTree = ""; }; - 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceManager.swift; sourceTree = ""; }; - 8073719F1F96937100D53ADF /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginService.swift; sourceTree = ""; }; - 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelMapping.swift; sourceTree = ""; }; - 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelHandler.swift; sourceTree = ""; }; - 8076FD9920484A6000114F28 /* SEStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEStore.swift; sourceTree = ""; }; - 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerSocket.swift; sourceTree = ""; }; - 8076FDA32048533000114F28 /* String+Random.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Random.swift"; sourceTree = ""; }; - 8076FDA8204853DE00114F28 /* RealmExecute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmExecute.swift; sourceTree = ""; }; - 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSettingsHiddenTypes.swift; sourceTree = ""; }; - 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanDeleteMessage.swift; sourceTree = ""; }; - 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanBlockMessage.swift; sourceTree = ""; }; - 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanEditMessage.swift; sourceTree = ""; }; - 8076FDB42048571200114F28 /* AuthUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthUser.swift; sourceTree = ""; }; - 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerCurrentUser.swift; sourceTree = ""; }; - 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerRecover.swift; sourceTree = ""; }; - 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUtils.swift; sourceTree = ""; }; - 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUser.swift; sourceTree = ""; }; - 8076FDC62048632300114F28 /* SubscriptionQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueries.swift; sourceTree = ""; }; - 8076FDD02048646500114F28 /* MessageReply.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReply.swift; sourceTree = ""; }; - 8076FDD5204864E700114F28 /* UserQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserQueries.swift; sourceTree = ""; }; - 8076FDD72048654F00114F28 /* UserUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserUtils.swift; sourceTree = ""; }; - 8076FDD920489F5900114F28 /* SEViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEViewController.swift; sourceTree = ""; }; - 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewController.swift; sourceTree = ""; }; - 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationCoordinator.swift; sourceTree = ""; }; - 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Group.swift"; sourceTree = ""; }; - 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.ShareExtension.entitlements; sourceTree = ""; }; - 8076FDEC2049A5F600114F28 /* SECellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECellModel.swift; sourceTree = ""; }; - 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceSpec.swift; sourceTree = ""; }; - 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthManagerSpec.swift; sourceTree = ""; }; - 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanPinMessage.swift; sourceTree = ""; }; - 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPlaceholderTextView.swift; sourceTree = ""; }; - 807C7C0520751ED1006B600E /* SpotlightClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClient.swift; sourceTree = ""; }; - 807C7C0720751EDB006B600E /* SpotlightRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequest.swift; sourceTree = ""; }; - 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequestSpec.swift; sourceTree = ""; }; - 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClientSpec.swift; sourceTree = ""; }; - 807C7C11207522EF006B600E /* LoginServicesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginServicesRequest.swift; sourceTree = ""; }; - 807FB53C2044B49800E21429 /* Emojione+Transform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Emojione+Transform.swift"; sourceTree = ""; }; - 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojioneSpec.swift; sourceTree = ""; }; - 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Rocket.Chat.ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewController.swift; sourceTree = ""; }; - 807FB55D2046E7DD00E21429 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 807FB55F2046E7DD00E21429 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 807FB568204729E500E21429 /* SEServersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewController.swift; sourceTree = ""; }; - 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewModel.swift; sourceTree = ""; }; - 807FB57020472B6A00E21429 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - 807FB57220472B6D00E21429 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57320472B6F00E21429 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57420472B7000E21429 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57520472B7200E21429 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57620472B7300E21429 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; - 807FB57720472B8200E21429 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 807FB581204837AF00E21429 /* SEServersViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewModel.swift; sourceTree = ""; }; - 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManagerSpec.swift; sourceTree = ""; }; - 808792371FB14B3300EFE77F /* PermissionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionSpec.swift; sourceTree = ""; }; - 80977AB5204EEF1E00C41435 /* SelectServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectServer.swift; sourceTree = ""; }; - 80977AB8204EFBCC00C41435 /* SENavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigation.swift; sourceTree = ""; }; - 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESceneTransition.swift; sourceTree = ""; }; - 80977ABE204F36F200C41435 /* SESearchState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESearchState.swift; sourceTree = ""; }; - 80977AC1204F37C200C41435 /* SEState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEState.swift; sourceTree = ""; }; - 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewModel.swift; sourceTree = ""; }; - 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadClient.swift; sourceTree = ""; }; - 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionListView.swift; sourceTree = ""; }; - 809B530F1FE2F17D00833DD2 /* ReactionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionView.swift; sourceTree = ""; }; - 809B53111FE2F2F900833DD2 /* ReactionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionView.xib; sourceTree = ""; }; - 809B53131FE3294400833DD2 /* ReactionListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionListView.xib; sourceTree = ""; }; - 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReaction.swift; sourceTree = ""; }; - 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RealmCurrent.swift; sourceTree = ""; }; - 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcher.swift; sourceTree = ""; }; - 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiAutocompleteCell.swift; sourceTree = ""; }; - 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiAutocompleteCell.xib; sourceTree = ""; }; - 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequest.swift; sourceTree = ""; }; - 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequestSpec.swift; sourceTree = ""; }; - 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequest.swift; sourceTree = ""; }; - 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequestSpec.swift; sourceTree = ""; }; - 80A63C561F71D2E400FE5AC4 /* APISpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APISpec.swift; sourceTree = ""; }; - 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcherSpec.swift; sourceTree = ""; }; - 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensionsSpec.swift; sourceTree = ""; }; - 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageUnreadSeparator.swift; sourceTree = ""; }; - 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageUnreadSeparator.xib; sourceTree = ""; }; - 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SAMLViewController.swift; sourceTree = ""; }; - 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewControllerSpec.swift; sourceTree = ""; }; - 80C7DD5F1FF46B8000E6647C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD611FF46B8300E6647C /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/RCEmojiKit.strings"; sourceTree = ""; }; - 80C7DD621FF46B8600E6647C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD631FF46B8700E6647C /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD641FF46B8800E6647C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80C7DD651FF46B8C00E6647C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 80CFB5711F8D697100FC9715 /* ReplyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReplyView.xib; sourceTree = ""; }; - 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyView.swift; sourceTree = ""; }; - 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEServerCell.xib; sourceTree = ""; }; - 80D0CE5F205016B40056B17F /* SEServerCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCell.swift; sourceTree = ""; }; - 80D0CE61205023710056B17F /* SECell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECell.swift; sourceTree = ""; }; - 80D0CE63205034280056B17F /* SEServerCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCellModel.swift; sourceTree = ""; }; - 80D0CE6520503C860056B17F /* SERoomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCell.swift; sourceTree = ""; }; - 80D0CE6720503C970056B17F /* SERoomCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SERoomCell.xib; sourceTree = ""; }; - 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCellModel.swift; sourceTree = ""; }; - 80D0CE6E20509C100056B17F /* SEAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEAvatarView.swift; sourceTree = ""; }; - 80D0CE7020509C230056B17F /* SEAvatarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEAvatarView.xib; sourceTree = ""; }; - 80D5637120592D32008896D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 80D563742059325A008896D6 /* MimeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MimeType.swift; sourceTree = ""; }; - 80D5637620593533008896D6 /* ParseItemProviders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseItemProviders.swift; sourceTree = ""; }; - 80D955C1202154A300E3F281 /* CASViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CASViewController.swift; sourceTree = ""; }; - 80DC9A6B206BA95600032BE0 /* Localized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Localized.swift; sourceTree = ""; }; - 80DC9A6F206BAC8B00032BE0 /* mimetype.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = mimetype.json; sourceTree = ""; }; - 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensions.swift; sourceTree = ""; }; - 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensionsSpec.swift; sourceTree = ""; }; - 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensionsSpec.swift; sourceTree = ""; }; - 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+CustomEmojis.swift"; sourceTree = ""; }; - 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkdownManagerSpec.swift; sourceTree = ""; }; - 80FA9065205313E20069038F /* SEContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEContent.swift; sourceTree = ""; }; - 80FA9067205314040069038F /* SEServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServer.swift; sourceTree = ""; }; - 80FA906920569F890069038F /* SEComposeFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCell.swift; sourceTree = ""; }; - 80FA906B20569FA10069038F /* SEComposeFileCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeFileCell.xib; sourceTree = ""; }; - 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCellModel.swift; sourceTree = ""; }; - 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewModel.swift; sourceTree = ""; }; - 80FA90712056C1190069038F /* SEComposeTextCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCell.swift; sourceTree = ""; }; - 80FA90732056C1350069038F /* SEComposeTextCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeTextCell.xib; sourceTree = ""; }; - 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCellModel.swift; sourceTree = ""; }; - 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeCellModel.swift; sourceTree = ""; }; - 80FA907C2057F4650069038F /* SubmitContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubmitContent.swift; sourceTree = ""; }; - 80FE8DED206584EA0099170E /* SEFileDetailView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEFileDetailView.xib; sourceTree = ""; }; - 80FE8DEF206587510099170E /* SEFileDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEFileDetailView.swift; sourceTree = ""; }; - 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.release.xcconfig"; sourceTree = ""; }; - 848088BA204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/RCEmojiKit.strings; sourceTree = ""; }; - 848088BB204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; - 848088BC204370E9005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/VoiceOver.strings; sourceTree = ""; }; - 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequestSpec.swift; sourceTree = ""; }; - 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheckTableViewCell.swift; sourceTree = ""; }; - 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CheckTableViewCell.xib; sourceTree = ""; }; - 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = ""; }; - 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextFieldTableViewCell.xib; sourceTree = ""; }; - 897083D21F8CF08100233561 /* FormTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormTableViewCell.swift; sourceTree = ""; }; - 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequest.swift; sourceTree = ""; }; - 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewRoomViewControllerSpec.swift; sourceTree = ""; }; - 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewControllerSpec.swift; sourceTree = ""; }; - 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequest.swift; sourceTree = ""; }; - 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequestSpec.swift; sourceTree = ""; }; - 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequestSpec.swift; sourceTree = ""; }; - 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModel.swift; sourceTree = ""; }; - 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioFileViewController.swift; sourceTree = ""; }; - 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionFilesRequestSpec.swift; sourceTree = ""; }; - 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManagerSpec.swift; sourceTree = ""; }; - 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UINavigationControllerExtension.swift; sourceTree = ""; }; - 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManagerSpec.swift; sourceTree = ""; }; - 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModelSpec.swift; sourceTree = ""; }; - 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordTableViewController.swift; sourceTree = ""; }; - 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManager.swift; sourceTree = ""; }; - 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserTableViewController.swift; sourceTree = ""; }; - 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModel.swift; sourceTree = ""; }; - 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequest.swift; sourceTree = ""; }; - 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequestSpec.swift; sourceTree = ""; }; - 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequest.swift; sourceTree = ""; }; - 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequestSpec.swift; sourceTree = ""; }; - 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequestSpec.swift; sourceTree = ""; }; - 9987B5952093E4BA007D277C /* FilesListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilesListViewController.swift; sourceTree = ""; }; - 9987B5972093E523007D277C /* FileTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTableViewCell.swift; sourceTree = ""; }; - 9987B5982093E524007D277C /* FileTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FileTableViewCell.xib; sourceTree = ""; }; - 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionFilesRequest.swift; sourceTree = ""; }; - 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequest.swift; sourceTree = ""; }; - 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModel.swift; sourceTree = ""; }; - 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileModelMapping.swift; sourceTree = ""; }; - 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManager.swift; sourceTree = ""; }; - 99C577ED207E4F1500CE9B4D /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = ""; }; - 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewController.swift; sourceTree = ""; }; - 99D888FA204623A900E51306 /* UpdateUserRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequest.swift; sourceTree = ""; }; - 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMessagesRequest.swift; sourceTree = ""; }; - 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListControllerSearch.swift; sourceTree = ""; }; - 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMessagesRequestSpec.swift; sourceTree = ""; }; - 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModelSpec.swift; sourceTree = ""; }; - 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModelSpec.swift; sourceTree = ""; }; - A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TintedTextField.swift; sourceTree = ""; }; - AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.beta.xcconfig"; sourceTree = ""; }; - B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserReviewManager.swift; sourceTree = ""; }; - B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserReviewManagerSpec.swift; sourceTree = ""; }; - BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.debug.xcconfig"; sourceTree = ""; }; - D10E9C191F643457007F1796 /* Channel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Channel.swift; sourceTree = ""; }; - D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelModelMapping.swift; sourceTree = ""; }; - D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSRangeExtensions.swift; sourceTree = ""; }; - D10E9C211F643616007F1796 /* MentionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionModelMapping.swift; sourceTree = ""; }; - D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensions.swift; sourceTree = ""; }; - D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelSpec.swift; sourceTree = ""; }; - D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionSpec.swift; sourceTree = ""; }; - D15C83851F70991F001AB155 /* APIResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResponse.swift; sourceTree = ""; }; - D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestSpec.swift; sourceTree = ""; }; - D18675EB1F716A0D00406FB4 /* LoginRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequest.swift; sourceTree = ""; }; - D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequestSpec.swift; sourceTree = ""; }; - D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensionsSpec.swift; sourceTree = ""; }; - D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkdownManager.swift; sourceTree = ""; }; - D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFontExtensions.swift; sourceTree = ""; }; - D1D535EB1F7081FA006625D2 /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; - D1D535ED1F708628006625D2 /* APIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIRequest.swift; sourceTree = ""; }; - D1D535F01F70864C006625D2 /* InfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequest.swift; sourceTree = ""; }; - D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataControllerSpec.swift; sourceTree = ""; }; - D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinator.swift; sourceTree = ""; }; - D32E28221DFD86C300D6019C /* LauncherProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LauncherProtocol.swift; sourceTree = ""; }; - D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistencyCoordinator.swift; sourceTree = ""; }; - D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModel.swift; sourceTree = ""; }; - F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; sourceTree = ""; }; - FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.beta.xcconfig"; sourceTree = ""; }; + 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewController.swift; sourceTree = ""; }; + 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModel.swift; sourceTree = ""; }; + 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconCell.swift; sourceTree = ""; }; + 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageResetCell.swift; sourceTree = ""; }; + 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewController.swift; sourceTree = ""; }; + 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModel.swift; sourceTree = ""; }; + 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewModel.swift; sourceTree = ""; }; + 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLanguageCell.swift; sourceTree = ""; }; + 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageViewModelSpec.swift; sourceTree = ""; }; + 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorSpec.swift; sourceTree = ""; }; + 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModel.swift; sourceTree = ""; }; + 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewModelSpec.swift; sourceTree = ""; }; + 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconViewModelSpec.swift; sourceTree = ""; }; + 140A95E0202F526C003FD564 /* Drawing.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Drawing.storyboard; sourceTree = ""; }; + 140A95E3202F536D003FD564 /* DrawingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingViewController.swift; sourceTree = ""; }; + 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingControllerDelegate.swift; sourceTree = ""; }; + 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCellSpec.swift; sourceTree = ""; }; + 1435BFA21F9B601600FB2768 /* RCTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCTextView.swift; sourceTree = ""; }; + 1499781C1FA605CE007E013D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + 14A6A83020421DF8008C210D /* ColorPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPickerView.swift; sourceTree = ""; }; + 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushWidthViewController.swift; sourceTree = ""; }; + 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushOpacityViewController.swift; sourceTree = ""; }; + 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrawingBrushColorViewController.swift; sourceTree = ""; }; + 14F8A213202E5CBD00175FDC /* Black-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@3x.png"; sourceTree = ""; }; + 14F8A216202E5CBE00175FDC /* Black-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@2x.png"; sourceTree = ""; }; + 14F8A217202E5CBE00175FDC /* Black-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@3x.png"; sourceTree = ""; }; + 14F8A218202E5CBE00175FDC /* Black-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-60@2x.png"; sourceTree = ""; }; + 14F8A219202E5CBE00175FDC /* Black-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-29@2x.png"; sourceTree = ""; }; + 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-83.5@2x.png"; sourceTree = ""; }; + 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@3x.png"; sourceTree = ""; }; + 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-40@2x.png"; sourceTree = ""; }; + 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Black-76@3x.png"; sourceTree = ""; }; + 14F8A22F202E5D0400175FDC /* Red-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@3x.png"; sourceTree = ""; }; + 14F8A230202E5D0400175FDC /* Red-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@3x.png"; sourceTree = ""; }; + 14F8A232202E5D0400175FDC /* Red-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-29@2x.png"; sourceTree = ""; }; + 14F8A233202E5D0400175FDC /* Red-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@2x.png"; sourceTree = ""; }; + 14F8A234202E5D0400175FDC /* Red-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-60@2x.png"; sourceTree = ""; }; + 14F8A235202E5D0500175FDC /* Red-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@3x.png"; sourceTree = ""; }; + 14F8A236202E5D0500175FDC /* Red-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-40@2x.png"; sourceTree = ""; }; + 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-83.5@2x.png"; sourceTree = ""; }; + 14F8A238202E5D0600175FDC /* Red-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Red-76@3x.png"; sourceTree = ""; }; + 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-83.5@2x.png"; sourceTree = ""; }; + 14F8A24C202E64B100175FDC /* BnW-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@3x.png"; sourceTree = ""; }; + 14F8A24D202E64B100175FDC /* BnW-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@2x.png"; sourceTree = ""; }; + 14F8A24E202E64B100175FDC /* BnW-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@2x.png"; sourceTree = ""; }; + 14F8A24F202E64B100175FDC /* BnW-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-60@3x.png"; sourceTree = ""; }; + 14F8A250202E64B100175FDC /* BnW-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-29@3x.png"; sourceTree = ""; }; + 14F8A251202E64B100175FDC /* BnW-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@2x.png"; sourceTree = ""; }; + 14F8A252202E64B100175FDC /* BnW-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-40@2x.png"; sourceTree = ""; }; + 14F8A254202E64B200175FDC /* BnW-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BnW-76@3x.png"; sourceTree = ""; }; + 14F8A263202E653D00175FDC /* Grey-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@2x.png"; sourceTree = ""; }; + 14F8A264202E653D00175FDC /* Grey-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@2x.png"; sourceTree = ""; }; + 14F8A265202E653D00175FDC /* Grey-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@3x.png"; sourceTree = ""; }; + 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-83.5@2x.png"; sourceTree = ""; }; + 14F8A267202E653D00175FDC /* Grey-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-76@2x.png"; sourceTree = ""; }; + 14F8A268202E653E00175FDC /* Grey-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-40@3x.png"; sourceTree = ""; }; + 14F8A269202E653E00175FDC /* Grey-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-29@3x.png"; sourceTree = ""; }; + 14F8A26A202E653E00175FDC /* Grey-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@3x.png"; sourceTree = ""; }; + 14F8A26B202E653E00175FDC /* Grey-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Grey-60@2x.png"; sourceTree = ""; }; + 14F8A277202E658E00175FDC /* White-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@2x.png"; sourceTree = ""; }; + 14F8A278202E658E00175FDC /* White-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@3x.png"; sourceTree = ""; }; + 14F8A279202E658E00175FDC /* White-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-76@3x.png"; sourceTree = ""; }; + 14F8A27A202E658F00175FDC /* White-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-83.5@2x.png"; sourceTree = ""; }; + 14F8A27B202E658F00175FDC /* White-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@2x.png"; sourceTree = ""; }; + 14F8A27C202E658F00175FDC /* White-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@3x.png"; sourceTree = ""; }; + 14F8A27D202E658F00175FDC /* White-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-29@2x.png"; sourceTree = ""; }; + 14F8A27E202E658F00175FDC /* White-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-40@2x.png"; sourceTree = ""; }; + 14F8A27F202E658F00175FDC /* White-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "White-60@3x.png"; sourceTree = ""; }; + 14F8A289202E65C500175FDC /* Blue-29@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@3x.png"; sourceTree = ""; }; + 14F8A28A202E65C600175FDC /* Blue-60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@2x.png"; sourceTree = ""; }; + 14F8A28B202E65C600175FDC /* Blue-60@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-60@3x.png"; sourceTree = ""; }; + 14F8A28C202E65C600175FDC /* Blue-76@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@3x.png"; sourceTree = ""; }; + 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-83.5@2x.png"; sourceTree = ""; }; + 14F8A28E202E65C600175FDC /* Blue-40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@2x.png"; sourceTree = ""; }; + 14F8A28F202E65C700175FDC /* Blue-29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-29@2x.png"; sourceTree = ""; }; + 14F8A290202E65C700175FDC /* Blue-40@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-40@3x.png"; sourceTree = ""; }; + 14F8A291202E65C700175FDC /* Blue-76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blue-76@2x.png"; sourceTree = ""; }; + 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentionsTextFieldTableViewCell.swift; sourceTree = ""; }; + 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MentionsTextFieldTableViewCell.xib; sourceTree = ""; }; + 330888B32099094400D44D4E /* ThemeableViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableViews.swift; sourceTree = ""; }; + 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableViewControllers.swift; sourceTree = ""; }; + 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatNotificationSpec.swift; sourceTree = ""; }; + 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerSpec.swift; sourceTree = ""; }; + 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewControllerSpec.swift; sourceTree = ""; }; + 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerMessages.swift; sourceTree = ""; }; + 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerRooms.swift; sourceTree = ""; }; + 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerSearch.swift; sourceTree = ""; }; + 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionManagerTyping.swift; sourceTree = ""; }; + 333207FE20766E4F00AD3290 /* NotificationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NotificationViewController.xib; sourceTree = ""; }; + 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransparentToTouchesWindow.swift; sourceTree = ""; }; + 33419D782099170A00D1682A /* ThemeManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManagerSpec.swift; sourceTree = ""; }; + 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeableSpec.swift; sourceTree = ""; }; + 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionViewCell.swift; sourceTree = ""; }; + 3353DBF7206787E500738D1C /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; + 335F4F02207A31D3005E14AF /* NotificationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationManager.swift; sourceTree = ""; }; + 3370D8B920926E5700EEA225 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; }; + 3370D8BB2093570D00EEA225 /* ThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManager.swift; sourceTree = ""; }; + 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserActionSheetPresenter.swift; sourceTree = ""; }; + 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessage.swift; sourceTree = ""; }; + 3370D8C12095995800EEA225 /* StarMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequest.swift; sourceTree = ""; }; + 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StarMessageRequestSpec.swift; sourceTree = ""; }; + 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthCanStarMessageSpec.swift; sourceTree = ""; }; + 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotThemeableView.swift; sourceTree = ""; }; + 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopTransparentViewController.swift; sourceTree = ""; }; + 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceCell.swift; sourceTree = ""; }; + 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceViewModel.swift; sourceTree = ""; }; + 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemePreferenceController.swift; sourceTree = ""; }; + 339B6929205042D300F97392 /* KeyboardFrameView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyboardFrameView.swift; sourceTree = ""; }; + 33A5C9BD206A561400FE1C8F /* emojiNames.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = emojiNames.json; sourceTree = ""; }; + 33A5C9C1206A565800FE1C8F /* symbols.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = symbols.json; sourceTree = ""; }; + 33A5C9C2206A565800FE1C8F /* travel.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = travel.json; sourceTree = ""; }; + 33A5C9C3206A565800FE1C8F /* regional.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = regional.json; sourceTree = ""; }; + 33A5C9C4206A565800FE1C8F /* flags.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = flags.json; sourceTree = ""; }; + 33A5C9C5206A565800FE1C8F /* people.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = people.json; sourceTree = ""; }; + 33A5C9C6206A565800FE1C8F /* objects.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = objects.json; sourceTree = ""; }; + 33A5C9C7206A565800FE1C8F /* food.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = food.json; sourceTree = ""; }; + 33A5C9C8206A565800FE1C8F /* activity.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = activity.json; sourceTree = ""; }; + 33A5C9C9206A565800FE1C8F /* nature.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = nature.json; sourceTree = ""; }; + 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatNotification.swift; sourceTree = ""; }; + 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; + 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; + 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; + 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; + 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; + 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; + 35BCD302201A9FB800B4BE5A /* AskSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AskSpec.swift; sourceTree = ""; }; + 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCDateFormatter.swift; sourceTree = ""; }; + 35D2F140200A45E800B4BE5A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertSpec.swift; sourceTree = ""; }; + 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OAuthManager.swift; sourceTree = ""; }; + 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewRoomViewController.swift; sourceTree = ""; }; + 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModel.swift; sourceTree = ""; }; + 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewControllerCustomFields.swift; sourceTree = ""; }; + 4101BF001F8D0A1700F67E89 /* AppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManager.swift; sourceTree = ""; }; + 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppManagerSpec.swift; sourceTree = ""; }; + 4102E3A91E532323004BAA82 /* Preferences.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Preferences.storyboard; sourceTree = ""; }; + 411119B51F680DB00019854B /* NetworkCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkCoordinator.swift; sourceTree = ""; }; + 411119B71F6825C30019854B /* NetworkManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManagerSpec.swift; sourceTree = ""; }; + 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainChatViewController.swift; sourceTree = ""; }; + 4112DC551FFFB9B1005995E1 /* BaseModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModel.swift; sourceTree = ""; }; + 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelHandler.swift; sourceTree = ""; }; + 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ModelMappeable.swift; sourceTree = ""; }; + 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModelSpec.swift; sourceTree = ""; }; + 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewModel.swift; sourceTree = ""; }; + 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentSpec.swift; sourceTree = ""; }; + 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManager.swift; sourceTree = ""; }; + 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsManagerSpec.swift; sourceTree = ""; }; + 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadManager.swift; sourceTree = ""; }; + 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatChannelHeaderCell.swift; sourceTree = ""; }; + 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatChannelHeaderCell.xib; sourceTree = ""; }; + 412184A420472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 412184A520472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + 412184A620472F7900DAAA88 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/VoiceOver.strings; sourceTree = ""; }; + 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterUsernameViewController.swift; sourceTree = ""; }; + 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatPreviewModeView.xib; sourceTree = ""; }; + 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPreviewModeView.swift; sourceTree = ""; }; + 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageVideoView.swift; sourceTree = ""; }; + 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageVideoView.xib; sourceTree = ""; }; + 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageTextView.xib; sourceTree = ""; }; + 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextView.swift; sourceTree = ""; }; + 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorCSSColorsExtension.swift; sourceTree = ""; }; + 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageURLView.swift; sourceTree = ""; }; + 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageURLView.xib; sourceTree = ""; }; + 412EF3C52050507C001689A3 /* ReusableViewText.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReusableViewText.xib; sourceTree = ""; }; + 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = ""; }; + 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageImageView.swift; sourceTree = ""; }; + 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageImageView.xib; sourceTree = ""; }; + 413996161F3B44500075F96E /* UploadHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelper.swift; sourceTree = ""; }; + 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsPageViewController.swift; sourceTree = ""; }; + 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServersViewController.swift; sourceTree = ""; }; + 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCell.swift; sourceTree = ""; }; + 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddServerCell.swift; sourceTree = ""; }; + 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManagerSpec.swift; sourceTree = ""; }; + 41494B911D63C6280004F369 /* UIImageExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; + 41499C8E1F2A116900790EA7 /* ServerManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerManager.swift; sourceTree = ""; }; + 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampCoordinator.swift; sourceTree = ""; }; + 414A1FF51D46320F00093E10 /* ResponseMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessage.swift; sourceTree = ""; }; + 414A1FF91D46395400093E10 /* SocketManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManager.swift; sourceTree = ""; }; + 414A1FFB1D46395900093E10 /* SocketResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketResponse.swift; sourceTree = ""; }; + 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignupViewController.swift; sourceTree = ""; }; + 414EFF911E54FE69004F001F /* AuthExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthExtensions.swift; sourceTree = ""; }; + 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextCacheManager.swift; sourceTree = ""; }; + 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModelSpec.swift; sourceTree = ""; }; + 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelHandler.swift; sourceTree = ""; }; + 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelHandler.swift; sourceTree = ""; }; + 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionModelMapping.swift; sourceTree = ""; }; + 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageModelMapping.swift; sourceTree = ""; }; + 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AttachmentModelMapping.swift; sourceTree = ""; }; + 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsModelMapping.swift; sourceTree = ""; }; + 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLModelMapping.swift; sourceTree = ""; }; + 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinatorSpec.swift; sourceTree = ""; }; + 4153E80420504BE700FBC26B /* ReusableViewText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReusableViewText.swift; sourceTree = ""; }; + 41552F651D30308C0081438D /* AuthManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManager.swift; sourceTree = ""; }; + 41552F671D3035D80081438D /* SocketManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketManagerSpec.swift; sourceTree = ""; }; + 4159720B1D3DB854002258F4 /* Email.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Email.swift; sourceTree = ""; }; + 4159720D1D3DB882002258F4 /* Mention.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mention.swift; sourceTree = ""; }; + 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoFactorAuthenticationViewController.swift; sourceTree = ""; }; + 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; + 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCell.swift; sourceTree = ""; }; + 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageCell.xib; sourceTree = ""; }; + 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseModelSpec.swift; sourceTree = ""; }; + 416133391D46E0A200E09DA2 /* AuthSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSpec.swift; sourceTree = ""; }; + 4161333B1D46E32F00E09DA2 /* UserSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserSpec.swift; sourceTree = ""; }; + 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSpec.swift; sourceTree = ""; }; + 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageSpec.swift; sourceTree = ""; }; + 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadHelperSpec.swift; sourceTree = ""; }; + 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManagerSpec.swift; sourceTree = ""; }; + 4162E1521D651A8800AAAE49 /* UserManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserManager.swift; sourceTree = ""; }; + 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketHandlers.swift; sourceTree = ""; }; + 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarViewSpec.swift; sourceTree = ""; }; + 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectServerViewController.swift; sourceTree = ""; }; + 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Auth.storyboard; sourceTree = ""; }; + 4174CB121D2D99960086DAC8 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; + 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseNavigationController.swift; sourceTree = ""; }; + 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthViewController.swift; sourceTree = ""; }; + 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; + 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; + 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Rocket.Chat-Bridge.h"; sourceTree = ""; }; + 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessageSpec.swift; sourceTree = ""; }; + 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoViewController.swift; sourceTree = ""; }; + 41833F4D1DEF16B600E54655 /* Keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Keys.plist; sourceTree = ""; }; + 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatControllerReplyHandler.swift; sourceTree = ""; }; + 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewControllerEmbedded.swift; sourceTree = ""; }; + 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WebViewControllerEmbedded.xib; sourceTree = ""; }; + 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageActions.swift; sourceTree = ""; }; + 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSectionView.swift; sourceTree = ""; }; + 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSectionView.xib; sourceTree = ""; }; + 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegateSpec.swift; sourceTree = ""; }; + 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegate.swift; sourceTree = ""; }; + 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundPickerViewDelegateSpec.swift; sourceTree = ""; }; + 41900C261D9FE35400308EF4 /* Attachment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Attachment.swift; sourceTree = ""; }; + 419205481D52EDE6004EEC5F /* UILabelExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UILabelExtension.swift; sourceTree = ""; }; + 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionCell.swift; sourceTree = ""; }; + 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; + 4199A9881DABCC570035F820 /* Emojione.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Emojione.swift; sourceTree = ""; }; + 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandler.swift; sourceTree = ""; }; + 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandlerSpec.swift; sourceTree = ""; }; + 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatHeaderViewStatus.xib; sourceTree = ""; }; + 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHeaderViewStatus.swift; sourceTree = ""; }; + 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerHeaderStatus.swift; sourceTree = ""; }; + 419ECCA31F3CA21A005F224B /* DownloadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadManager.swift; sourceTree = ""; }; + 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerDocuments.swift; sourceTree = ""; }; + 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewControllerExtension.swift; sourceTree = ""; }; + 41A6191A1FA7065400CFFA69 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + 41A79C0E1D2F085F00A1968E /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; + 41A79C121D2F09F200A1968E /* Auth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Auth.swift; sourceTree = ""; }; + 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettings.swift; sourceTree = ""; }; + 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionUserStatusView.xib; sourceTree = ""; }; + 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionUserStatusView.swift; sourceTree = ""; }; + 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AutocompleteCell.xib; sourceTree = ""; }; + 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutocompleteCell.swift; sourceTree = ""; }; + 41ADDD481E9DBB100007A458 /* LoaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderView.swift; sourceTree = ""; }; + 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoaderViewSpec.swift; sourceTree = ""; }; + 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerUploader.swift; sourceTree = ""; }; + 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIWindowExtensions.swift; sourceTree = ""; }; + 41B554C61FBF0F9D000510B7 /* WindowManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = ""; }; + 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatViewControllerTextViewDelegate.swift; sourceTree = ""; }; + 41B96361207E48260068F1A6 /* MessageTextValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidator.swift; sourceTree = ""; }; + 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageTextValidatorSpec.swift; sourceTree = ""; }; + 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthManagerSpec.swift; sourceTree = ""; }; + 41BAE3E61D71B26C00C2445A /* URLExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtension.swift; sourceTree = ""; }; + 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLExtensionSpec.swift; sourceTree = ""; }; + 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserModelMapping.swift; sourceTree = ""; }; + 41C275DE1D848005003C88CF /* AvatarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AvatarView.swift; sourceTree = ""; }; + 41C275E01D84815C003C88CF /* AvatarView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AvatarView.xib; sourceTree = ""; }; + 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataController.swift; sourceTree = ""; }; + 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatLoaderCell.xib; sourceTree = ""; }; + 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatLoaderCell.swift; sourceTree = ""; }; + 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArrayExtensions.swift; sourceTree = ""; }; + 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatMessageDaySeparator.xib; sourceTree = ""; }; + 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageDaySeparator.swift; sourceTree = ""; }; + 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayout.swift; sourceTree = ""; }; + 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewExtentions.swift; sourceTree = ""; }; + 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageTextFontAttributes.swift; sourceTree = ""; }; + 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensions.swift; sourceTree = ""; }; + 41D7CA861E644E47000F38EA /* MessageExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageExtensions.swift; sourceTree = ""; }; + 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDirectMessageHeaderCell.swift; sourceTree = ""; }; + 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatDirectMessageHeaderCell.xib; sourceTree = ""; }; + 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionManager.swift; sourceTree = ""; }; + 41DAE93D1D318F350098E068 /* Subscription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscription.swift; sourceTree = ""; }; + 41DC7A1A1D38454500896FC0 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; + 41DC7A1C1D38471700896FC0 /* MessageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManager.swift; sourceTree = ""; }; + 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageManagerSpec.swift; sourceTree = ""; }; + 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensionSpec.swift; sourceTree = ""; }; + 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtensionsSpec.swift; sourceTree = ""; }; + 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSearchMoreView.xib; sourceTree = ""; }; + 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSearchMoreView.swift; sourceTree = ""; }; + 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 41DF76E91D2C50710028DBF8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 41DF76EC1D2C50720028DBF8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 41DF76EE1D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF76F91D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rocket.ChatUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RocketChatUITests.swift; sourceTree = ""; }; + 41DF77041D2C50720028DBF8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 41E2F9FE1D414DE800238DFD /* Chat.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Chat.storyboard; sourceTree = ""; }; + 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Subscriptions.storyboard; sourceTree = ""; }; + 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionsViewController.swift; sourceTree = ""; }; + 41E2FA061D41513C00238DFD /* ChatViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = ""; }; + 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorExtensionSpec.swift; sourceTree = ""; }; + 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UINibExtensions.swift; sourceTree = ""; }; + 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = ""; }; + 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthInternalExtensions.swift; sourceTree = ""; }; + 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueriesSpec.swift; sourceTree = ""; }; + 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UploadVideoCompression.swift; sourceTree = ""; }; + 41EB22371E5F056600AA3AE7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 41EB223A1E5F057F00AA3AE7 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + 41EB223B1E5F19EB00AA3AE7 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerAutocomplete.swift; sourceTree = ""; }; + 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageCellProtocol.swift; sourceTree = ""; }; + 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerSocketConnectionHandler.swift; sourceTree = ""; }; + 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTitleView.swift; sourceTree = ""; }; + 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatTitleView.xib; sourceTree = ""; }; + 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURL.swift; sourceTree = ""; }; + 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewModelSpec.swift; sourceTree = ""; }; + 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DatabaseManagerSpec.swift; sourceTree = ""; }; + 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.release.xcconfig"; sourceTree = ""; }; + 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.debug.xcconfig"; sourceTree = ""; }; + 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.entitlements; sourceTree = ""; }; + 597ECBA11E3708A50041C5C5 /* DataExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataExtension.swift; sourceTree = ""; }; + 597ECBA31E3708B10041C5C5 /* PushManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushManager.swift; sourceTree = ""; }; + 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.debug.xcconfig"; sourceTree = ""; }; + 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_Chat_ShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageURLSpec.swift; sourceTree = ""; }; + 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Rocket_ChatTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegate.swift; sourceTree = ""; }; + 7798B4141F852B720074B2F4 /* SelectField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectField.swift; sourceTree = ""; }; + 7798B4181F852D670074B2F4 /* CustomField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomField.swift; sourceTree = ""; }; + 77BA81501F87C4CB00F295F4 /* TextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextField.swift; sourceTree = ""; }; + 77C261241F97445300724A1F /* AuthSettingsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthSettingsSpec.swift; sourceTree = ""; }; + 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DictionaryExtensionsSpec.swift; sourceTree = ""; }; + 77C261291F97453600724A1F /* CustomFieldsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomFieldsSpec.swift; sourceTree = ""; }; + 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectFieldSpec.swift; sourceTree = ""; }; + 77C2612B1F97453600724A1F /* TextFieldSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldSpec.swift; sourceTree = ""; }; + 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtensions.swift; sourceTree = ""; }; + 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendMessageRequest.swift; sourceTree = ""; }; + 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClient.swift; sourceTree = ""; }; + 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesClientSpec.swift; sourceTree = ""; }; + 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequest.swift; sourceTree = ""; }; + 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushTokenDeleteRequest.swift; sourceTree = ""; }; + 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushClient.swift; sourceTree = ""; }; + 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alert.swift; sourceTree = ""; }; + 800640F62049BA25006D990F /* SEScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEScene.swift; sourceTree = ""; }; + 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListViewController.swift; sourceTree = ""; }; + 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMessagesRequest.swift; sourceTree = ""; }; + 800F38EC2019492D0005CB78 /* DeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLink.swift; sourceTree = ""; }; + 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembersListViewController.swift; sourceTree = ""; }; + 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoBasicCell.swift; sourceTree = ""; }; + 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoCellProtocol.swift; sourceTree = ""; }; + 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDescriptionCell.swift; sourceTree = ""; }; + 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoDetailCell.swift; sourceTree = ""; }; + 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoUserCell.swift; sourceTree = ""; }; + 800FCD491F728E6A00D9A692 /* MemberCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemberCell.swift; sourceTree = ""; }; + 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MemberCell.xib; sourceTree = ""; }; + 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewController.swift; sourceTree = ""; }; + 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewFlowLayoutSpec.swift; sourceTree = ""; }; + 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensions.swift; sourceTree = ""; }; + 8013F8661FD6B4F400EE1A4E /* Command.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Command.swift; sourceTree = ""; }; + 8013F8681FD6B59900EE1A4E /* Version.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Version.swift; sourceTree = ""; }; + 8013F8691FD6B59900EE1A4E /* APIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIError.swift; sourceTree = ""; }; + 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIClient.swift; sourceTree = ""; }; + 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClient.swift; sourceTree = ""; }; + 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClient.swift; sourceTree = ""; }; + 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddleware.swift; sourceTree = ""; }; + 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionMiddlewareSpec.swift; sourceTree = ""; }; + 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockAPI.swift; sourceTree = ""; }; + 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionSpec.swift; sourceTree = ""; }; + 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsClientSpec.swift; sourceTree = ""; }; + 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoClientSpec.swift; sourceTree = ""; }; + 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandsRequest.swift; sourceTree = ""; }; + 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequest.swift; sourceTree = ""; }; + 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunCommandRequestSpec.swift; sourceTree = ""; }; + 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommandModelMapping.swift; sourceTree = ""; }; + 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushManagerSpec.swift; sourceTree = ""; }; + 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUserView.swift; sourceTree = ""; }; + 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPicker.swift; sourceTree = ""; }; + 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiPicker.xib; sourceTree = ""; }; + 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerController.swift; sourceTree = ""; }; + 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadMessageRequestSpec.swift; sourceTree = ""; }; + 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPMethod.swift; sourceTree = ""; }; + 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequest.swift; sourceTree = ""; }; + 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMembersRequestSpec.swift; sourceTree = ""; }; + 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoaderTableViewCell.swift; sourceTree = ""; }; + 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoaderTableViewCell.xib; sourceTree = ""; }; + 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactionSpec.swift; sourceTree = ""; }; + 802498ED1F7A8380005477EC /* MeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequest.swift; sourceTree = ""; }; + 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeRequestSpec.swift; sourceTree = ""; }; + 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageAudioView.xib; sourceTree = ""; }; + 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAudioView.swift; sourceTree = ""; }; + 8029B2F12059B6F60067157B /* VideoInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoInfo.swift; sourceTree = ""; }; + 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+StatusReport.swift"; sourceTree = ""; }; + 802A4E102049C7340072CD23 /* SENavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigationController.swift; sourceTree = ""; }; + 802A4E23204D730F0072CD23 /* AppGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppGroup.swift; sourceTree = ""; }; + 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOTextField.swift; sourceTree = ""; }; + 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VOLocalized.swift; sourceTree = ""; }; + 80307E421FD75DC0006AD9EF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E441FD75DCB006AD9EF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/VoiceOver.strings"; sourceTree = ""; }; + 80307E451FD75DCF006AD9EF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E461FD75DD1006AD9EF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E471FD75DD2006AD9EF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/VoiceOver.strings; sourceTree = ""; }; + 80307E481FD75DD5006AD9EF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/VoiceOver.strings; sourceTree = ""; }; + 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateMessageRequest.swift; sourceTree = ""; }; + 803782B61FB4751D00DED049 /* RealmTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmTestCase.swift; sourceTree = ""; }; + 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListViewController.swift; sourceTree = ""; }; + 8041C0412028C7EF007E21FA /* ReactorListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactorListView.swift; sourceTree = ""; }; + 8041C0432028C828007E21FA /* ReactorListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactorListView.xib; sourceTree = ""; }; + 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RCEmojiKitLocalizable.swift; sourceTree = ""; }; + 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = RCEmojiKit.xcassets; sourceTree = ""; }; + 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewController.swift; sourceTree = ""; }; + 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEXibInitializable.swift; sourceTree = ""; }; + 805DEC341FFC03380033151B /* CustomEmojiManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiManager.swift; sourceTree = ""; }; + 805DEC361FFC08870033151B /* CustomEmoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmoji.swift; sourceTree = ""; }; + 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiSpec.swift; sourceTree = ""; }; + 806401301FB09DE800990572 /* Permission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Permission.swift; sourceTree = ""; }; + 806401321FB09EC400990572 /* PermissionModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionModelMapping.swift; sourceTree = ""; }; + 806401341FB09F8A00990572 /* PermissionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManager.swift; sourceTree = ""; }; + 806465EB1FED19B9001F27DB /* EmojiView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiView.xib; sourceTree = ""; }; + 806465ED1FED1AFE001F27DB /* EmojiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiView.swift; sourceTree = ""; }; + 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesNavigationController.swift; sourceTree = ""; }; + 806728FE20079734009FE94D /* DeleteMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequest.swift; sourceTree = ""; }; + 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessageRequestSpec.swift; sourceTree = ""; }; + 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequest.swift; sourceTree = ""; }; + 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactMessageRequestSpec.swift; sourceTree = ""; }; + 8067DAA5206D1883005E3369 /* APIResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResource.swift; sourceTree = ""; }; + 8069D26D1FFF876D00C75926 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; + 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostMessageRequest.swift; sourceTree = ""; }; + 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMessageRequestSpec.swift; sourceTree = ""; }; + 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerLoginServices.swift; sourceTree = ""; }; + 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerConnectionHandler.swift; sourceTree = ""; }; + 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerAuthenticationHandler.swift; sourceTree = ""; }; + 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageCellAccessibility.swift; sourceTree = ""; }; + 807371991F94E83600D53ADF /* SocketError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocketError.swift; sourceTree = ""; }; + 8073719B1F963FA400D53ADF /* APITestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APITestCase.swift; sourceTree = ""; }; + 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceManager.swift; sourceTree = ""; }; + 8073719F1F96937100D53ADF /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginService.swift; sourceTree = ""; }; + 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelMapping.swift; sourceTree = ""; }; + 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceModelHandler.swift; sourceTree = ""; }; + 8076FD9920484A6000114F28 /* SEStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEStore.swift; sourceTree = ""; }; + 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerSocket.swift; sourceTree = ""; }; + 8076FDA32048533000114F28 /* String+Random.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Random.swift"; sourceTree = ""; }; + 8076FDA8204853DE00114F28 /* RealmExecute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealmExecute.swift; sourceTree = ""; }; + 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSettingsHiddenTypes.swift; sourceTree = ""; }; + 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanDeleteMessage.swift; sourceTree = ""; }; + 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanBlockMessage.swift; sourceTree = ""; }; + 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanEditMessage.swift; sourceTree = ""; }; + 8076FDB42048571200114F28 /* AuthUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthUser.swift; sourceTree = ""; }; + 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerCurrentUser.swift; sourceTree = ""; }; + 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthManagerRecover.swift; sourceTree = ""; }; + 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUtils.swift; sourceTree = ""; }; + 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionUser.swift; sourceTree = ""; }; + 8076FDC62048632300114F28 /* SubscriptionQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionQueries.swift; sourceTree = ""; }; + 8076FDD02048646500114F28 /* MessageReply.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReply.swift; sourceTree = ""; }; + 8076FDD5204864E700114F28 /* UserQueries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserQueries.swift; sourceTree = ""; }; + 8076FDD72048654F00114F28 /* UserUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserUtils.swift; sourceTree = ""; }; + 8076FDD920489F5900114F28 /* SEViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEViewController.swift; sourceTree = ""; }; + 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewController.swift; sourceTree = ""; }; + 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationCoordinator.swift; sourceTree = ""; }; + 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Group.swift"; sourceTree = ""; }; + 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Rocket.Chat.ShareExtension.entitlements; sourceTree = ""; }; + 8076FDEC2049A5F600114F28 /* SECellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECellModel.swift; sourceTree = ""; }; + 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceSpec.swift; sourceTree = ""; }; + 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthManagerSpec.swift; sourceTree = ""; }; + 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthCanPinMessage.swift; sourceTree = ""; }; + 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPlaceholderTextView.swift; sourceTree = ""; }; + 807C7C0520751ED1006B600E /* SpotlightClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClient.swift; sourceTree = ""; }; + 807C7C0720751EDB006B600E /* SpotlightRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequest.swift; sourceTree = ""; }; + 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightRequestSpec.swift; sourceTree = ""; }; + 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpotlightClientSpec.swift; sourceTree = ""; }; + 807C7C11207522EF006B600E /* LoginServicesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginServicesRequest.swift; sourceTree = ""; }; + 807FB53C2044B49800E21429 /* Emojione+Transform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Emojione+Transform.swift"; sourceTree = ""; }; + 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojioneSpec.swift; sourceTree = ""; }; + 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Rocket.Chat.ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewController.swift; sourceTree = ""; }; + 807FB55D2046E7DD00E21429 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 807FB55F2046E7DD00E21429 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 807FB568204729E500E21429 /* SEServersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewController.swift; sourceTree = ""; }; + 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomsViewModel.swift; sourceTree = ""; }; + 807FB57020472B6A00E21429 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; + 807FB57220472B6D00E21429 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57320472B6F00E21429 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57420472B7000E21429 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57520472B7200E21429 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57620472B7300E21429 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 807FB57720472B8200E21429 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 807FB581204837AF00E21429 /* SEServersViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServersViewModel.swift; sourceTree = ""; }; + 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionManagerSpec.swift; sourceTree = ""; }; + 808792371FB14B3300EFE77F /* PermissionSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionSpec.swift; sourceTree = ""; }; + 80977AB5204EEF1E00C41435 /* SelectServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectServer.swift; sourceTree = ""; }; + 80977AB8204EFBCC00C41435 /* SENavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SENavigation.swift; sourceTree = ""; }; + 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESceneTransition.swift; sourceTree = ""; }; + 80977ABE204F36F200C41435 /* SESearchState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SESearchState.swift; sourceTree = ""; }; + 80977AC1204F37C200C41435 /* SEState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEState.swift; sourceTree = ""; }; + 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeHeaderViewModel.swift; sourceTree = ""; }; + 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadClient.swift; sourceTree = ""; }; + 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionListView.swift; sourceTree = ""; }; + 809B530F1FE2F17D00833DD2 /* ReactionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionView.swift; sourceTree = ""; }; + 809B53111FE2F2F900833DD2 /* ReactionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionView.xib; sourceTree = ""; }; + 809B53131FE3294400833DD2 /* ReactionListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReactionListView.xib; sourceTree = ""; }; + 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReaction.swift; sourceTree = ""; }; + 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RealmCurrent.swift; sourceTree = ""; }; + 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcher.swift; sourceTree = ""; }; + 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiAutocompleteCell.swift; sourceTree = ""; }; + 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmojiAutocompleteCell.xib; sourceTree = ""; }; + 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequest.swift; sourceTree = ""; }; + 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoRequestSpec.swift; sourceTree = ""; }; + 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequest.swift; sourceTree = ""; }; + 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoRequestSpec.swift; sourceTree = ""; }; + 80A63C561F71D2E400FE5AC4 /* APISpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APISpec.swift; sourceTree = ""; }; + 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiSearcherSpec.swift; sourceTree = ""; }; + 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensionsSpec.swift; sourceTree = ""; }; + 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageUnreadSeparator.swift; sourceTree = ""; }; + 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatMessageUnreadSeparator.xib; sourceTree = ""; }; + 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SAMLViewController.swift; sourceTree = ""; }; + 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OAuthViewControllerSpec.swift; sourceTree = ""; }; + 80C7DD5F1FF46B8000E6647C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD611FF46B8300E6647C /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/RCEmojiKit.strings"; sourceTree = ""; }; + 80C7DD621FF46B8600E6647C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD631FF46B8700E6647C /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD641FF46B8800E6647C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80C7DD651FF46B8C00E6647C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 80CFB5711F8D697100FC9715 /* ReplyView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReplyView.xib; sourceTree = ""; }; + 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyView.swift; sourceTree = ""; }; + 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEServerCell.xib; sourceTree = ""; }; + 80D0CE5F205016B40056B17F /* SEServerCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCell.swift; sourceTree = ""; }; + 80D0CE61205023710056B17F /* SECell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SECell.swift; sourceTree = ""; }; + 80D0CE63205034280056B17F /* SEServerCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServerCellModel.swift; sourceTree = ""; }; + 80D0CE6520503C860056B17F /* SERoomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCell.swift; sourceTree = ""; }; + 80D0CE6720503C970056B17F /* SERoomCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SERoomCell.xib; sourceTree = ""; }; + 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SERoomCellModel.swift; sourceTree = ""; }; + 80D0CE6E20509C100056B17F /* SEAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEAvatarView.swift; sourceTree = ""; }; + 80D0CE7020509C230056B17F /* SEAvatarView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEAvatarView.xib; sourceTree = ""; }; + 80D5637120592D32008896D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 80D563742059325A008896D6 /* MimeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MimeType.swift; sourceTree = ""; }; + 80D5637620593533008896D6 /* ParseItemProviders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseItemProviders.swift; sourceTree = ""; }; + 80D955C1202154A300E3F281 /* CASViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CASViewController.swift; sourceTree = ""; }; + 80DC9A6B206BA95600032BE0 /* Localized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Localized.swift; sourceTree = ""; }; + 80DC9A6F206BAC8B00032BE0 /* mimetype.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = mimetype.json; sourceTree = ""; }; + 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensions.swift; sourceTree = ""; }; + 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = APIExtensionsSpec.swift; sourceTree = ""; }; + 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserExtensionsSpec.swift; sourceTree = ""; }; + 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+CustomEmojis.swift"; sourceTree = ""; }; + 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkdownManagerSpec.swift; sourceTree = ""; }; + 80FA9065205313E20069038F /* SEContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEContent.swift; sourceTree = ""; }; + 80FA9067205314040069038F /* SEServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEServer.swift; sourceTree = ""; }; + 80FA906920569F890069038F /* SEComposeFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCell.swift; sourceTree = ""; }; + 80FA906B20569FA10069038F /* SEComposeFileCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeFileCell.xib; sourceTree = ""; }; + 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeFileCellModel.swift; sourceTree = ""; }; + 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeViewModel.swift; sourceTree = ""; }; + 80FA90712056C1190069038F /* SEComposeTextCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCell.swift; sourceTree = ""; }; + 80FA90732056C1350069038F /* SEComposeTextCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEComposeTextCell.xib; sourceTree = ""; }; + 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeTextCellModel.swift; sourceTree = ""; }; + 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEComposeCellModel.swift; sourceTree = ""; }; + 80FA907C2057F4650069038F /* SubmitContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubmitContent.swift; sourceTree = ""; }; + 80FE8DED206584EA0099170E /* SEFileDetailView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SEFileDetailView.xib; sourceTree = ""; }; + 80FE8DEF206587510099170E /* SEFileDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SEFileDetailView.swift; sourceTree = ""; }; + 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.release.xcconfig"; sourceTree = ""; }; + 848088BA204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/RCEmojiKit.strings; sourceTree = ""; }; + 848088BB204370E8005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = ""; }; + 848088BC204370E9005022E8 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/VoiceOver.strings; sourceTree = ""; }; + 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequestSpec.swift; sourceTree = ""; }; + 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CheckTableViewCell.swift; sourceTree = ""; }; + 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CheckTableViewCell.xib; sourceTree = ""; }; + 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = ""; }; + 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextFieldTableViewCell.xib; sourceTree = ""; }; + 897083D21F8CF08100233561 /* FormTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormTableViewCell.swift; sourceTree = ""; }; + 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCreateRequest.swift; sourceTree = ""; }; + 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewRoomViewControllerSpec.swift; sourceTree = ""; }; + 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewControllerSpec.swift; sourceTree = ""; }; + 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequest.swift; sourceTree = ""; }; + 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionMentionsRequestSpec.swift; sourceTree = ""; }; + 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequestSpec.swift; sourceTree = ""; }; + 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModel.swift; sourceTree = ""; }; + 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioFileViewController.swift; sourceTree = ""; }; + 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionFilesRequestSpec.swift; sourceTree = ""; }; + 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManagerSpec.swift; sourceTree = ""; }; + 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UINavigationControllerExtension.swift; sourceTree = ""; }; + 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManagerSpec.swift; sourceTree = ""; }; + 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModelSpec.swift; sourceTree = ""; }; + 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordTableViewController.swift; sourceTree = ""; }; + 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManager.swift; sourceTree = ""; }; + 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserTableViewController.swift; sourceTree = ""; }; + 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModel.swift; sourceTree = ""; }; + 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequest.swift; sourceTree = ""; }; + 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequestSpec.swift; sourceTree = ""; }; + 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequest.swift; sourceTree = ""; }; + 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequestSpec.swift; sourceTree = ""; }; + 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequestSpec.swift; sourceTree = ""; }; + 9987B5952093E4BA007D277C /* FilesListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilesListViewController.swift; sourceTree = ""; }; + 9987B5972093E523007D277C /* FileTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTableViewCell.swift; sourceTree = ""; }; + 9987B5982093E524007D277C /* FileTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FileTableViewCell.xib; sourceTree = ""; }; + 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionFilesRequest.swift; sourceTree = ""; }; + 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequest.swift; sourceTree = ""; }; + 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModel.swift; sourceTree = ""; }; + 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileModelMapping.swift; sourceTree = ""; }; + 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManager.swift; sourceTree = ""; }; + 99C577ED207E4F1500CE9B4D /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = ""; }; + 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewController.swift; sourceTree = ""; }; + 99D888FA204623A900E51306 /* UpdateUserRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequest.swift; sourceTree = ""; }; + 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMessagesRequest.swift; sourceTree = ""; }; + 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListControllerSearch.swift; sourceTree = ""; }; + 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMessagesRequestSpec.swift; sourceTree = ""; }; + 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModelSpec.swift; sourceTree = ""; }; + 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModelSpec.swift; sourceTree = ""; }; + A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TintedTextField.swift; sourceTree = ""; }; + AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.beta.xcconfig"; sourceTree = ""; }; + B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserReviewManager.swift; sourceTree = ""; }; + B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserReviewManagerSpec.swift; sourceTree = ""; }; + BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.debug.xcconfig"; sourceTree = ""; }; + D10E9C191F643457007F1796 /* Channel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Channel.swift; sourceTree = ""; }; + D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelModelMapping.swift; sourceTree = ""; }; + D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSRangeExtensions.swift; sourceTree = ""; }; + D10E9C211F643616007F1796 /* MentionModelMapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionModelMapping.swift; sourceTree = ""; }; + D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionExtensions.swift; sourceTree = ""; }; + D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelSpec.swift; sourceTree = ""; }; + D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MentionSpec.swift; sourceTree = ""; }; + D15C83851F70991F001AB155 /* APIResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResponse.swift; sourceTree = ""; }; + D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestSpec.swift; sourceTree = ""; }; + D18675EB1F716A0D00406FB4 /* LoginRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequest.swift; sourceTree = ""; }; + D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequestSpec.swift; sourceTree = ""; }; + D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtensionsSpec.swift; sourceTree = ""; }; + D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkdownManager.swift; sourceTree = ""; }; + D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFontExtensions.swift; sourceTree = ""; }; + D1D535EB1F7081FA006625D2 /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; + D1D535ED1F708628006625D2 /* APIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIRequest.swift; sourceTree = ""; }; + D1D535F01F70864C006625D2 /* InfoRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequest.swift; sourceTree = ""; }; + D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDataControllerSpec.swift; sourceTree = ""; }; + D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugTrackingCoordinator.swift; sourceTree = ""; }; + D32E28221DFD86C300D6019C /* LauncherProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LauncherProtocol.swift; sourceTree = ""; }; + D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PersistencyCoordinator.swift; sourceTree = ""; }; + D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageTextViewModel.swift; sourceTree = ""; }; + F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat.ShareExtension/Pods-Rocket.Chat.ShareExtension.beta.xcconfig"; sourceTree = ""; }; + FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.beta.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 41DF76DC1D2C50710028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76F01D2C50720028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FB1D2C50720028DBF8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5552046E7DD00E21429 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 41DF76DC1D2C50710028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7DE1B07114BBD1D46E9CC71B /* Pods_Rocket_Chat.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76F01D2C50720028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 15A2FD223558011BFDE03883 /* Pods_Rocket_ChatTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FB1D2C50720028DBF8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5552046E7DD00E21429 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0B3A9760202C4DE10019CA92 /* Resources */ = { - isa = PBXGroup; - children = ( - 14F8A210202E5B2A00175FDC /* AlternateIcons */, - 41DF76E91D2C50710028DBF8 /* Assets.xcassets */, - 41EB22381E5F056600AA3AE7 /* Localizable.strings */, - 80307E431FD75DC0006AD9EF /* VoiceOver.strings */, - ); - path = Resources; - sourceTree = ""; - }; - 0B3A9767202C75A60019CA92 /* ChangeAppIcon */ = { - isa = PBXGroup; - children = ( - 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */, - 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */, - 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */, - ); - path = ChangeAppIcon; - sourceTree = ""; - }; - 0B9AB2BF20444EB300ABEA05 /* Language */ = { - isa = PBXGroup; - children = ( - 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */, - 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */, - 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */, - 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */, - ); - path = Language; - sourceTree = ""; - }; - 0BBCC2C0204546BB001E3B6D /* Language */ = { - isa = PBXGroup; - children = ( - 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */, - ); - path = Language; - sourceTree = ""; - }; - 106DAA428B5BF7289FB70C65 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */, - 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */, - 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 140A95DC202F1E4D003FD564 /* AppIcon */ = { - isa = PBXGroup; - children = ( - 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */, - ); - path = AppIcon; - sourceTree = ""; - }; - 140A95E2202F5321003FD564 /* Drawing */ = { - isa = PBXGroup; - children = ( - 14A6A82F20421DED008C210D /* Color Picker */, - 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */, - 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */, - 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */, - 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */, - 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */, - 140A95E3202F536D003FD564 /* DrawingViewController.swift */, - 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */, - ); - path = Drawing; - sourceTree = ""; - }; - 140C84EA1FC9DB9600032A59 /* CreateChannel */ = { - isa = PBXGroup; - children = ( - 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */, - ); - path = CreateChannel; - sourceTree = ""; - }; - 14A6A82F20421DED008C210D /* Color Picker */ = { - isa = PBXGroup; - children = ( - 14A6A83020421DF8008C210D /* ColorPickerView.swift */, - ); - path = "Color Picker"; - sourceTree = ""; - }; - 14F8A210202E5B2A00175FDC /* AlternateIcons */ = { - isa = PBXGroup; - children = ( - 14F8A211202E5B3200175FDC /* Black */, - 14F8A276202E654900175FDC /* Blue */, - 14F8A247202E649F00175FDC /* BnW */, - 14F8A262202E653600175FDC /* Grey */, - 14F8A212202E5B3B00175FDC /* Red */, - 14F8A275202E654400175FDC /* White */, - ); - path = AlternateIcons; - sourceTree = ""; - }; - 14F8A211202E5B3200175FDC /* Black */ = { - isa = PBXGroup; - children = ( - 14F8A219202E5CBE00175FDC /* Black-29@2x.png */, - 14F8A213202E5CBD00175FDC /* Black-29@3x.png */, - 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */, - 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */, - 14F8A218202E5CBE00175FDC /* Black-60@2x.png */, - 14F8A217202E5CBE00175FDC /* Black-60@3x.png */, - 14F8A216202E5CBE00175FDC /* Black-76@2x.png */, - 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */, - 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */, - ); - path = Black; - sourceTree = ""; - }; - 14F8A212202E5B3B00175FDC /* Red */ = { - isa = PBXGroup; - children = ( - 14F8A232202E5D0400175FDC /* Red-29@2x.png */, - 14F8A230202E5D0400175FDC /* Red-29@3x.png */, - 14F8A236202E5D0500175FDC /* Red-40@2x.png */, - 14F8A235202E5D0500175FDC /* Red-40@3x.png */, - 14F8A234202E5D0400175FDC /* Red-60@2x.png */, - 14F8A22F202E5D0400175FDC /* Red-60@3x.png */, - 14F8A233202E5D0400175FDC /* Red-76@2x.png */, - 14F8A238202E5D0600175FDC /* Red-76@3x.png */, - 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */, - ); - path = Red; - sourceTree = ""; - }; - 14F8A247202E649F00175FDC /* BnW */ = { - isa = PBXGroup; - children = ( - 14F8A24D202E64B100175FDC /* BnW-29@2x.png */, - 14F8A250202E64B100175FDC /* BnW-29@3x.png */, - 14F8A252202E64B100175FDC /* BnW-40@2x.png */, - 14F8A24C202E64B100175FDC /* BnW-40@3x.png */, - 14F8A24E202E64B100175FDC /* BnW-60@2x.png */, - 14F8A24F202E64B100175FDC /* BnW-60@3x.png */, - 14F8A251202E64B100175FDC /* BnW-76@2x.png */, - 14F8A254202E64B200175FDC /* BnW-76@3x.png */, - 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */, - ); - path = BnW; - sourceTree = ""; - }; - 14F8A262202E653600175FDC /* Grey */ = { - isa = PBXGroup; - children = ( - 14F8A264202E653D00175FDC /* Grey-29@2x.png */, - 14F8A269202E653E00175FDC /* Grey-29@3x.png */, - 14F8A263202E653D00175FDC /* Grey-40@2x.png */, - 14F8A268202E653E00175FDC /* Grey-40@3x.png */, - 14F8A26B202E653E00175FDC /* Grey-60@2x.png */, - 14F8A26A202E653E00175FDC /* Grey-60@3x.png */, - 14F8A267202E653D00175FDC /* Grey-76@2x.png */, - 14F8A265202E653D00175FDC /* Grey-76@3x.png */, - 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */, - ); - path = Grey; - sourceTree = ""; - }; - 14F8A275202E654400175FDC /* White */ = { - isa = PBXGroup; - children = ( - 14F8A27D202E658F00175FDC /* White-29@2x.png */, - 14F8A27C202E658F00175FDC /* White-29@3x.png */, - 14F8A27E202E658F00175FDC /* White-40@2x.png */, - 14F8A278202E658E00175FDC /* White-40@3x.png */, - 14F8A27B202E658F00175FDC /* White-60@2x.png */, - 14F8A27F202E658F00175FDC /* White-60@3x.png */, - 14F8A277202E658E00175FDC /* White-76@2x.png */, - 14F8A279202E658E00175FDC /* White-76@3x.png */, - 14F8A27A202E658F00175FDC /* White-83.5@2x.png */, - ); - path = White; - sourceTree = ""; - }; - 14F8A276202E654900175FDC /* Blue */ = { - isa = PBXGroup; - children = ( - 14F8A28F202E65C700175FDC /* Blue-29@2x.png */, - 14F8A289202E65C500175FDC /* Blue-29@3x.png */, - 14F8A28E202E65C600175FDC /* Blue-40@2x.png */, - 14F8A290202E65C700175FDC /* Blue-40@3x.png */, - 14F8A28A202E65C600175FDC /* Blue-60@2x.png */, - 14F8A28B202E65C600175FDC /* Blue-60@3x.png */, - 14F8A291202E65C700175FDC /* Blue-76@2x.png */, - 14F8A28C202E65C600175FDC /* Blue-76@3x.png */, - 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */, - ); - path = Blue; - sourceTree = ""; - }; - 330888B2209901C800D44D4E /* Theme */ = { - isa = PBXGroup; - children = ( - 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */, - 3353DBF7206787E500738D1C /* Theme.swift */, - 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */, - 330888B32099094400D44D4E /* ThemeableViews.swift */, - 3370D8BB2093570D00EEA225 /* ThemeManager.swift */, - ); - path = Theme; - sourceTree = ""; - }; - 3330329F2073905900A9514D /* SubscriptionManager */ = { - isa = PBXGroup; - children = ( - 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */, - 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */, - 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */, - 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */, - 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */, - ); - path = SubscriptionManager; - sourceTree = ""; - }; - 33419D77209916EE00D1682A /* Theme */ = { - isa = PBXGroup; - children = ( - 33419D782099170A00D1682A /* ThemeManagerSpec.swift */, - 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */, - ); - path = Theme; - sourceTree = ""; - }; - 3370D8D420977D4500EEA225 /* Theme */ = { - isa = PBXGroup; - children = ( - 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */, - 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */, - ); - path = Theme; - sourceTree = ""; - }; - 33A5C9C0206A565800FE1C8F /* Emojis */ = { - isa = PBXGroup; - children = ( - 33A5C9C8206A565800FE1C8F /* activity.json */, - 33A5C9C4206A565800FE1C8F /* flags.json */, - 33A5C9C7206A565800FE1C8F /* food.json */, - 33A5C9C9206A565800FE1C8F /* nature.json */, - 33A5C9C6206A565800FE1C8F /* objects.json */, - 33A5C9C5206A565800FE1C8F /* people.json */, - 33A5C9C3206A565800FE1C8F /* regional.json */, - 33A5C9C1206A565800FE1C8F /* symbols.json */, - 33A5C9C2206A565800FE1C8F /* travel.json */, - ); - path = Emojis; - sourceTree = ""; - }; - 33F73B292073BDD800F03F29 /* Notification */ = { - isa = PBXGroup; - children = ( - 33F73B2B2073BDF400F03F29 /* NotificationView.swift */, - 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */, - ); - path = Notification; - sourceTree = ""; - }; - 33F73B2E2073F1FC00F03F29 /* Notification */ = { - isa = PBXGroup; - children = ( - 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */, - 333207FE20766E4F00AD3290 /* NotificationViewController.xib */, - 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */, - ); - path = Notification; - sourceTree = ""; - }; - 4102E3AB1E53272C004BAA82 /* Preferences */ = { - isa = PBXGroup; - children = ( - 0B3A9767202C75A60019CA92 /* ChangeAppIcon */, - 0B9AB2BF20444EB300ABEA05 /* Language */, - 99282260204DE0AE005D2067 /* Profile */, - 3370D8D420977D4500EEA225 /* Theme */, - 9960C82E2063F091004A034C /* Web Browser */, - 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, - 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */, - 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */, - ); - path = Preferences; - sourceTree = ""; - }; - 411EDECE1E30F2D700BC7BE3 /* Uploader */ = { - isa = PBXGroup; - children = ( - 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */, - 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */, - ); - path = Uploader; - sourceTree = ""; - }; - 414A1FF41D4631F600093E10 /* Response */ = { - isa = PBXGroup; - children = ( - 414A1FF51D46320F00093E10 /* ResponseMessage.swift */, - 807371991F94E83600D53ADF /* SocketError.swift */, - 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */, - 414A1FFB1D46395900093E10 /* SocketResponse.swift */, - ); - path = Response; - sourceTree = ""; - }; - 414EFF901E54FE35004F001F /* Models */ = { - isa = PBXGroup; - children = ( - 414EFF911E54FE69004F001F /* AuthExtensions.swift */, - 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */, - 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */, - 41D7CA861E644E47000F38EA /* MessageExtensions.swift */, - D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */, - 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */, - ); - path = Models; - sourceTree = ""; - }; - 41534EE0208E43FF009C5A17 /* Launcher */ = { - isa = PBXGroup; - children = ( - 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */, - ); - path = Launcher; - sourceTree = ""; - }; - 4153E80320504BC800FBC26B /* Preferences */ = { - isa = PBXGroup; - children = ( - 4153E80420504BE700FBC26B /* ReusableViewText.swift */, - 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */, - 412EF3C52050507C001689A3 /* ReusableViewText.xib */, - ); - path = Preferences; - sourceTree = ""; - }; - 41552F641D30307D0081438D /* Model */ = { - isa = PBXGroup; - children = ( - 8076FDB72048580A00114F28 /* AuthManager */, - 3330329F2073905900A9514D /* SubscriptionManager */, - 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */, - 805DEC341FFC03380033151B /* CustomEmojiManager.swift */, - 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */, - 41DC7A1C1D38471700896FC0 /* MessageManager.swift */, - 806401341FB09F8A00990572 /* PermissionManager.swift */, - 4162E1521D651A8800AAAE49 /* UserManager.swift */, - ); - path = Model; - sourceTree = ""; - }; - 41552F691D3035DB0081438D /* Managers */ = { - isa = PBXGroup; - children = ( - 41534EE0208E43FF009C5A17 /* Launcher */, - 419D78851FBDCF5A005FC7A2 /* Requests */, - 417A70011D47916C00FF46EE /* Socket */, - 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */, - 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */, - 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */, - 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */, - 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */, - 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */, - 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */, - 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */, - 411119B71F6825C30019854B /* NetworkManagerSpec.swift */, - 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */, - 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */, - 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */, - 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */, - 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */, - B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */, - 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */, - ); - path = Managers; - sourceTree = ""; - }; - 4161332F1D46CA2800E09DA2 /* Views */ = { - isa = PBXGroup; - children = ( - 80D41DFB2092152A00034D1F /* ActionSheets */, - 41C275DD1D847FEE003C88CF /* Avatar */, - 416133301D46CA3100E09DA2 /* Cells */, - 41F167E51DAC450200775CCA /* Chat */, - 897083CC1F8CF08100233561 /* Form */, - 41ADDD471E9DBAE90007A458 /* Loader */, - 33F73B292073BDD800F03F29 /* Notification */, - 418C4DC41DC4C05000ABED4C /* Sections */, - 41A91AED1E51C4E5005C94B1 /* Subscriptions */, - 7758A7621F8FA34300FAA244 /* UIPickerView */, - ); - path = Views; - sourceTree = ""; - }; - 416133301D46CA3100E09DA2 /* Cells */ = { - isa = PBXGroup; - children = ( - 416133351D46CA7400E09DA2 /* Chat */, - 4153E80320504BC800FBC26B /* Preferences */, - 4192054A1D52F4E7004EEC5F /* Subscription */, - 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */, - 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 416133351D46CA7400E09DA2 /* Chat */ = { - isa = PBXGroup; - children = ( - 800FCD431F728E6A00D9A692 /* Info */, - 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */, - 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */, - 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */, - 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */, - 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */, - 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */, - 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */, - 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */, - 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */, - 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, - 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, - 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */, - 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */, - 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */, - 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, - 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, - 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */, - 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */, - 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, - 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, - D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, - 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, - 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, - 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */, - 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */, - 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, - 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, - ); - path = Chat; - sourceTree = ""; - }; - 416133361D46DB0900E09DA2 /* Models */ = { - isa = PBXGroup; - children = ( - 80D41E0320924A6500034D1F /* Auth */, - 77C261281F97453600724A1F /* CustomFields */, - 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */, - 77C261241F97445300724A1F /* AuthSettingsSpec.swift */, - 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */, - D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */, - 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */, - 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */, - 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */, - 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */, - 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */, - D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */, - 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */, - 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */, - 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */, - 808792371FB14B3300EFE77F /* PermissionSpec.swift */, - 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */, - 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */, - 4161333B1D46E32F00E09DA2 /* UserSpec.swift */, - ); - path = Models; - sourceTree = ""; - }; - 416296F71F41B41100BCCEDD /* Helpers */ = { - isa = PBXGroup; - children = ( - 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */, - 35BCD302201A9FB800B4BE5A /* AskSpec.swift */, - 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */, - 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */, - 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - 4171ABA31E7C0556009FC3F0 /* Views */ = { - isa = PBXGroup; - children = ( - D3CFAFBE1E907FC100BADC0A /* Chat */, - 140C84EA1FC9DB9600032A59 /* CreateChannel */, - 418C743F1FA3626200499577 /* UIPickerView */, - 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */, - 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */, - ); - path = Views; - sourceTree = ""; - }; - 4174CB0A1D2D990F0086DAC8 /* Controllers */ = { - isa = PBXGroup; - children = ( - 4174CB101D2D997E0086DAC8 /* Auth */, - 4174CB111D2D99840086DAC8 /* Base */, - 41E2FA021D414ECC00238DFD /* Chat */, - 140A95E2202F5321003FD564 /* Drawing */, - 33F73B2E2073F1FC00F03F29 /* Notification */, - 4102E3AB1E53272C004BAA82 /* Preferences */, - 41E2FA031D414ED400238DFD /* Subscriptions */, - 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */, - ); - path = Controllers; - sourceTree = ""; - }; - 4174CB0B1D2D99170086DAC8 /* Storyboards */ = { - isa = PBXGroup; - children = ( - 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */, - 41E2F9FE1D414DE800238DFD /* Chat.storyboard */, - 140A95E0202F526C003FD564 /* Drawing.storyboard */, - 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */, - 4102E3A91E532323004BAA82 /* Preferences.storyboard */, - 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */, - ); - path = Storyboards; - sourceTree = ""; - }; - 4174CB101D2D997E0086DAC8 /* Auth */ = { - isa = PBXGroup; - children = ( - 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */, - 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */, - 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */, - 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */, - 80D955C1202154A300E3F281 /* CASViewController.swift */, - 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */, - 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */, - 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */, - 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */, - 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */, - 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */, - 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */, - ); - path = Auth; - sourceTree = ""; - }; - 4174CB111D2D99840086DAC8 /* Base */ = { - isa = PBXGroup; - children = ( - 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */, - 4174CB121D2D99960086DAC8 /* BaseViewController.swift */, - ); - path = Base; - sourceTree = ""; - }; - 4174CB181D2D9D940086DAC8 /* Managers */ = { - isa = PBXGroup; - children = ( - D32E28201DFD86AC00D6019C /* Launcher */, - 41552F641D30307D0081438D /* Model */, - 419D78811FBDB78D005FC7A2 /* Requests */, - 41F1702C1D425358007E6948 /* Socket */, - 411EDECE1E30F2D700BC7BE3 /* Uploader */, - 4101BF001F8D0A1700F67E89 /* AppManager.swift */, - 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */, - 419ECCA31F3CA21A005F224B /* DownloadManager.swift */, - 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */, - 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */, - D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */, - 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */, - 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */, - 335F4F02207A31D3005E14AF /* NotificationManager.swift */, - 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */, - 597ECBA31E3708B10041C5C5 /* PushManager.swift */, - 41499C8E1F2A116900790EA7 /* ServerManager.swift */, - B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */, - 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */, - 41B554C61FBF0F9D000510B7 /* WindowManager.swift */, - ); - path = Managers; - sourceTree = ""; - }; - 4174CB1D1D2DB3270086DAC8 /* Extensions */ = { - isa = PBXGroup; - children = ( - 8013F8631FD5E11100EE1A4E /* API */, - 414EFF901E54FE35004F001F /* Models */, - 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */, - 597ECBA11E3708A50041C5C5 /* DataExtension.swift */, - 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */, - 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */, - 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */, - D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */, - 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */, - 8076FDA8204853DE00114F28 /* RealmExecute.swift */, - 8076FDA32048533000114F28 /* String+Random.swift */, - 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */, - 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */, - 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */, - D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */, - 41494B911D63C6280004F369 /* UIImageExtension.swift */, - 419205481D52EDE6004EEC5F /* UILabelExtension.swift */, - 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */, - 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */, - 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */, - 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */, - 41BAE3E61D71B26C00C2445A /* URLExtension.swift */, - 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */, - 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - 417A70011D47916C00FF46EE /* Socket */ = { - isa = PBXGroup; - children = ( - 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */, - 41552F671D3035D80081438D /* SocketManagerSpec.swift */, - ); - path = Socket; - sourceTree = ""; - }; - 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */ = { - isa = PBXGroup; - children = ( - 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */, - 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */, - ); - path = WebViewEmbedded; - sourceTree = ""; - }; - 418C4DC41DC4C05000ABED4C /* Sections */ = { - isa = PBXGroup; - children = ( - 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */, - 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */, - 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */, - 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */, - ); - path = Sections; - sourceTree = ""; - }; - 418C743F1FA3626200499577 /* UIPickerView */ = { - isa = PBXGroup; - children = ( - 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */, - 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */, - ); - path = UIPickerView; - sourceTree = ""; - }; - 4192054A1D52F4E7004EEC5F /* Subscription */ = { - isa = PBXGroup; - children = ( - 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */, - 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */, - 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */, - 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */, - 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 4199A9861DABCC2E0035F820 /* External */ = { - isa = PBXGroup; - children = ( - 4199A9871DABCC570035F820 /* RCEmojiKit */, - ); - path = External; - sourceTree = ""; - }; - 4199A9871DABCC570035F820 /* RCEmojiKit */ = { - isa = PBXGroup; - children = ( - 33A5C9C0206A565800FE1C8F /* Emojis */, - 80A97EFD200628A300A2774C /* Views */, - 8069D26D1FFF876D00C75926 /* Emoji.swift */, - 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */, - 807FB53C2044B49800E21429 /* Emojione+Transform.swift */, - 4199A9881DABCC570035F820 /* Emojione.swift */, - 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */, - 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */, - 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */, - 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */, - 33A5C9BD206A561400FE1C8F /* emojiNames.json */, - ); - path = RCEmojiKit; - sourceTree = ""; - }; - 419D78811FBDB78D005FC7A2 /* Requests */ = { - isa = PBXGroup; - children = ( - 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */, - ); - path = Requests; - sourceTree = ""; - }; - 419D78851FBDCF5A005FC7A2 /* Requests */ = { - isa = PBXGroup; - children = ( - 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */, - ); - path = Requests; - sourceTree = ""; - }; - 41A79C0D1D2F084F00A1968E /* Models */ = { - isa = PBXGroup; - children = ( - 8076FDAC2048566100114F28 /* Auth */, - 41BD37D71E290D7400CBC4C2 /* Base */, - 7798B4131F852AE30074B2F4 /* CustomFields */, - 41BD37DF1E290F1500CBC4C2 /* Handler */, - 41BD37DE1E290F1000CBC4C2 /* Mapping */, - 8076FDCF2048644300114F28 /* Message */, - 8076FDC120485A0B00114F28 /* Subscription */, - 8076FDD4204864D400114F28 /* User */, - 41900C261D9FE35400308EF4 /* Attachment.swift */, - 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */, - 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */, - 8013F8661FD6B4F400EE1A4E /* Command.swift */, - 805DEC361FFC08870033151B /* CustomEmoji.swift */, - 8073719F1F96937100D53ADF /* LoginService.swift */, - 806401301FB09DE800990572 /* Permission.swift */, - 99C577ED207E4F1500CE9B4D /* File.swift */, - ); - path = Models; - sourceTree = ""; - }; - 41A91AED1E51C4E5005C94B1 /* Subscriptions */ = { - isa = PBXGroup; - children = ( - 9987B5972093E523007D277C /* FileTableViewCell.swift */, - 9987B5982093E524007D277C /* FileTableViewCell.xib */, - 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */, - 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */, - 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */, - A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */, - ); - path = Subscriptions; - sourceTree = ""; - }; - 41ADDD471E9DBAE90007A458 /* Loader */ = { - isa = PBXGroup; - children = ( - 41ADDD481E9DBB100007A458 /* LoaderView.swift */, - ); - path = Loader; - sourceTree = ""; - }; - 41B96363207E48690068F1A6 /* Validators */ = { - isa = PBXGroup; - children = ( - 41B96361207E48260068F1A6 /* MessageTextValidator.swift */, - ); - path = Validators; - sourceTree = ""; - }; - 41BD37D71E290D7400CBC4C2 /* Base */ = { - isa = PBXGroup; - children = ( - 4112DC551FFFB9B1005995E1 /* BaseModel.swift */, - 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */, - 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */, - ); - path = Base; - sourceTree = ""; - }; - 41BD37DE1E290F1000CBC4C2 /* Mapping */ = { - isa = PBXGroup; - children = ( - 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */, - 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */, - D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */, - 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */, - 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */, - D10E9C211F643616007F1796 /* MentionModelMapping.swift */, - 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */, - 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */, - 806401321FB09EC400990572 /* PermissionModelMapping.swift */, - 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */, - 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */, - 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */, - ); - path = Mapping; - sourceTree = ""; - }; - 41BD37DF1E290F1500CBC4C2 /* Handler */ = { - isa = PBXGroup; - children = ( - 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */, - 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */, - 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */, - ); - path = Handler; - sourceTree = ""; - }; - 41C275DD1D847FEE003C88CF /* Avatar */ = { - isa = PBXGroup; - children = ( - 41C275DE1D848005003C88CF /* AvatarView.swift */, - 41C275E01D84815C003C88CF /* AvatarView.xib */, - ); - path = Avatar; - sourceTree = ""; - }; - 41D701D41E67103C00FED2EE /* Helpers */ = { - isa = PBXGroup; - children = ( - 41B96363207E48690068F1A6 /* Validators */, - 80307E3A1FD75BD3006AD9EF /* VoiceOver */, - 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */, - 802A4E23204D730F0072CD23 /* AppGroup.swift */, - 35BCD300201A57EA00B4BE5A /* Ask.swift */, - 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */, - 800F38EC2019492D0005CB78 /* DeepLink.swift */, - 80DC9A6B206BA95600032BE0 /* Localized.swift */, - 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */, - 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */, - 413996161F3B44500075F96E /* UploadHelper.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - 41DC7A201D386B2C00896FC0 /* Extensions */ = { - isa = PBXGroup; - children = ( - 80E99F2A1FD8B4AC00B70B59 /* API */, - 80E99F2D1FD8B4E200B70B59 /* Models */, - 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */, - 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */, - D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */, - 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */, - 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */, - 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - 41DF76D61D2C50710028DBF8 = { - isa = PBXGroup; - children = ( - 41DF76E11D2C50710028DBF8 /* Rocket.Chat */, - 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */, - 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */, - 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */, - 106DAA428B5BF7289FB70C65 /* Frameworks */, - EE693BBD0CC2727847214E2D /* Pods */, - 41DF76E01D2C50710028DBF8 /* Products */, - ); - sourceTree = ""; - }; - 41DF76E01D2C50710028DBF8 /* Products */ = { - isa = PBXGroup; - children = ( - 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */, - 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */, - 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */, - 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */, - ); - name = Products; - sourceTree = ""; - }; - 41DF76E11D2C50710028DBF8 /* Rocket.Chat */ = { - isa = PBXGroup; - children = ( - 330888B2209901C800D44D4E /* Theme */, - D1D535EA1F7081E6006625D2 /* API */, - 4174CB0A1D2D990F0086DAC8 /* Controllers */, - 4174CB1D1D2DB3270086DAC8 /* Extensions */, - 4199A9861DABCC2E0035F820 /* External */, - 41D701D41E67103C00FED2EE /* Helpers */, - 4174CB181D2D9D940086DAC8 /* Managers */, - 41A79C0D1D2F084F00A1968E /* Models */, - 0B3A9760202C4DE10019CA92 /* Resources */, - 4174CB0B1D2D99170086DAC8 /* Storyboards */, - 4161332F1D46CA2800E09DA2 /* Views */, - 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */, - 41DF76EE1D2C50720028DBF8 /* Info.plist */, - 41833F4D1DEF16B600E54655 /* Keys.plist */, - 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, - 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */, - ); - path = Rocket.Chat; - sourceTree = ""; - }; - 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */ = { - isa = PBXGroup; - children = ( - 33419D77209916EE00D1682A /* Theme */, - D18675E71F70A55D00406FB4 /* API */, - D1DA25261F695AC700DB6ABB /* Controllers */, - 41DC7A201D386B2C00896FC0 /* Extensions */, - 80A97EFE2006291E00A2774C /* External */, - 416296F71F41B41100BCCEDD /* Helpers */, - 41552F691D3035DB0081438D /* Managers */, - 416133361D46DB0900E09DA2 /* Models */, - 925FF74F1E8EFC9200982043 /* Preferences */, - 4171ABA31E7C0556009FC3F0 /* Views */, - 41DF76F91D2C50720028DBF8 /* Info.plist */, - 803782B61FB4751D00DED049 /* RealmTestCase.swift */, - ); - path = Rocket.ChatTests; - sourceTree = ""; - }; - 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */ = { - isa = PBXGroup; - children = ( - 41DF77041D2C50720028DBF8 /* Info.plist */, - 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */, - ); - path = Rocket.ChatUITests; - sourceTree = ""; - }; - 41E2FA021D414ECC00238DFD /* Chat */ = { - isa = PBXGroup; - children = ( - 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */, - 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */, - 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */, - 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */, - 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */, - 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */, - 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */, - 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */, - 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */, - 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */, - 41E2FA061D41513C00238DFD /* ChatViewController.swift */, - 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */, - 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */, - 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */, - 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */, - 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */, - ); - path = Chat; - sourceTree = ""; - }; - 41E2FA031D414ED400238DFD /* Subscriptions */ = { - isa = PBXGroup; - children = ( - 9987B5952093E4BA007D277C /* FilesListViewController.swift */, - 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */, - 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */, - 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */, - 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */, - 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */, - ); - path = Subscriptions; - sourceTree = ""; - }; - 41F167E51DAC450200775CCA /* Chat */ = { - isa = PBXGroup; - children = ( - 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */, - 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */, - 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */, - 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */, - 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */, - 3370D8B920926E5700EEA225 /* ChatView.swift */, - 339B6929205042D300F97392 /* KeyboardFrameView.swift */, - 1435BFA21F9B601600FB2768 /* RCTextView.swift */, - 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */, - 80CFB5711F8D697100FC9715 /* ReplyView.xib */, - ); - path = Chat; - sourceTree = ""; - }; - 41F1702C1D425358007E6948 /* Socket */ = { - isa = PBXGroup; - children = ( - 414A1FF41D4631F600093E10 /* Response */, - 414A1FF91D46395400093E10 /* SocketManager.swift */, - ); - path = Socket; - sourceTree = ""; - }; - 7758A7621F8FA34300FAA244 /* UIPickerView */ = { - isa = PBXGroup; - children = ( - 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */, - 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */, - ); - path = UIPickerView; - sourceTree = ""; - }; - 7798B4131F852AE30074B2F4 /* CustomFields */ = { - isa = PBXGroup; - children = ( - 7798B4181F852D670074B2F4 /* CustomField.swift */, - 7798B4141F852B720074B2F4 /* SelectField.swift */, - 77BA81501F87C4CB00F295F4 /* TextField.swift */, - ); - path = CustomFields; - sourceTree = ""; - }; - 77C261281F97453600724A1F /* CustomFields */ = { - isa = PBXGroup; - children = ( - 77C261291F97453600724A1F /* CustomFieldsSpec.swift */, - 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */, - 77C2612B1F97453600724A1F /* TextFieldSpec.swift */, - ); - path = CustomFields; - sourceTree = ""; - }; - 80054CFA1FDAFD3A00F5ECF9 /* General */ = { - isa = PBXGroup; - children = ( - D1D535F01F70864C006625D2 /* InfoRequest.swift */, - 807C7C11207522EF006B600E /* LoginServicesRequest.swift */, - 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */, - 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */, - 807C7C0720751EDB006B600E /* SpotlightRequest.swift */, - ); - path = General; - sourceTree = ""; - }; - 800FCD431F728E6A00D9A692 /* Info */ = { - isa = PBXGroup; - children = ( - 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */, - 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */, - 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */, - 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */, - 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */, - 800FCD491F728E6A00D9A692 /* MemberCell.swift */, - 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */, - ); - path = Info; - sourceTree = ""; - }; - 8013F8631FD5E11100EE1A4E /* API */ = { - isa = PBXGroup; - children = ( - 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */, - ); - path = API; - sourceTree = ""; - }; - 8013F86E1FD6B59D00EE1A4E /* Clients */ = { - isa = PBXGroup; - children = ( - 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */, - 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */, - 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */, - 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */, - 807C7C0520751ED1006B600E /* SpotlightClient.swift */, - 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */, - ); - path = Clients; - sourceTree = ""; - }; - 8013F8741FD6B5D100EE1A4E /* Middlewares */ = { - isa = PBXGroup; - children = ( - 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */, - ); - path = Middlewares; - sourceTree = ""; - }; - 8013F8771FD6B61400EE1A4E /* Middlewares */ = { - isa = PBXGroup; - children = ( - 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */, - ); - path = Middlewares; - sourceTree = ""; - }; - 8013F87E1FD6B66900EE1A4E /* Clients */ = { - isa = PBXGroup; - children = ( - 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */, - 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */, - 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */, - 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */, - ); - path = Clients; - sourceTree = ""; - }; - 8013F8831FD6B74800EE1A4E /* Command */ = { - isa = PBXGroup; - children = ( - 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */, - 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */, - ); - path = Command; - sourceTree = ""; - }; - 8013F88A1FD6B79900EE1A4E /* Command */ = { - isa = PBXGroup; - children = ( - 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */, - ); - path = Command; - sourceTree = ""; - }; - 8020CCF31FEAD8AA003424F4 /* EmojiPicker */ = { - isa = PBXGroup; - children = ( - 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */, - 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */, - 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */, - 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */, - ); - path = EmojiPicker; - sourceTree = ""; - }; - 80213C0F1FE063B200809E14 /* HTTP */ = { - isa = PBXGroup; - children = ( - 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */, - ); - path = HTTP; - sourceTree = ""; - }; - 80235D1C1F740AAC00A56CA5 /* Subscription */ = { - isa = PBXGroup; - children = ( - 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */, - 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */, - 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */, - 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */, - 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */, - 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 80235D201F7442C100A56CA5 /* Subscription */ = { - isa = PBXGroup; - children = ( - 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */, - 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */, - 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */, - 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */, - 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 802498EC1F7A82CD005477EC /* Authentication */ = { - isa = PBXGroup; - children = ( - D18675EB1F716A0D00406FB4 /* LoginRequest.swift */, - 802498ED1F7A8380005477EC /* MeRequest.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 802498EF1F7A9B92005477EC /* Authentication */ = { - isa = PBXGroup; - children = ( - D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */, - 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */, - ); - path = Authentication; - sourceTree = ""; - }; - 80307E3A1FD75BD3006AD9EF /* VoiceOver */ = { - isa = PBXGroup; - children = ( - 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */, - 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */, - ); - path = VoiceOver; - sourceTree = ""; - }; - 806C2ACE206BBAF200EE5F67 /* External */ = { - isa = PBXGroup; - children = ( - 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */, - ); - path = External; - sourceTree = ""; - }; - 806C59A01FBB0BA700C32D0A /* Message */ = { - isa = PBXGroup; - children = ( - 806728FE20079734009FE94D /* DeleteMessageRequest.swift */, - 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */, - 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */, - 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */, - 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */, - 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */, - 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */, - 3370D8C12095995800EEA225 /* StarMessageRequest.swift */, - ); - path = Message; - sourceTree = ""; - }; - 806C59A31FBB2F3700C32D0A /* Message */ = { - isa = PBXGroup; - children = ( - 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */, - 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */, - 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */, - 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */, - 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */, - 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */, - ); - path = Message; - sourceTree = ""; - }; - 8076FDAC2048566100114F28 /* Auth */ = { - isa = PBXGroup; - children = ( - 41A79C121D2F09F200A1968E /* Auth.swift */, - 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */, - 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */, - 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */, - 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */, - 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */, - 8076FDB42048571200114F28 /* AuthUser.swift */, - ); - path = Auth; - sourceTree = ""; - }; - 8076FDB72048580A00114F28 /* AuthManager */ = { - isa = PBXGroup; - children = ( - 41552F651D30308C0081438D /* AuthManager.swift */, - 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */, - 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */, - 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */, - ); - path = AuthManager; - sourceTree = ""; - }; - 8076FDC120485A0B00114F28 /* Subscription */ = { - isa = PBXGroup; - children = ( - 41DAE93D1D318F350098E068 /* Subscription.swift */, - 8076FDC62048632300114F28 /* SubscriptionQueries.swift */, - 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */, - 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */, - ); - path = Subscription; - sourceTree = ""; - }; - 8076FDCF2048644300114F28 /* Message */ = { - isa = PBXGroup; - children = ( - D10E9C191F643457007F1796 /* Channel.swift */, - 4159720B1D3DB854002258F4 /* Email.swift */, - 4159720D1D3DB882002258F4 /* Mention.swift */, - 41DC7A1A1D38454500896FC0 /* Message.swift */, - 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */, - 8076FDD02048646500114F28 /* MessageReply.swift */, - 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */, - ); - path = Message; - sourceTree = ""; - }; - 8076FDD4204864D400114F28 /* User */ = { - isa = PBXGroup; - children = ( - 41A79C0E1D2F085F00A1968E /* User.swift */, - 8076FDD5204864E700114F28 /* UserQueries.swift */, - 8076FDD72048654F00114F28 /* UserUtils.swift */, - ); - path = User; - sourceTree = ""; - }; - 8076FDE02048A69200114F28 /* Compose */ = { - isa = PBXGroup; - children = ( - 80D563702058A8A7008896D6 /* Cells */, - 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */, - 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */, - 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */, - 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */, - 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */, - ); - path = Compose; - sourceTree = ""; - }; - 8076FDEB2049A5CB00114F28 /* Base */ = { - isa = PBXGroup; - children = ( - 80D0CE6E20509C100056B17F /* SEAvatarView.swift */, - 80D0CE7020509C230056B17F /* SEAvatarView.xib */, - 80D0CE61205023710056B17F /* SECell.swift */, - 8076FDEC2049A5F600114F28 /* SECellModel.swift */, - 802A4E102049C7340072CD23 /* SENavigationController.swift */, - 8076FDD920489F5900114F28 /* SEViewController.swift */, - 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */, - ); - path = Base; - sourceTree = ""; - }; - 807C7C0A20751F06006B600E /* General */ = { - isa = PBXGroup; - children = ( - D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */, - 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */, - 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */, - ); - path = General; - sourceTree = ""; - }; - 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { - isa = PBXGroup; - children = ( - 8076FDEB2049A5CB00114F28 /* Base */, - 8076FDE02048A69200114F28 /* Compose */, - 806C2ACE206BBAF200EE5F67 /* External */, - 80D5637320593245008896D6 /* Helpers */, - 807FB56C20472B2700E21429 /* Resources */, - 807FB57E2048376900E21429 /* Rooms */, - 807FB5802048378500E21429 /* Servers */, - 80977AC0204F374100C41435 /* State */, - 807FB55F2046E7DD00E21429 /* Info.plist */, - 807FB55C2046E7DD00E21429 /* Main.storyboard */, - 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */, - ); - path = Rocket.Chat.ShareExtension; - sourceTree = ""; - }; - 807FB56C20472B2700E21429 /* Resources */ = { - isa = PBXGroup; - children = ( - 80D5637120592D32008896D6 /* Assets.xcassets */, - 807FB57120472B6A00E21429 /* Localizable.strings */, - ); - path = Resources; - sourceTree = ""; - }; - 807FB57E2048376900E21429 /* Rooms */ = { - isa = PBXGroup; - children = ( - 80D0CE6520503C860056B17F /* SERoomCell.swift */, - 80D0CE6720503C970056B17F /* SERoomCell.xib */, - 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */, - 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */, - 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */, - ); - path = Rooms; - sourceTree = ""; - }; - 807FB5802048378500E21429 /* Servers */ = { - isa = PBXGroup; - children = ( - 80D0CE5F205016B40056B17F /* SEServerCell.swift */, - 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */, - 80D0CE63205034280056B17F /* SEServerCellModel.swift */, - 807FB568204729E500E21429 /* SEServersViewController.swift */, - 807FB581204837AF00E21429 /* SEServersViewModel.swift */, - ); - path = Servers; - sourceTree = ""; - }; - 80977AB7204EFBBB00C41435 /* Navigation */ = { - isa = PBXGroup; - children = ( - 80977AB8204EFBCC00C41435 /* SENavigation.swift */, - 800640F62049BA25006D990F /* SEScene.swift */, - 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */, - ); - path = Navigation; - sourceTree = ""; - }; - 80977AC0204F374100C41435 /* State */ = { - isa = PBXGroup; - children = ( - 80FA907B2057F43F0069038F /* ActionCreators */, - 80977AB7204EFBBB00C41435 /* Navigation */, - 80FA9064205313D10069038F /* Resources */, - 80977ABE204F36F200C41435 /* SESearchState.swift */, - 80977AC1204F37C200C41435 /* SEState.swift */, - 8076FD9920484A6000114F28 /* SEStore.swift */, - ); - path = State; - sourceTree = ""; - }; - 809B530C1FE2EF7C00833DD2 /* Reaction */ = { - isa = PBXGroup; - children = ( - 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */, - 809B53131FE3294400833DD2 /* ReactionListView.xib */, - 809B530F1FE2F17D00833DD2 /* ReactionView.swift */, - 809B53111FE2F2F900833DD2 /* ReactionView.xib */, - 8041C0412028C7EF007E21FA /* ReactorListView.swift */, - 8041C0432028C828007E21FA /* ReactorListView.xib */, - 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */, - ); - path = Reaction; - sourceTree = ""; - }; - 80A97EFD200628A300A2774C /* Views */ = { - isa = PBXGroup; - children = ( - 8020CCF31FEAD8AA003424F4 /* EmojiPicker */, - 809B530C1FE2EF7C00833DD2 /* Reaction */, - 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */, - 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */, - 806465ED1FED1AFE001F27DB /* EmojiView.swift */, - 806465EB1FED19B9001F27DB /* EmojiView.xib */, - ); - path = Views; - sourceTree = ""; - }; - 80A97EFE2006291E00A2774C /* External */ = { - isa = PBXGroup; - children = ( - 80A97EFF2006292500A2774C /* RCEmojiKit */, - ); - path = External; - sourceTree = ""; - }; - 80A97EFF2006292500A2774C /* RCEmojiKit */ = { - isa = PBXGroup; - children = ( - 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */, - 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */, - ); - path = RCEmojiKit; - sourceTree = ""; - }; - 80D41DFB2092152A00034D1F /* ActionSheets */ = { - isa = PBXGroup; - children = ( - 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */, - ); - path = ActionSheets; - sourceTree = ""; - }; - 80D41E0320924A6500034D1F /* Auth */ = { - isa = PBXGroup; - children = ( - 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */, - 416133391D46E0A200E09DA2 /* AuthSpec.swift */, - ); - path = Auth; - sourceTree = ""; - }; - 80D563702058A8A7008896D6 /* Cells */ = { - isa = PBXGroup; - children = ( - 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */, - 80FA906920569F890069038F /* SEComposeFileCell.swift */, - 80FA906B20569FA10069038F /* SEComposeFileCell.xib */, - 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */, - 80FA90712056C1190069038F /* SEComposeTextCell.swift */, - 80FA90732056C1350069038F /* SEComposeTextCell.xib */, - 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */, - 80FE8DEF206587510099170E /* SEFileDetailView.swift */, - 80FE8DED206584EA0099170E /* SEFileDetailView.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 80D5637320593245008896D6 /* Helpers */ = { - isa = PBXGroup; - children = ( - 80D563742059325A008896D6 /* MimeType.swift */, - 8029B2F12059B6F60067157B /* VideoInfo.swift */, - 80DC9A6F206BAC8B00032BE0 /* mimetype.json */, - ); - path = Helpers; - sourceTree = ""; - }; - 80E99F2A1FD8B4AC00B70B59 /* API */ = { - isa = PBXGroup; - children = ( - 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */, - ); - path = API; - sourceTree = ""; - }; - 80E99F2D1FD8B4E200B70B59 /* Models */ = { - isa = PBXGroup; - children = ( - 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */, - 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */, - ); - path = Models; - sourceTree = ""; - }; - 80FA9064205313D10069038F /* Resources */ = { - isa = PBXGroup; - children = ( - 80FA9065205313E20069038F /* SEContent.swift */, - 80FA9067205314040069038F /* SEServer.swift */, - ); - path = Resources; - sourceTree = ""; - }; - 80FA907B2057F43F0069038F /* ActionCreators */ = { - isa = PBXGroup; - children = ( - 80D5637620593533008896D6 /* ParseItemProviders.swift */, - 80977AB5204EEF1E00C41435 /* SelectServer.swift */, - 80FA907C2057F4650069038F /* SubmitContent.swift */, - ); - path = ActionCreators; - sourceTree = ""; - }; - 897083CC1F8CF08100233561 /* Form */ = { - isa = PBXGroup; - children = ( - 897083CD1F8CF08100233561 /* Cells */, - 897083D21F8CF08100233561 /* FormTableViewCell.swift */, - ); - path = Form; - sourceTree = ""; - }; - 897083CD1F8CF08100233561 /* Cells */ = { - isa = PBXGroup; - children = ( - 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */, - 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */, - 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */, - 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */, - 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */, - 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */, - ); - path = Cells; - sourceTree = ""; - }; - 925FF74F1E8EFC9200982043 /* Preferences */ = { - isa = PBXGroup; - children = ( - 140A95DC202F1E4D003FD564 /* AppIcon */, - 0BBCC2C0204546BB001E3B6D /* Language */, - 99F41BCC20658AD900B240FC /* Profile */, - 994DA2B12065480300083FB8 /* Web Browser */, - 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */, - ); - path = Preferences; - sourceTree = ""; - }; - 99282260204DE0AE005D2067 /* Profile */ = { - isa = PBXGroup; - children = ( - 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */, - 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */, - 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */, - 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */, - ); - path = Profile; - sourceTree = ""; - }; - 994DA2B12065480300083FB8 /* Web Browser */ = { - isa = PBXGroup; - children = ( - 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */, - ); - path = "Web Browser"; - sourceTree = ""; - }; - 9960C82E2063F091004A034C /* Web Browser */ = { - isa = PBXGroup; - children = ( - 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */, - 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */, - ); - path = "Web Browser"; - sourceTree = ""; - }; - 9977302520725B3A009AF465 /* Emoji */ = { - isa = PBXGroup; - children = ( - 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */, - ); - path = Emoji; - sourceTree = ""; - }; - 9977302820727DA0009AF465 /* Emoji */ = { - isa = PBXGroup; - children = ( - 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */, - ); - path = Emoji; - sourceTree = ""; - }; - 998165C8204EBB5E0059D346 /* User */ = { - isa = PBXGroup; - children = ( - 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */, - 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */, - 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */, - ); - path = User; - sourceTree = ""; - }; - 99D888F92046239100E51306 /* User */ = { - isa = PBXGroup; - children = ( - 99D888FA204623A900E51306 /* UpdateUserRequest.swift */, - 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */, - 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */, - ); - path = User; - sourceTree = ""; - }; - 99F41BCC20658AD900B240FC /* Profile */ = { - isa = PBXGroup; - children = ( - 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */, - 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */, - ); - path = Profile; - sourceTree = ""; - }; - D18675E71F70A55D00406FB4 /* API */ = { - isa = PBXGroup; - children = ( - 8013F87E1FD6B66900EE1A4E /* Clients */, - 8013F8771FD6B61400EE1A4E /* Middlewares */, - D18675E81F70A56800406FB4 /* Requests */, - 80A63C561F71D2E400FE5AC4 /* APISpec.swift */, - 8073719B1F963FA400D53ADF /* APITestCase.swift */, - 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */, - 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */, - ); - path = API; - sourceTree = ""; - }; - D18675E81F70A56800406FB4 /* Requests */ = { - isa = PBXGroup; - children = ( - 802498EF1F7A9B92005477EC /* Authentication */, - 8013F88A1FD6B79900EE1A4E /* Command */, - 9977302820727DA0009AF465 /* Emoji */, - 807C7C0A20751F06006B600E /* General */, - 806C59A31FBB2F3700C32D0A /* Message */, - 80235D201F7442C100A56CA5 /* Subscription */, - 998165C8204EBB5E0059D346 /* User */, - ); - path = Requests; - sourceTree = ""; - }; - D1D535EA1F7081E6006625D2 /* API */ = { - isa = PBXGroup; - children = ( - 8013F86E1FD6B59D00EE1A4E /* Clients */, - 80213C0F1FE063B200809E14 /* HTTP */, - 8013F8741FD6B5D100EE1A4E /* Middlewares */, - D1D535EF1F70863C006625D2 /* Requests */, - D1D535EB1F7081FA006625D2 /* API.swift */, - 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */, - 8013F8691FD6B59900EE1A4E /* APIError.swift */, - D1D535ED1F708628006625D2 /* APIRequest.swift */, - 8067DAA5206D1883005E3369 /* APIResource.swift */, - D15C83851F70991F001AB155 /* APIResponse.swift */, - 8013F8681FD6B59900EE1A4E /* Version.swift */, - ); - path = API; - sourceTree = ""; - }; - D1D535EF1F70863C006625D2 /* Requests */ = { - isa = PBXGroup; - children = ( - 802498EC1F7A82CD005477EC /* Authentication */, - 8013F8831FD6B74800EE1A4E /* Command */, - 9977302520725B3A009AF465 /* Emoji */, - 80054CFA1FDAFD3A00F5ECF9 /* General */, - 806C59A01FBB0BA700C32D0A /* Message */, - 80235D1C1F740AAC00A56CA5 /* Subscription */, - 99D888F92046239100E51306 /* User */, - ); - path = Requests; - sourceTree = ""; - }; - D1DA25261F695AC700DB6ABB /* Controllers */ = { - isa = PBXGroup; - children = ( - D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */, - 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */, - 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */, - 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */, - 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */, - ); - path = Controllers; - sourceTree = ""; - }; - D32E28201DFD86AC00D6019C /* Launcher */ = { - isa = PBXGroup; - children = ( - D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */, - D32E28221DFD86C300D6019C /* LauncherProtocol.swift */, - 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */, - 411119B51F680DB00019854B /* NetworkCoordinator.swift */, - D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */, - 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */, - ); - path = Launcher; - sourceTree = ""; - }; - D3CFAFBE1E907FC100BADC0A /* Chat */ = { - isa = PBXGroup; - children = ( - 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */, - 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */, - ); - path = Chat; - sourceTree = ""; - }; - EE693BBD0CC2727847214E2D /* Pods */ = { - isa = PBXGroup; - children = ( - BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */, - 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */, - 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */, - 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */, - AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */, - FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */, - 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */, - 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */, - F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; + 0B3A9760202C4DE10019CA92 /* Resources */ = { + isa = PBXGroup; + children = ( + 14F8A210202E5B2A00175FDC /* AlternateIcons */, + 41DF76E91D2C50710028DBF8 /* Assets.xcassets */, + 41EB22381E5F056600AA3AE7 /* Localizable.strings */, + 80307E431FD75DC0006AD9EF /* VoiceOver.strings */, + ); + path = Resources; + sourceTree = ""; + }; + 0B3A9767202C75A60019CA92 /* ChangeAppIcon */ = { + isa = PBXGroup; + children = ( + 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */, + 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */, + 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */, + ); + path = ChangeAppIcon; + sourceTree = ""; + }; + 0B9AB2BF20444EB300ABEA05 /* Language */ = { + isa = PBXGroup; + children = ( + 0BBCC2BE204532F0001E3B6D /* ChangeLanguageCell.swift */, + 0B7A210C204680D500D11085 /* ChangeLanguageResetCell.swift */, + 0B9AB2C020444ECD00ABEA05 /* LanguageViewController.swift */, + 0B9AB2C220444ED600ABEA05 /* LanguageViewModel.swift */, + ); + path = Language; + sourceTree = ""; + }; + 0BBCC2C0204546BB001E3B6D /* Language */ = { + isa = PBXGroup; + children = ( + 0BBCC2C1204546CF001E3B6D /* LanguageViewModelSpec.swift */, + ); + path = Language; + sourceTree = ""; + }; + 106DAA428B5BF7289FB70C65 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0F5191CD6C53AEA006C82524 /* Pods_Rocket_Chat.framework */, + 68D870A8D54F5431A14607AE /* Pods_Rocket_ChatTests.framework */, + 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 140A95DC202F1E4D003FD564 /* AppIcon */ = { + isa = PBXGroup; + children = ( + 140A95DD202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift */, + ); + path = AppIcon; + sourceTree = ""; + }; + 140A95E2202F5321003FD564 /* Drawing */ = { + isa = PBXGroup; + children = ( + 14A6A82F20421DED008C210D /* Color Picker */, + 14BAFAE120308F010054A2E6 /* DrawingBrushColorViewController.swift */, + 0BB967892031A74B0051D68C /* DrawingBrushColorViewModel.swift */, + 14BAFADF20308EF30054A2E6 /* DrawingBrushOpacityViewController.swift */, + 14BAFADD20308EE50054A2E6 /* DrawingBrushWidthViewController.swift */, + 140A95E5202F7074003FD564 /* DrawingControllerDelegate.swift */, + 140A95E3202F536D003FD564 /* DrawingViewController.swift */, + 0BC0E8622032DD95004BFAAF /* DrawingViewModel.swift */, + ); + path = Drawing; + sourceTree = ""; + }; + 140C84EA1FC9DB9600032A59 /* CreateChannel */ = { + isa = PBXGroup; + children = ( + 140C84EC1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift */, + ); + path = CreateChannel; + sourceTree = ""; + }; + 14A6A82F20421DED008C210D /* Color Picker */ = { + isa = PBXGroup; + children = ( + 14A6A83020421DF8008C210D /* ColorPickerView.swift */, + ); + path = "Color Picker"; + sourceTree = ""; + }; + 14F8A210202E5B2A00175FDC /* AlternateIcons */ = { + isa = PBXGroup; + children = ( + 14F8A211202E5B3200175FDC /* Black */, + 14F8A276202E654900175FDC /* Blue */, + 14F8A247202E649F00175FDC /* BnW */, + 14F8A262202E653600175FDC /* Grey */, + 14F8A212202E5B3B00175FDC /* Red */, + 14F8A275202E654400175FDC /* White */, + ); + path = AlternateIcons; + sourceTree = ""; + }; + 14F8A211202E5B3200175FDC /* Black */ = { + isa = PBXGroup; + children = ( + 14F8A219202E5CBE00175FDC /* Black-29@2x.png */, + 14F8A213202E5CBD00175FDC /* Black-29@3x.png */, + 14F8A21D202E5CBF00175FDC /* Black-40@2x.png */, + 14F8A21B202E5CBF00175FDC /* Black-40@3x.png */, + 14F8A218202E5CBE00175FDC /* Black-60@2x.png */, + 14F8A217202E5CBE00175FDC /* Black-60@3x.png */, + 14F8A216202E5CBE00175FDC /* Black-76@2x.png */, + 14F8A21F202E5CBF00175FDC /* Black-76@3x.png */, + 14F8A21A202E5CBE00175FDC /* Black-83.5@2x.png */, + ); + path = Black; + sourceTree = ""; + }; + 14F8A212202E5B3B00175FDC /* Red */ = { + isa = PBXGroup; + children = ( + 14F8A232202E5D0400175FDC /* Red-29@2x.png */, + 14F8A230202E5D0400175FDC /* Red-29@3x.png */, + 14F8A236202E5D0500175FDC /* Red-40@2x.png */, + 14F8A235202E5D0500175FDC /* Red-40@3x.png */, + 14F8A234202E5D0400175FDC /* Red-60@2x.png */, + 14F8A22F202E5D0400175FDC /* Red-60@3x.png */, + 14F8A233202E5D0400175FDC /* Red-76@2x.png */, + 14F8A238202E5D0600175FDC /* Red-76@3x.png */, + 14F8A237202E5D0600175FDC /* Red-83.5@2x.png */, + ); + path = Red; + sourceTree = ""; + }; + 14F8A247202E649F00175FDC /* BnW */ = { + isa = PBXGroup; + children = ( + 14F8A24D202E64B100175FDC /* BnW-29@2x.png */, + 14F8A250202E64B100175FDC /* BnW-29@3x.png */, + 14F8A252202E64B100175FDC /* BnW-40@2x.png */, + 14F8A24C202E64B100175FDC /* BnW-40@3x.png */, + 14F8A24E202E64B100175FDC /* BnW-60@2x.png */, + 14F8A24F202E64B100175FDC /* BnW-60@3x.png */, + 14F8A251202E64B100175FDC /* BnW-76@2x.png */, + 14F8A254202E64B200175FDC /* BnW-76@3x.png */, + 14F8A249202E64B000175FDC /* BnW-83.5@2x.png */, + ); + path = BnW; + sourceTree = ""; + }; + 14F8A262202E653600175FDC /* Grey */ = { + isa = PBXGroup; + children = ( + 14F8A264202E653D00175FDC /* Grey-29@2x.png */, + 14F8A269202E653E00175FDC /* Grey-29@3x.png */, + 14F8A263202E653D00175FDC /* Grey-40@2x.png */, + 14F8A268202E653E00175FDC /* Grey-40@3x.png */, + 14F8A26B202E653E00175FDC /* Grey-60@2x.png */, + 14F8A26A202E653E00175FDC /* Grey-60@3x.png */, + 14F8A267202E653D00175FDC /* Grey-76@2x.png */, + 14F8A265202E653D00175FDC /* Grey-76@3x.png */, + 14F8A266202E653D00175FDC /* Grey-83.5@2x.png */, + ); + path = Grey; + sourceTree = ""; + }; + 14F8A275202E654400175FDC /* White */ = { + isa = PBXGroup; + children = ( + 14F8A27D202E658F00175FDC /* White-29@2x.png */, + 14F8A27C202E658F00175FDC /* White-29@3x.png */, + 14F8A27E202E658F00175FDC /* White-40@2x.png */, + 14F8A278202E658E00175FDC /* White-40@3x.png */, + 14F8A27B202E658F00175FDC /* White-60@2x.png */, + 14F8A27F202E658F00175FDC /* White-60@3x.png */, + 14F8A277202E658E00175FDC /* White-76@2x.png */, + 14F8A279202E658E00175FDC /* White-76@3x.png */, + 14F8A27A202E658F00175FDC /* White-83.5@2x.png */, + ); + path = White; + sourceTree = ""; + }; + 14F8A276202E654900175FDC /* Blue */ = { + isa = PBXGroup; + children = ( + 14F8A28F202E65C700175FDC /* Blue-29@2x.png */, + 14F8A289202E65C500175FDC /* Blue-29@3x.png */, + 14F8A28E202E65C600175FDC /* Blue-40@2x.png */, + 14F8A290202E65C700175FDC /* Blue-40@3x.png */, + 14F8A28A202E65C600175FDC /* Blue-60@2x.png */, + 14F8A28B202E65C600175FDC /* Blue-60@3x.png */, + 14F8A291202E65C700175FDC /* Blue-76@2x.png */, + 14F8A28C202E65C600175FDC /* Blue-76@3x.png */, + 14F8A28D202E65C600175FDC /* Blue-83.5@2x.png */, + ); + path = Blue; + sourceTree = ""; + }; + 330888B2209901C800D44D4E /* Theme */ = { + isa = PBXGroup; + children = ( + 3370D8CD2096261F00EEA225 /* NotThemeableView.swift */, + 3353DBF7206787E500738D1C /* Theme.swift */, + 330888B5209909F600D44D4E /* ThemeableViewControllers.swift */, + 330888B32099094400D44D4E /* ThemeableViews.swift */, + 3370D8BB2093570D00EEA225 /* ThemeManager.swift */, + ); + path = Theme; + sourceTree = ""; + }; + 3330329F2073905900A9514D /* SubscriptionManager */ = { + isa = PBXGroup; + children = ( + 41DAE93B1D318E280098E068 /* SubscriptionManager.swift */, + 3330329720738D4600A9514D /* SubscriptionManagerMessages.swift */, + 3330329920738E1500A9514D /* SubscriptionManagerRooms.swift */, + 3330329B20738E6000A9514D /* SubscriptionManagerSearch.swift */, + 3330329D20738EBB00A9514D /* SubscriptionManagerTyping.swift */, + ); + path = SubscriptionManager; + sourceTree = ""; + }; + 33419D77209916EE00D1682A /* Theme */ = { + isa = PBXGroup; + children = ( + 33419D782099170A00D1682A /* ThemeManagerSpec.swift */, + 33419D7A2099B7B900D1682A /* ThemeableSpec.swift */, + ); + path = Theme; + sourceTree = ""; + }; + 3370D8D420977D4500EEA225 /* Theme */ = { + isa = PBXGroup; + children = ( + 3370D8D720977E9C00EEA225 /* ThemePreferenceController.swift */, + 3370D8D520977D8600EEA225 /* ThemePreferenceViewModel.swift */, + ); + path = Theme; + sourceTree = ""; + }; + 33A5C9C0206A565800FE1C8F /* Emojis */ = { + isa = PBXGroup; + children = ( + 33A5C9C8206A565800FE1C8F /* activity.json */, + 33A5C9C4206A565800FE1C8F /* flags.json */, + 33A5C9C7206A565800FE1C8F /* food.json */, + 33A5C9C9206A565800FE1C8F /* nature.json */, + 33A5C9C6206A565800FE1C8F /* objects.json */, + 33A5C9C5206A565800FE1C8F /* people.json */, + 33A5C9C3206A565800FE1C8F /* regional.json */, + 33A5C9C1206A565800FE1C8F /* symbols.json */, + 33A5C9C2206A565800FE1C8F /* travel.json */, + ); + path = Emojis; + sourceTree = ""; + }; + 33F73B292073BDD800F03F29 /* Notification */ = { + isa = PBXGroup; + children = ( + 33F73B2B2073BDF400F03F29 /* NotificationView.swift */, + 33383508207926DE006E1D0A /* TransparentToTouchesWindow.swift */, + ); + path = Notification; + sourceTree = ""; + }; + 33F73B2E2073F1FC00F03F29 /* Notification */ = { + isa = PBXGroup; + children = ( + 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */, + 333207FE20766E4F00AD3290 /* NotificationViewController.xib */, + 3370D8D02096677A00EEA225 /* TopTransparentViewController.swift */, + ); + path = Notification; + sourceTree = ""; + }; + 4102E3AB1E53272C004BAA82 /* Preferences */ = { + isa = PBXGroup; + children = ( + 0B3A9767202C75A60019CA92 /* ChangeAppIcon */, + 0B9AB2BF20444EB300ABEA05 /* Language */, + 99282260204DE0AE005D2067 /* Profile */, + 3370D8D420977D4500EEA225 /* Theme */, + 9960C82E2063F091004A034C /* Web Browser */, + 806728FC200789F4009FE94D /* PreferencesNavigationController.swift */, + 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */, + 35E892C9201CDD9700B4BE5A /* PreferencesViewModel.swift */, + ); + path = Preferences; + sourceTree = ""; + }; + 411EDECE1E30F2D700BC7BE3 /* Uploader */ = { + isa = PBXGroup; + children = ( + 411EDED41E3102CB00BC7BE3 /* UploadManager.swift */, + 41EB22321E5E474200AA3AE7 /* UploadVideoCompression.swift */, + ); + path = Uploader; + sourceTree = ""; + }; + 414A1FF41D4631F600093E10 /* Response */ = { + isa = PBXGroup; + children = ( + 414A1FF51D46320F00093E10 /* ResponseMessage.swift */, + 807371991F94E83600D53ADF /* SocketError.swift */, + 4162E1541D654A7400AAAE49 /* SocketHandlers.swift */, + 414A1FFB1D46395900093E10 /* SocketResponse.swift */, + ); + path = Response; + sourceTree = ""; + }; + 414EFF901E54FE35004F001F /* Models */ = { + isa = PBXGroup; + children = ( + 414EFF911E54FE69004F001F /* AuthExtensions.swift */, + 41E9BD0C208EA4040084D4D8 /* AuthInternalExtensions.swift */, + 8076FDAA2048549C00114F28 /* AuthSettingsHiddenTypes.swift */, + 41D7CA861E644E47000F38EA /* MessageExtensions.swift */, + D12D34021F69C76400AED992 /* SubscriptionExtensions.swift */, + 80E99F281FD8B2B800B70B59 /* UserExtensions.swift */, + ); + path = Models; + sourceTree = ""; + }; + 41534EE0208E43FF009C5A17 /* Launcher */ = { + isa = PBXGroup; + children = ( + 41534EE1208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift */, + ); + path = Launcher; + sourceTree = ""; + }; + 4153E80320504BC800FBC26B /* Preferences */ = { + isa = PBXGroup; + children = ( + 4153E80420504BE700FBC26B /* ReusableViewText.swift */, + 3370D8D2209778EE00EEA225 /* ThemePreferenceCell.swift */, + 412EF3C52050507C001689A3 /* ReusableViewText.xib */, + ); + path = Preferences; + sourceTree = ""; + }; + 41552F641D30307D0081438D /* Model */ = { + isa = PBXGroup; + children = ( + 8076FDB72048580A00114F28 /* AuthManager */, + 3330329F2073905900A9514D /* SubscriptionManager */, + 411D76E41F39F05A00B0A8DF /* AuthSettingsManager.swift */, + 805DEC341FFC03380033151B /* CustomEmojiManager.swift */, + 8073719D1F9688B200D53ADF /* LoginServiceManager.swift */, + 41DC7A1C1D38471700896FC0 /* MessageManager.swift */, + 806401341FB09F8A00990572 /* PermissionManager.swift */, + 4162E1521D651A8800AAAE49 /* UserManager.swift */, + ); + path = Model; + sourceTree = ""; + }; + 41552F691D3035DB0081438D /* Managers */ = { + isa = PBXGroup; + children = ( + 41534EE0208E43FF009C5A17 /* Launcher */, + 419D78851FBDCF5A005FC7A2 /* Requests */, + 417A70011D47916C00FF46EE /* Socket */, + 4101BF021F8D11FB00F67E89 /* AppManagerSpec.swift */, + 41BA89231D303D8B00CBF526 /* AuthManagerSpec.swift */, + 411D76E61F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift */, + 41FE55521F6038D60071E97A /* DatabaseManagerSpec.swift */, + 416296FB1F41D42800BCCEDD /* DownloadManagerSpec.swift */, + 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */, + 80F1F80F2080F307007998AB /* MarkdownManagerSpec.swift */, + 41DC7A1E1D3865FE00896FC0 /* MessageManagerSpec.swift */, + 411119B71F6825C30019854B /* NetworkManagerSpec.swift */, + 33093DC6207C900900DD81F6 /* NotificationManagerSpec.swift */, + 807A8F6A1F9E4D0C00CC78DB /* OAuthManagerSpec.swift */, + 808792351FB145B200EFE77F /* PermissionManagerSpec.swift */, + 8018B56F1FBE070000C3CC25 /* PushManagerSpec.swift */, + 4147CE801F5EE03300C322C3 /* ServerManagerSpec.swift */, + B5893BF51F6C4B1D00365768 /* UserReviewManagerSpec.swift */, + 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */, + ); + path = Managers; + sourceTree = ""; + }; + 4161332F1D46CA2800E09DA2 /* Views */ = { + isa = PBXGroup; + children = ( + 80D41DFB2092152A00034D1F /* ActionSheets */, + 41C275DD1D847FEE003C88CF /* Avatar */, + 416133301D46CA3100E09DA2 /* Cells */, + 41F167E51DAC450200775CCA /* Chat */, + 897083CC1F8CF08100233561 /* Form */, + 41ADDD471E9DBAE90007A458 /* Loader */, + 33F73B292073BDD800F03F29 /* Notification */, + 418C4DC41DC4C05000ABED4C /* Sections */, + 41A91AED1E51C4E5005C94B1 /* Subscriptions */, + 7758A7621F8FA34300FAA244 /* UIPickerView */, + ); + path = Views; + sourceTree = ""; + }; + 416133301D46CA3100E09DA2 /* Cells */ = { + isa = PBXGroup; + children = ( + 416133351D46CA7400E09DA2 /* Chat */, + 4153E80320504BC800FBC26B /* Preferences */, + 4192054A1D52F4E7004EEC5F /* Subscription */, + 80235D231F7466FE00A56CA5 /* LoaderTableViewCell.swift */, + 80235D251F74672D00A56CA5 /* LoaderTableViewCell.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 416133351D46CA7400E09DA2 /* Chat */ = { + isa = PBXGroup; + children = ( + 800FCD431F728E6A00D9A692 /* Info */, + 41AC3CD81DCCA0C9002DC39A /* AutocompleteCell.swift */, + 41AC3CD21DCC9873002DC39A /* AutocompleteCell.xib */, + 411F7D931F5179A50080E8AD /* ChatChannelHeaderCell.swift */, + 411F7D951F5179B50080E8AD /* ChatChannelHeaderCell.xib */, + 41D894011F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift */, + 41D894031F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib */, + 41CABFF91F5047E200E0B289 /* ChatLoaderCell.swift */, + 41CABFF71F5047D600E0B289 /* ChatLoaderCell.xib */, + 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */, + 802498F41F7ACDB7005477EC /* ChatMessageAudioView.swift */, + 802498F21F7ACD76005477EC /* ChatMessageAudioView.xib */, + 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */, + 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */, + 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */, + 41D3A62F1E0805490011949D /* ChatMessageDaySeparator.swift */, + 41D3A62D1E0805310011949D /* ChatMessageDaySeparator.xib */, + 4133EDCE1DA2834E005AA783 /* ChatMessageImageView.swift */, + 4133EDD01DA2835F005AA783 /* ChatMessageImageView.xib */, + 412BCC861E55C6B800F7F4EE /* ChatMessageTextView.swift */, + 412BCC841E55C6A300F7F4EE /* ChatMessageTextView.xib */, + D3CFAFBC1E907D8900BADC0A /* ChatMessageTextViewModel.swift */, + 412E1F391DB6D55000531FDA /* ChatMessageURLView.swift */, + 412E1F3A1DB6D55000531FDA /* ChatMessageURLView.xib */, + 80AE2541203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift */, + 80AE2543203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib */, + 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */, + 412A95D51FD94ED000954AA6 /* ChatMessageVideoView.xib */, + ); + path = Chat; + sourceTree = ""; + }; + 416133361D46DB0900E09DA2 /* Models */ = { + isa = PBXGroup; + children = ( + 80D41E0320924A6500034D1F /* Auth */, + 77C261281F97453600724A1F /* CustomFields */, + 411498E41FC7B8D500D66542 /* AttachmentSpec.swift */, + 77C261241F97445300724A1F /* AuthSettingsSpec.swift */, + 416133371D46DB1D00E09DA2 /* BaseModelSpec.swift */, + D1411A291F6777F300D6EDF7 /* ChannelSpec.swift */, + 33093DC4207C7EAF00DD81F6 /* ChatNotificationSpec.swift */, + 805DEC381FFE54820033151B /* CustomEmojiSpec.swift */, + 0BC0E8602032DB20004BFAAF /* DrawingBrushColorSpec.swift */, + 0BC0E8642032DF9B004BFAAF /* DrawingViewModelSpec.swift */, + 807A8F661F9E3D4F00CC78DB /* LoginServiceSpec.swift */, + D1411A2B1F6779A200D6EDF7 /* MentionSpec.swift */, + 80247B3E1FE8582700878833 /* MessageReactionSpec.swift */, + 4161333F1D46E6A800E09DA2 /* MessageSpec.swift */, + 68D186DE1ED9714F0030EE8C /* MessageURLSpec.swift */, + 808792371FB14B3300EFE77F /* PermissionSpec.swift */, + 4161333D1D46E3AB00E09DA2 /* SubscriptionSpec.swift */, + 41E9BD0E208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift */, + 4161333B1D46E32F00E09DA2 /* UserSpec.swift */, + ); + path = Models; + sourceTree = ""; + }; + 416296F71F41B41100BCCEDD /* Helpers */ = { + isa = PBXGroup; + children = ( + 35E892C3201BF2C900B4BE5A /* AlertSpec.swift */, + 35BCD302201A9FB800B4BE5A /* AskSpec.swift */, + 8013F8421FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift */, + 41B96364207E492C0068F1A6 /* MessageTextValidatorSpec.swift */, + 416296F81F41B42B00BCCEDD /* UploadHelperSpec.swift */, + ); + path = Helpers; + sourceTree = ""; + }; + 4171ABA31E7C0556009FC3F0 /* Views */ = { + isa = PBXGroup; + children = ( + D3CFAFBE1E907FC100BADC0A /* Chat */, + 140C84EA1FC9DB9600032A59 /* CreateChannel */, + 418C743F1FA3626200499577 /* UIPickerView */, + 4171ABA41E7C056E009FC3F0 /* AvatarViewSpec.swift */, + 41ADDD4A1E9E787E0007A458 /* LoaderViewSpec.swift */, + ); + path = Views; + sourceTree = ""; + }; + 4174CB0A1D2D990F0086DAC8 /* Controllers */ = { + isa = PBXGroup; + children = ( + 4174CB101D2D997E0086DAC8 /* Auth */, + 4174CB111D2D99840086DAC8 /* Base */, + 41E2FA021D414ECC00238DFD /* Chat */, + 140A95E2202F5321003FD564 /* Drawing */, + 33F73B2E2073F1FC00F03F29 /* Notification */, + 4102E3AB1E53272C004BAA82 /* Preferences */, + 41E2FA031D414ED400238DFD /* Subscriptions */, + 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */, + ); + path = Controllers; + sourceTree = ""; + }; + 4174CB0B1D2D99170086DAC8 /* Storyboards */ = { + isa = PBXGroup; + children = ( + 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */, + 41E2F9FE1D414DE800238DFD /* Chat.storyboard */, + 140A95E0202F526C003FD564 /* Drawing.storyboard */, + 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */, + 4102E3A91E532323004BAA82 /* Preferences.storyboard */, + 41E2FA001D414EA100238DFD /* Subscriptions.storyboard */, + ); + path = Storyboards; + sourceTree = ""; + }; + 4174CB101D2D997E0086DAC8 /* Auth */ = { + isa = PBXGroup; + children = ( + 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */, + 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */, + 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */, + 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */, + 80D955C1202154A300E3F281 /* CASViewController.swift */, + 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */, + 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */, + 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */, + 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */, + 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */, + 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */, + 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */, + ); + path = Auth; + sourceTree = ""; + }; + 4174CB111D2D99840086DAC8 /* Base */ = { + isa = PBXGroup; + children = ( + 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */, + 4174CB121D2D99960086DAC8 /* BaseViewController.swift */, + ); + path = Base; + sourceTree = ""; + }; + 4174CB181D2D9D940086DAC8 /* Managers */ = { + isa = PBXGroup; + children = ( + D32E28201DFD86AC00D6019C /* Launcher */, + 41552F641D30307D0081438D /* Model */, + 419D78811FBDB78D005FC7A2 /* Requests */, + 41F1702C1D425358007E6948 /* Socket */, + 411EDECE1E30F2D700BC7BE3 /* Uploader */, + 4101BF001F8D0A1700F67E89 /* AppManager.swift */, + 412F8DD81F599EF100AF7786 /* DatabaseManager.swift */, + 419ECCA31F3CA21A005F224B /* DownloadManager.swift */, + 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */, + 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */, + D1C536CB1F688B2F00EBA8D9 /* MarkdownManager.swift */, + 415066871EB8B541003AEA1C /* MessageTextCacheManager.swift */, + 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */, + 335F4F02207A31D3005E14AF /* NotificationManager.swift */, + 35E892C5201CDCBC00B4BE5A /* OAuthManager.swift */, + 597ECBA31E3708B10041C5C5 /* PushManager.swift */, + 41499C8E1F2A116900790EA7 /* ServerManager.swift */, + B5893BF31F6C4A5E00365768 /* UserReviewManager.swift */, + 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */, + 41B554C61FBF0F9D000510B7 /* WindowManager.swift */, + ); + path = Managers; + sourceTree = ""; + }; + 4174CB1D1D2DB3270086DAC8 /* Extensions */ = { + isa = PBXGroup; + children = ( + 8013F8631FD5E11100EE1A4E /* API */, + 414EFF901E54FE35004F001F /* Models */, + 41CABFFB1F50515100E0B289 /* ArrayExtensions.swift */, + 597ECBA11E3708A50041C5C5 /* DataExtension.swift */, + 41E991D31D343A9F00BDDCA8 /* DateExtension.swift */, + 77CCB6BD1F8D0597004BBF67 /* DictionaryExtensions.swift */, + 41D701D71E6763D100FED2EE /* NSAttributedStringExtensions.swift */, + D10E9C1F1F6434A7007F1796 /* NSRangeExtensions.swift */, + 80A2A2AA2073BD0800857DAF /* RealmCurrent.swift */, + 8076FDA8204853DE00114F28 /* RealmExecute.swift */, + 8076FDA32048533000114F28 /* String+Random.swift */, + 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */, + 412BCC8A1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift */, + 4192054D1D52F5F1004EEC5F /* UIColorExtension.swift */, + D1C536CD1F688B7100EBA8D9 /* UIFontExtensions.swift */, + 41494B911D63C6280004F369 /* UIImageExtension.swift */, + 419205481D52EDE6004EEC5F /* UILabelExtension.swift */, + 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */, + 41E53A161E546F5500C3FBB3 /* UINibExtensions.swift */, + 41D5BC301DAFBEF4009A493A /* UIViewExtentions.swift */, + 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */, + 41BAE3E61D71B26C00C2445A /* URLExtension.swift */, + 8076FDE52048CD0600114F28 /* UserDefaults+Group.swift */, + 41A1748B1DD9F2F900188E3B /* UIViewControllerExtension.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 417A70011D47916C00FF46EE /* Socket */ = { + isa = PBXGroup; + children = ( + 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */, + 41552F671D3035D80081438D /* SocketManagerSpec.swift */, + ); + path = Socket; + sourceTree = ""; + }; + 41865AF01FC8B1EC00A5E48F /* WebViewEmbedded */ = { + isa = PBXGroup; + children = ( + 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */, + 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */, + ); + path = WebViewEmbedded; + sourceTree = ""; + }; + 418C4DC41DC4C05000ABED4C /* Sections */ = { + isa = PBXGroup; + children = ( + 41DCB8271DDC82E000E1197F /* SubscriptionSearchMoreView.swift */, + 41DCB8251DDC828200E1197F /* SubscriptionSearchMoreView.xib */, + 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */, + 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */, + ); + path = Sections; + sourceTree = ""; + }; + 418C743F1FA3626200499577 /* UIPickerView */ = { + isa = PBXGroup; + children = ( + 418C74441FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift */, + 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */, + ); + path = UIPickerView; + sourceTree = ""; + }; + 4192054A1D52F4E7004EEC5F /* Subscription */ = { + isa = PBXGroup; + children = ( + 4147CE7E1F5EB27B00C322C3 /* AddServerCell.swift */, + 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */, + 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */, + 4147CE7C1F5EAAB300C322C3 /* ServerCell.swift */, + 4192054B1D52F4FC004EEC5F /* SubscriptionCell.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 4199A9861DABCC2E0035F820 /* External */ = { + isa = PBXGroup; + children = ( + 4199A9871DABCC570035F820 /* RCEmojiKit */, + ); + path = External; + sourceTree = ""; + }; + 4199A9871DABCC570035F820 /* RCEmojiKit */ = { + isa = PBXGroup; + children = ( + 33A5C9C0206A565800FE1C8F /* Emojis */, + 80A97EFD200628A300A2774C /* Views */, + 8069D26D1FFF876D00C75926 /* Emoji.swift */, + 80A2F38F20056C5E005D2DCA /* EmojiSearcher.swift */, + 807FB53C2044B49800E21429 /* Emojione+Transform.swift */, + 4199A9881DABCC570035F820 /* Emojione.swift */, + 80F09A1C1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift */, + 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */, + 8041C047202BA233007E21FA /* RCEmojiKit.xcassets */, + 8041C04520290A48007E21FA /* RCEmojiKitLocalizable.swift */, + 33A5C9BD206A561400FE1C8F /* emojiNames.json */, + ); + path = RCEmojiKit; + sourceTree = ""; + }; + 419D78811FBDB78D005FC7A2 /* Requests */ = { + isa = PBXGroup; + children = ( + 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */, + ); + path = Requests; + sourceTree = ""; + }; + 419D78851FBDCF5A005FC7A2 /* Requests */ = { + isa = PBXGroup; + children = ( + 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */, + ); + path = Requests; + sourceTree = ""; + }; + 41A79C0D1D2F084F00A1968E /* Models */ = { + isa = PBXGroup; + children = ( + 8076FDAC2048566100114F28 /* Auth */, + 41BD37D71E290D7400CBC4C2 /* Base */, + 7798B4131F852AE30074B2F4 /* CustomFields */, + 41BD37DF1E290F1500CBC4C2 /* Handler */, + 41BD37DE1E290F1000CBC4C2 /* Mapping */, + 8076FDCF2048644300114F28 /* Message */, + 8076FDC120485A0B00114F28 /* Subscription */, + 8076FDD4204864D400114F28 /* User */, + 41900C261D9FE35400308EF4 /* Attachment.swift */, + 41A87BAC1DA66E700000EE80 /* AuthSettings.swift */, + 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */, + 8013F8661FD6B4F400EE1A4E /* Command.swift */, + 805DEC361FFC08870033151B /* CustomEmoji.swift */, + 8073719F1F96937100D53ADF /* LoginService.swift */, + 806401301FB09DE800990572 /* Permission.swift */, + 99C577ED207E4F1500CE9B4D /* File.swift */, + ); + path = Models; + sourceTree = ""; + }; + 41A91AED1E51C4E5005C94B1 /* Subscriptions */ = { + isa = PBXGroup; + children = ( + 9987B5972093E523007D277C /* FileTableViewCell.swift */, + 9987B5982093E524007D277C /* FileTableViewCell.xib */, + 41A91AF01E51CD41005C94B1 /* SubscriptionUserStatusView.swift */, + 41A91AEE1E51C51A005C94B1 /* SubscriptionUserStatusView.xib */, + 801DF8141FD7172500302CC8 /* SubscriptionUserView.swift */, + A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */, + ); + path = Subscriptions; + sourceTree = ""; + }; + 41ADDD471E9DBAE90007A458 /* Loader */ = { + isa = PBXGroup; + children = ( + 41ADDD481E9DBB100007A458 /* LoaderView.swift */, + ); + path = Loader; + sourceTree = ""; + }; + 41B96363207E48690068F1A6 /* Validators */ = { + isa = PBXGroup; + children = ( + 41B96361207E48260068F1A6 /* MessageTextValidator.swift */, + ); + path = Validators; + sourceTree = ""; + }; + 41BD37D71E290D7400CBC4C2 /* Base */ = { + isa = PBXGroup; + children = ( + 4112DC551FFFB9B1005995E1 /* BaseModel.swift */, + 4112DC561FFFB9B1005995E1 /* ModelHandler.swift */, + 4112DC571FFFB9B1005995E1 /* ModelMappeable.swift */, + ); + path = Base; + sourceTree = ""; + }; + 41BD37DE1E290F1000CBC4C2 /* Mapping */ = { + isa = PBXGroup; + children = ( + 4151B4591E2D1DD400F8AA1B /* AttachmentModelMapping.swift */, + 4151B45B1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift */, + D10E9C1D1F643474007F1796 /* ChannelModelMapping.swift */, + 8013F88D1FD6B83C00EE1A4E /* CommandModelMapping.swift */, + 807371A11F96968C00D53ADF /* LoginServiceModelMapping.swift */, + D10E9C211F643616007F1796 /* MentionModelMapping.swift */, + 4151B4571E2D1D2E00F8AA1B /* MessageModelMapping.swift */, + 4151B45D1E2D32EA00F8AA1B /* MessageURLModelMapping.swift */, + 806401321FB09EC400990572 /* PermissionModelMapping.swift */, + 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */, + 4151B4551E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift */, + 41BD37E01E290F2900CBC4C2 /* UserModelMapping.swift */, + ); + path = Mapping; + sourceTree = ""; + }; + 41BD37DF1E290F1500CBC4C2 /* Handler */ = { + isa = PBXGroup; + children = ( + 807371A51F96A4FF00D53ADF /* LoginServiceModelHandler.swift */, + 4151B4531E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift */, + 4151B44D1E2CF19A00F8AA1B /* UserModelHandler.swift */, + ); + path = Handler; + sourceTree = ""; + }; + 41C275DD1D847FEE003C88CF /* Avatar */ = { + isa = PBXGroup; + children = ( + 41C275DE1D848005003C88CF /* AvatarView.swift */, + 41C275E01D84815C003C88CF /* AvatarView.xib */, + ); + path = Avatar; + sourceTree = ""; + }; + 41D701D41E67103C00FED2EE /* Helpers */ = { + isa = PBXGroup; + children = ( + 41B96363207E48690068F1A6 /* Validators */, + 80307E3A1FD75BD3006AD9EF /* VoiceOver */, + 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */, + 802A4E23204D730F0072CD23 /* AppGroup.swift */, + 35BCD300201A57EA00B4BE5A /* Ask.swift */, + 41D4ABAA1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift */, + 800F38EC2019492D0005CB78 /* DeepLink.swift */, + 80DC9A6B206BA95600032BE0 /* Localized.swift */, + 41D701D51E67111E00FED2EE /* MessageTextFontAttributes.swift */, + 35C7D199202B130400B4BE5A /* RCDateFormatter.swift */, + 413996161F3B44500075F96E /* UploadHelper.swift */, + ); + path = Helpers; + sourceTree = ""; + }; + 41DC7A201D386B2C00896FC0 /* Extensions */ = { + isa = PBXGroup; + children = ( + 80E99F2A1FD8B4AC00B70B59 /* API */, + 80E99F2D1FD8B4E200B70B59 /* Models */, + 41DC7A231D386CA800896FC0 /* DateExtensionsSpec.swift */, + 77C261261F97445F00724A1F /* DictionaryExtensionsSpec.swift */, + D1A403D81F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift */, + 41DC7A211D386B4700896FC0 /* StringExtensionSpec.swift */, + 41E422FF2044216000543877 /* UIColorExtensionSpec.swift */, + 41BAE3E81D71C15A00C2445A /* URLExtensionSpec.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 41DF76D61D2C50710028DBF8 = { + isa = PBXGroup; + children = ( + 41DF76E11D2C50710028DBF8 /* Rocket.Chat */, + 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */, + 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */, + 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */, + 106DAA428B5BF7289FB70C65 /* Frameworks */, + EE693BBD0CC2727847214E2D /* Pods */, + 41DF76E01D2C50710028DBF8 /* Products */, + ); + sourceTree = ""; + }; + 41DF76E01D2C50710028DBF8 /* Products */ = { + isa = PBXGroup; + children = ( + 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */, + 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */, + 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */, + 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */, + ); + name = Products; + sourceTree = ""; + }; + 41DF76E11D2C50710028DBF8 /* Rocket.Chat */ = { + isa = PBXGroup; + children = ( + 330888B2209901C800D44D4E /* Theme */, + D1D535EA1F7081E6006625D2 /* API */, + 4174CB0A1D2D990F0086DAC8 /* Controllers */, + 4174CB1D1D2DB3270086DAC8 /* Extensions */, + 4199A9861DABCC2E0035F820 /* External */, + 41D701D41E67103C00FED2EE /* Helpers */, + 4174CB181D2D9D940086DAC8 /* Managers */, + 41A79C0D1D2F084F00A1968E /* Models */, + 0B3A9760202C4DE10019CA92 /* Resources */, + 4174CB0B1D2D99170086DAC8 /* Storyboards */, + 4161332F1D46CA2800E09DA2 /* Views */, + 41DF76E21D2C50710028DBF8 /* AppDelegate.swift */, + 41DF76EE1D2C50720028DBF8 /* Info.plist */, + 41833F4D1DEF16B600E54655 /* Keys.plist */, + 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */, + 597ECBA01E3708980041C5C5 /* Rocket.Chat.entitlements */, + ); + path = Rocket.Chat; + sourceTree = ""; + }; + 41DF76F61D2C50720028DBF8 /* Rocket.ChatTests */ = { + isa = PBXGroup; + children = ( + 33419D77209916EE00D1682A /* Theme */, + D18675E71F70A55D00406FB4 /* API */, + D1DA25261F695AC700DB6ABB /* Controllers */, + 41DC7A201D386B2C00896FC0 /* Extensions */, + 80A97EFE2006291E00A2774C /* External */, + 416296F71F41B41100BCCEDD /* Helpers */, + 41552F691D3035DB0081438D /* Managers */, + 416133361D46DB0900E09DA2 /* Models */, + 925FF74F1E8EFC9200982043 /* Preferences */, + 4171ABA31E7C0556009FC3F0 /* Views */, + 41DF76F91D2C50720028DBF8 /* Info.plist */, + 803782B61FB4751D00DED049 /* RealmTestCase.swift */, + ); + path = Rocket.ChatTests; + sourceTree = ""; + }; + 41DF77011D2C50720028DBF8 /* Rocket.ChatUITests */ = { + isa = PBXGroup; + children = ( + 41DF77041D2C50720028DBF8 /* Info.plist */, + 41DF77021D2C50720028DBF8 /* RocketChatUITests.swift */, + ); + path = Rocket.ChatUITests; + sourceTree = ""; + }; + 41E2FA021D414ECC00238DFD /* Chat */ = { + isa = PBXGroup; + children = ( + 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */, + 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */, + 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */, + 419ECCA11F3C8F15005F224B /* ChatControllerHeaderStatus.swift */, + 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */, + 41EE157F1E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift */, + 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */, + 41EE15811E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift */, + 41B4B2331E40B1D200F4D252 /* ChatControllerUploader.swift */, + 41C45AEE1DFAD42800D9969C /* ChatDataController.swift */, + 41E2FA061D41513C00238DFD /* ChatViewController.swift */, + 41B9635F207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift */, + 4112BEEB1E7971A400E734CB /* MainChatViewController.swift */, + 800FCD3D1F72893E00D9A692 /* MembersListViewController.swift */, + 800E22831F8500A200DA84F1 /* MessagesListViewController.swift */, + 99DBB8732090360600382DB2 /* MessagesListControllerSearch.swift */, + ); + path = Chat; + sourceTree = ""; + }; + 41E2FA031D414ED400238DFD /* Subscriptions */ = { + isa = PBXGroup; + children = ( + 9987B5952093E4BA007D277C /* FilesListViewController.swift */, + 35E892C7201CDD1600B4BE5A /* NewRoomViewController.swift */, + 4147CE7A1F5EA41000C322C3 /* ServersViewController.swift */, + 4147CE781F5EA3D000C322C3 /* SubscriptionsPageViewController.swift */, + 41E2FA041D414F0400238DFD /* SubscriptionsViewController.swift */, + 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */, + ); + path = Subscriptions; + sourceTree = ""; + }; + 41F167E51DAC450200775CCA /* Chat */ = { + isa = PBXGroup; + children = ( + 419D84FF1DF599DA0021F034 /* ChatHeaderViewStatus.swift */, + 419D84FD1DF599CA0021F034 /* ChatHeaderViewStatus.xib */, + 41F167E81DAC4D4300775CCA /* ChatTitleView.swift */, + 41F167EA1DAC4D5500775CCA /* ChatTitleView.xib */, + 411498E21FC7A99C00D66542 /* ChatTitleViewModel.swift */, + 3370D8B920926E5700EEA225 /* ChatView.swift */, + 339B6929205042D300F97392 /* KeyboardFrameView.swift */, + 1435BFA21F9B601600FB2768 /* RCTextView.swift */, + 80CFB5731F8DA55C00FC9715 /* ReplyView.swift */, + 80CFB5711F8D697100FC9715 /* ReplyView.xib */, + ); + path = Chat; + sourceTree = ""; + }; + 41F1702C1D425358007E6948 /* Socket */ = { + isa = PBXGroup; + children = ( + 414A1FF41D4631F600093E10 /* Response */, + 414A1FF91D46395400093E10 /* SocketManager.swift */, + ); + path = Socket; + sourceTree = ""; + }; + 7758A7621F8FA34300FAA244 /* UIPickerView */ = { + isa = PBXGroup; + children = ( + 418C74421FA3813F00499577 /* CompoundPickerViewDelegate.swift */, + 7758A7631F8FA44400FAA244 /* PickerViewDelegate.swift */, + ); + path = UIPickerView; + sourceTree = ""; + }; + 7798B4131F852AE30074B2F4 /* CustomFields */ = { + isa = PBXGroup; + children = ( + 7798B4181F852D670074B2F4 /* CustomField.swift */, + 7798B4141F852B720074B2F4 /* SelectField.swift */, + 77BA81501F87C4CB00F295F4 /* TextField.swift */, + ); + path = CustomFields; + sourceTree = ""; + }; + 77C261281F97453600724A1F /* CustomFields */ = { + isa = PBXGroup; + children = ( + 77C261291F97453600724A1F /* CustomFieldsSpec.swift */, + 77C2612A1F97453600724A1F /* SelectFieldSpec.swift */, + 77C2612B1F97453600724A1F /* TextFieldSpec.swift */, + ); + path = CustomFields; + sourceTree = ""; + }; + 80054CFA1FDAFD3A00F5ECF9 /* General */ = { + isa = PBXGroup; + children = ( + D1D535F01F70864C006625D2 /* InfoRequest.swift */, + 807C7C11207522EF006B600E /* LoginServicesRequest.swift */, + 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */, + 80054CFB1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift */, + 807C7C0720751EDB006B600E /* SpotlightRequest.swift */, + ); + path = General; + sourceTree = ""; + }; + 800FCD431F728E6A00D9A692 /* Info */ = { + isa = PBXGroup; + children = ( + 800FCD441F728E6A00D9A692 /* ChannelInfoBasicCell.swift */, + 800FCD451F728E6A00D9A692 /* ChannelInfoCellProtocol.swift */, + 800FCD461F728E6A00D9A692 /* ChannelInfoDescriptionCell.swift */, + 800FCD471F728E6A00D9A692 /* ChannelInfoDetailCell.swift */, + 800FCD481F728E6A00D9A692 /* ChannelInfoUserCell.swift */, + 800FCD491F728E6A00D9A692 /* MemberCell.swift */, + 800FCD4A1F728E6A00D9A692 /* MemberCell.xib */, + ); + path = Info; + sourceTree = ""; + }; + 8013F8631FD5E11100EE1A4E /* API */ = { + isa = PBXGroup; + children = ( + 8013F8641FD5E13600EE1A4E /* APIExtensions.swift */, + ); + path = API; + sourceTree = ""; + }; + 8013F86E1FD6B59D00EE1A4E /* Clients */ = { + isa = PBXGroup; + children = ( + 8013F8701FD6B5B000EE1A4E /* CommandsClient.swift */, + 8013F86F1FD6B5B000EE1A4E /* InfoClient.swift */, + 80054CF21FD951B100F5ECF9 /* MessagesClient.swift */, + 80054CFD1FDAFF5200F5ECF9 /* PushClient.swift */, + 807C7C0520751ED1006B600E /* SpotlightClient.swift */, + 809B530A1FE2B1AB00833DD2 /* UploadClient.swift */, + ); + path = Clients; + sourceTree = ""; + }; + 8013F8741FD6B5D100EE1A4E /* Middlewares */ = { + isa = PBXGroup; + children = ( + 8013F8751FD6B5E000EE1A4E /* VersionMiddleware.swift */, + ); + path = Middlewares; + sourceTree = ""; + }; + 8013F8771FD6B61400EE1A4E /* Middlewares */ = { + isa = PBXGroup; + children = ( + 8013F8781FD6B63200EE1A4E /* VersionMiddlewareSpec.swift */, + ); + path = Middlewares; + sourceTree = ""; + }; + 8013F87E1FD6B66900EE1A4E /* Clients */ = { + isa = PBXGroup; + children = ( + 8013F87F1FD6B6C600EE1A4E /* CommandsClientSpec.swift */, + 8013F8801FD6B6C600EE1A4E /* InfoClientSpec.swift */, + 80054CF41FD96AFE00F5ECF9 /* MessagesClientSpec.swift */, + 807C7C0F20751F40006B600E /* SpotlightClientSpec.swift */, + ); + path = Clients; + sourceTree = ""; + }; + 8013F8831FD6B74800EE1A4E /* Command */ = { + isa = PBXGroup; + children = ( + 8013F8841FD6B76500EE1A4E /* CommandsRequest.swift */, + 8013F8851FD6B76500EE1A4E /* RunCommandRequest.swift */, + ); + path = Command; + sourceTree = ""; + }; + 8013F88A1FD6B79900EE1A4E /* Command */ = { + isa = PBXGroup; + children = ( + 8013F88B1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift */, + ); + path = Command; + sourceTree = ""; + }; + 8020CCF31FEAD8AA003424F4 /* EmojiPicker */ = { + isa = PBXGroup; + children = ( + 334CFFED20668DDF003CDB99 /* EmojiCollectionViewCell.swift */, + 8020CCEF1FEAB4A7003424F4 /* EmojiPicker.swift */, + 8020CCF11FEAB4C3003424F4 /* EmojiPicker.xib */, + 8020CCF41FEAD8C9003424F4 /* EmojiPickerController.swift */, + ); + path = EmojiPicker; + sourceTree = ""; + }; + 80213C0F1FE063B200809E14 /* HTTP */ = { + isa = PBXGroup; + children = ( + 80213C0D1FE0639E00809E14 /* HTTPMethod.swift */, + ); + path = HTTP; + sourceTree = ""; + }; + 80235D1C1F740AAC00A56CA5 /* Subscription */ = { + isa = PBXGroup; + children = ( + 89AEB7F71F7D225D00112A09 /* SubscriptionCreateRequest.swift */, + 80A63C4E1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift */, + 80235D1A1F74070100A56CA5 /* SubscriptionMembersRequest.swift */, + 990FF6D520740C79007B4A53 /* SubscriptionMentionsRequest.swift */, + 800E22851F8507E400DA84F1 /* SubscriptionMessagesRequest.swift */, + 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 80235D201F7442C100A56CA5 /* Subscription */ = { + isa = PBXGroup; + children = ( + 890DA8AD1F942A35007C022B /* SubscriptionCreateRequestSpec.swift */, + 80A63C501F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift */, + 80235D211F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift */, + 990FF6D7207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift */, + 992B5AB7209A2890009C8123 /* SubscriptionFilesRequestSpec.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 802498EC1F7A82CD005477EC /* Authentication */ = { + isa = PBXGroup; + children = ( + D18675EB1F716A0D00406FB4 /* LoginRequest.swift */, + 802498ED1F7A8380005477EC /* MeRequest.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 802498EF1F7A9B92005477EC /* Authentication */ = { + isa = PBXGroup; + children = ( + D18675ED1F716FBC00406FB4 /* LoginRequestSpec.swift */, + 802498F01F7A9BB4005477EC /* MeRequestSpec.swift */, + ); + path = Authentication; + sourceTree = ""; + }; + 80307E3A1FD75BD3006AD9EF /* VoiceOver */ = { + isa = PBXGroup; + children = ( + 80307E3D1FD75CB1006AD9EF /* VOLocalized.swift */, + 80307E3B1FD75BE1006AD9EF /* VOTextField.swift */, + ); + path = VoiceOver; + sourceTree = ""; + }; + 806C2ACE206BBAF200EE5F67 /* External */ = { + isa = PBXGroup; + children = ( + 807C7C012074307F006B600E /* KMPlaceholderTextView.swift */, + ); + path = External; + sourceTree = ""; + }; + 806C59A01FBB0BA700C32D0A /* Message */ = { + isa = PBXGroup; + children = ( + 806728FE20079734009FE94D /* DeleteMessageRequest.swift */, + 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */, + 8067DA9A206BC71A005E3369 /* ReactMessageRequest.swift */, + 80054CF01FD9505A00F5ECF9 /* SendMessageRequest.swift */, + 8032E3E720362EF5009D33CE /* UpdateMessageRequest.swift */, + 80054CF61FD9AA1B00F5ECF9 /* UploadMessageRequest.swift */, + 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */, + 3370D8C12095995800EEA225 /* StarMessageRequest.swift */, + ); + path = Message; + sourceTree = ""; + }; + 806C59A31FBB2F3700C32D0A /* Message */ = { + isa = PBXGroup; + children = ( + 8067290020081046009FE94D /* DeleteMessageRequestSpec.swift */, + 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */, + 8067DA9C206BC7D2005E3369 /* ReactMessageRequestSpec.swift */, + 80213C0A1FDFE35C00809E14 /* UploadMessageRequestSpec.swift */, + 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */, + 3370D8C32095998E00EEA225 /* StarMessageRequestSpec.swift */, + ); + path = Message; + sourceTree = ""; + }; + 8076FDAC2048566100114F28 /* Auth */ = { + isa = PBXGroup; + children = ( + 41A79C121D2F09F200A1968E /* Auth.swift */, + 8076FDAF204856AF00114F28 /* AuthCanBlockMessage.swift */, + 8076FDAD2048567B00114F28 /* AuthCanDeleteMessage.swift */, + 8076FDB1204856CC00114F28 /* AuthCanEditMessage.swift */, + 807C7BF820740F3C006B600E /* AuthCanPinMessage.swift */, + 3370D8BF209598C000EEA225 /* AuthCanStarMessage.swift */, + 8076FDB42048571200114F28 /* AuthUser.swift */, + ); + path = Auth; + sourceTree = ""; + }; + 8076FDB72048580A00114F28 /* AuthManager */ = { + isa = PBXGroup; + children = ( + 41552F651D30308C0081438D /* AuthManager.swift */, + 8076FDB82048581F00114F28 /* AuthManagerCurrentUser.swift */, + 8076FDBA2048591A00114F28 /* AuthManagerRecover.swift */, + 8076FD9F2048519D00114F28 /* AuthManagerSocket.swift */, + ); + path = AuthManager; + sourceTree = ""; + }; + 8076FDC120485A0B00114F28 /* Subscription */ = { + isa = PBXGroup; + children = ( + 41DAE93D1D318F350098E068 /* Subscription.swift */, + 8076FDC62048632300114F28 /* SubscriptionQueries.swift */, + 8076FDC420485ABB00114F28 /* SubscriptionUser.swift */, + 8076FDC220485A2200114F28 /* SubscriptionUtils.swift */, + ); + path = Subscription; + sourceTree = ""; + }; + 8076FDCF2048644300114F28 /* Message */ = { + isa = PBXGroup; + children = ( + D10E9C191F643457007F1796 /* Channel.swift */, + 4159720B1D3DB854002258F4 /* Email.swift */, + 4159720D1D3DB882002258F4 /* Mention.swift */, + 41DC7A1A1D38454500896FC0 /* Message.swift */, + 809B53151FE3D3DC00833DD2 /* MessageReaction.swift */, + 8076FDD02048646500114F28 /* MessageReply.swift */, + 41F3C0FF1DB577ED000E0C76 /* MessageURL.swift */, + ); + path = Message; + sourceTree = ""; + }; + 8076FDD4204864D400114F28 /* User */ = { + isa = PBXGroup; + children = ( + 41A79C0E1D2F085F00A1968E /* User.swift */, + 8076FDD5204864E700114F28 /* UserQueries.swift */, + 8076FDD72048654F00114F28 /* UserUtils.swift */, + ); + path = User; + sourceTree = ""; + }; + 8076FDE02048A69200114F28 /* Compose */ = { + isa = PBXGroup; + children = ( + 80D563702058A8A7008896D6 /* Cells */, + 8076FDE12048A7C500114F28 /* SEComposeHeaderViewController.swift */, + 80977AC3204FEEA700C41435 /* SEComposeHeaderViewModel.swift */, + 805C87D82052AA1900AD0EB0 /* SEComposeViewController.swift */, + 80FA906F2056A33A0069038F /* SEComposeViewModel.swift */, + 8029B2F32059C1840067157B /* UIAlertController+StatusReport.swift */, + ); + path = Compose; + sourceTree = ""; + }; + 8076FDEB2049A5CB00114F28 /* Base */ = { + isa = PBXGroup; + children = ( + 80D0CE6E20509C100056B17F /* SEAvatarView.swift */, + 80D0CE7020509C230056B17F /* SEAvatarView.xib */, + 80D0CE61205023710056B17F /* SECell.swift */, + 8076FDEC2049A5F600114F28 /* SECellModel.swift */, + 802A4E102049C7340072CD23 /* SENavigationController.swift */, + 8076FDD920489F5900114F28 /* SEViewController.swift */, + 805C87DC2052AE1D00AD0EB0 /* SEXibInitializable.swift */, + ); + path = Base; + sourceTree = ""; + }; + 807C7C0A20751F06006B600E /* General */ = { + isa = PBXGroup; + children = ( + D18675E91F70A58B00406FB4 /* InfoRequestSpec.swift */, + 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */, + 807C7C0B20751F06006B600E /* SpotlightRequestSpec.swift */, + ); + path = General; + sourceTree = ""; + }; + 807FB5592046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { + isa = PBXGroup; + children = ( + 8076FDEB2049A5CB00114F28 /* Base */, + 8076FDE02048A69200114F28 /* Compose */, + 806C2ACE206BBAF200EE5F67 /* External */, + 80D5637320593245008896D6 /* Helpers */, + 807FB56C20472B2700E21429 /* Resources */, + 807FB57E2048376900E21429 /* Rooms */, + 807FB5802048378500E21429 /* Servers */, + 80977AC0204F374100C41435 /* State */, + 807FB55F2046E7DD00E21429 /* Info.plist */, + 807FB55C2046E7DD00E21429 /* Main.storyboard */, + 8076FDE72048CE8000114F28 /* Rocket.Chat.ShareExtension.entitlements */, + ); + path = Rocket.Chat.ShareExtension; + sourceTree = ""; + }; + 807FB56C20472B2700E21429 /* Resources */ = { + isa = PBXGroup; + children = ( + 80D5637120592D32008896D6 /* Assets.xcassets */, + 807FB57120472B6A00E21429 /* Localizable.strings */, + ); + path = Resources; + sourceTree = ""; + }; + 807FB57E2048376900E21429 /* Rooms */ = { + isa = PBXGroup; + children = ( + 80D0CE6520503C860056B17F /* SERoomCell.swift */, + 80D0CE6720503C970056B17F /* SERoomCell.xib */, + 80D0CE6B205080AA0056B17F /* SERoomCellModel.swift */, + 807FB55A2046E7DD00E21429 /* SERoomsViewController.swift */, + 807FB56A20472A0F00E21429 /* SERoomsViewModel.swift */, + ); + path = Rooms; + sourceTree = ""; + }; + 807FB5802048378500E21429 /* Servers */ = { + isa = PBXGroup; + children = ( + 80D0CE5F205016B40056B17F /* SEServerCell.swift */, + 80D0CE5B204FFAA50056B17F /* SEServerCell.xib */, + 80D0CE63205034280056B17F /* SEServerCellModel.swift */, + 807FB568204729E500E21429 /* SEServersViewController.swift */, + 807FB581204837AF00E21429 /* SEServersViewModel.swift */, + ); + path = Servers; + sourceTree = ""; + }; + 80977AB7204EFBBB00C41435 /* Navigation */ = { + isa = PBXGroup; + children = ( + 80977AB8204EFBCC00C41435 /* SENavigation.swift */, + 800640F62049BA25006D990F /* SEScene.swift */, + 80977ABA204EFC0F00C41435 /* SESceneTransition.swift */, + ); + path = Navigation; + sourceTree = ""; + }; + 80977AC0204F374100C41435 /* State */ = { + isa = PBXGroup; + children = ( + 80FA907B2057F43F0069038F /* ActionCreators */, + 80977AB7204EFBBB00C41435 /* Navigation */, + 80FA9064205313D10069038F /* Resources */, + 80977ABE204F36F200C41435 /* SESearchState.swift */, + 80977AC1204F37C200C41435 /* SEState.swift */, + 8076FD9920484A6000114F28 /* SEStore.swift */, + ); + path = State; + sourceTree = ""; + }; + 809B530C1FE2EF7C00833DD2 /* Reaction */ = { + isa = PBXGroup; + children = ( + 809B530D1FE2EFA100833DD2 /* ReactionListView.swift */, + 809B53131FE3294400833DD2 /* ReactionListView.xib */, + 809B530F1FE2F17D00833DD2 /* ReactionView.swift */, + 809B53111FE2F2F900833DD2 /* ReactionView.xib */, + 8041C0412028C7EF007E21FA /* ReactorListView.swift */, + 8041C0432028C828007E21FA /* ReactorListView.xib */, + 8041C03F2028C7A1007E21FA /* ReactorListViewController.swift */, + ); + path = Reaction; + sourceTree = ""; + }; + 80A97EFD200628A300A2774C /* Views */ = { + isa = PBXGroup; + children = ( + 8020CCF31FEAD8AA003424F4 /* EmojiPicker */, + 809B530C1FE2EF7C00833DD2 /* Reaction */, + 80A2F39120057AD0005D2DCA /* EmojiAutocompleteCell.swift */, + 80A2F39320057B48005D2DCA /* EmojiAutocompleteCell.xib */, + 806465ED1FED1AFE001F27DB /* EmojiView.swift */, + 806465EB1FED19B9001F27DB /* EmojiView.xib */, + ); + path = Views; + sourceTree = ""; + }; + 80A97EFE2006291E00A2774C /* External */ = { + isa = PBXGroup; + children = ( + 80A97EFF2006292500A2774C /* RCEmojiKit */, + ); + path = External; + sourceTree = ""; + }; + 80A97EFF2006292500A2774C /* RCEmojiKit */ = { + isa = PBXGroup; + children = ( + 80A97F002006293D00A2774C /* EmojiSearcherSpec.swift */, + 807FB53E2045F36D00E21429 /* EmojioneSpec.swift */, + ); + path = RCEmojiKit; + sourceTree = ""; + }; + 80D41DFB2092152A00034D1F /* ActionSheets */ = { + isa = PBXGroup; + children = ( + 3370D8BD2095978800EEA225 /* UserActionSheetPresenter.swift */, + ); + path = ActionSheets; + sourceTree = ""; + }; + 80D41E0320924A6500034D1F /* Auth */ = { + isa = PBXGroup; + children = ( + 3370D8C5209599E600EEA225 /* AuthCanStarMessageSpec.swift */, + 416133391D46E0A200E09DA2 /* AuthSpec.swift */, + ); + path = Auth; + sourceTree = ""; + }; + 80D563702058A8A7008896D6 /* Cells */ = { + isa = PBXGroup; + children = ( + 80FA90772056C3AE0069038F /* SEComposeCellModel.swift */, + 80FA906920569F890069038F /* SEComposeFileCell.swift */, + 80FA906B20569FA10069038F /* SEComposeFileCell.xib */, + 80FA906D2056A1F80069038F /* SEComposeFileCellModel.swift */, + 80FA90712056C1190069038F /* SEComposeTextCell.swift */, + 80FA90732056C1350069038F /* SEComposeTextCell.xib */, + 80FA90752056C24C0069038F /* SEComposeTextCellModel.swift */, + 80FE8DEF206587510099170E /* SEFileDetailView.swift */, + 80FE8DED206584EA0099170E /* SEFileDetailView.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 80D5637320593245008896D6 /* Helpers */ = { + isa = PBXGroup; + children = ( + 80D563742059325A008896D6 /* MimeType.swift */, + 8029B2F12059B6F60067157B /* VideoInfo.swift */, + 80DC9A6F206BAC8B00032BE0 /* mimetype.json */, + ); + path = Helpers; + sourceTree = ""; + }; + 80E99F2A1FD8B4AC00B70B59 /* API */ = { + isa = PBXGroup; + children = ( + 80E99F2B1FD8B4BA00B70B59 /* APIExtensionsSpec.swift */, + ); + path = API; + sourceTree = ""; + }; + 80E99F2D1FD8B4E200B70B59 /* Models */ = { + isa = PBXGroup; + children = ( + 80AE253F203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift */, + 80E99F2E1FD8B4F400B70B59 /* UserExtensionsSpec.swift */, + ); + path = Models; + sourceTree = ""; + }; + 80FA9064205313D10069038F /* Resources */ = { + isa = PBXGroup; + children = ( + 80FA9065205313E20069038F /* SEContent.swift */, + 80FA9067205314040069038F /* SEServer.swift */, + ); + path = Resources; + sourceTree = ""; + }; + 80FA907B2057F43F0069038F /* ActionCreators */ = { + isa = PBXGroup; + children = ( + 80D5637620593533008896D6 /* ParseItemProviders.swift */, + 80977AB5204EEF1E00C41435 /* SelectServer.swift */, + 80FA907C2057F4650069038F /* SubmitContent.swift */, + ); + path = ActionCreators; + sourceTree = ""; + }; + 897083CC1F8CF08100233561 /* Form */ = { + isa = PBXGroup; + children = ( + 897083CD1F8CF08100233561 /* Cells */, + 897083D21F8CF08100233561 /* FormTableViewCell.swift */, + ); + path = Form; + sourceTree = ""; + }; + 897083CD1F8CF08100233561 /* Cells */ = { + isa = PBXGroup; + children = ( + 897083CE1F8CF08100233561 /* CheckTableViewCell.swift */, + 897083CF1F8CF08100233561 /* CheckTableViewCell.xib */, + 14FBFF761FB267BF000D400B /* MentionsTextFieldTableViewCell.swift */, + 14FBFF781FB267C9000D400B /* MentionsTextFieldTableViewCell.xib */, + 897083D01F8CF08100233561 /* TextFieldTableViewCell.swift */, + 897083D11F8CF08100233561 /* TextFieldTableViewCell.xib */, + ); + path = Cells; + sourceTree = ""; + }; + 925FF74F1E8EFC9200982043 /* Preferences */ = { + isa = PBXGroup; + children = ( + 140A95DC202F1E4D003FD564 /* AppIcon */, + 0BBCC2C0204546BB001E3B6D /* Language */, + 99F41BCC20658AD900B240FC /* Profile */, + 994DA2B12065480300083FB8 /* Web Browser */, + 41F8487D1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift */, + ); + path = Preferences; + sourceTree = ""; + }; + 99282260204DE0AE005D2067 /* Profile */ = { + isa = PBXGroup; + children = ( + 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */, + 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */, + 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */, + 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */, + ); + path = Profile; + sourceTree = ""; + }; + 994DA2B12065480300083FB8 /* Web Browser */ = { + isa = PBXGroup; + children = ( + 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */, + ); + path = "Web Browser"; + sourceTree = ""; + }; + 9960C82E2063F091004A034C /* Web Browser */ = { + isa = PBXGroup; + children = ( + 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */, + 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */, + ); + path = "Web Browser"; + sourceTree = ""; + }; + 9977302520725B3A009AF465 /* Emoji */ = { + isa = PBXGroup; + children = ( + 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */, + ); + path = Emoji; + sourceTree = ""; + }; + 9977302820727DA0009AF465 /* Emoji */ = { + isa = PBXGroup; + children = ( + 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */, + ); + path = Emoji; + sourceTree = ""; + }; + 998165C8204EBB5E0059D346 /* User */ = { + isa = PBXGroup; + children = ( + 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */, + 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */, + 80A63C541F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift */, + ); + path = User; + sourceTree = ""; + }; + 99D888F92046239100E51306 /* User */ = { + isa = PBXGroup; + children = ( + 99D888FA204623A900E51306 /* UpdateUserRequest.swift */, + 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */, + 80A63C521F71BD2900FE5AC4 /* UserInfoRequest.swift */, + ); + path = User; + sourceTree = ""; + }; + 99F41BCC20658AD900B240FC /* Profile */ = { + isa = PBXGroup; + children = ( + 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */, + 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */, + ); + path = Profile; + sourceTree = ""; + }; + D18675E71F70A55D00406FB4 /* API */ = { + isa = PBXGroup; + children = ( + 8013F87E1FD6B66900EE1A4E /* Clients */, + 8013F8771FD6B61400EE1A4E /* Middlewares */, + D18675E81F70A56800406FB4 /* Requests */, + 80A63C561F71D2E400FE5AC4 /* APISpec.swift */, + 8073719B1F963FA400D53ADF /* APITestCase.swift */, + 8013F87A1FD6B64400EE1A4E /* MockAPI.swift */, + 8013F87B1FD6B64400EE1A4E /* VersionSpec.swift */, + ); + path = API; + sourceTree = ""; + }; + D18675E81F70A56800406FB4 /* Requests */ = { + isa = PBXGroup; + children = ( + 802498EF1F7A9B92005477EC /* Authentication */, + 8013F88A1FD6B79900EE1A4E /* Command */, + 9977302820727DA0009AF465 /* Emoji */, + 807C7C0A20751F06006B600E /* General */, + 806C59A31FBB2F3700C32D0A /* Message */, + 80235D201F7442C100A56CA5 /* Subscription */, + 998165C8204EBB5E0059D346 /* User */, + ); + path = Requests; + sourceTree = ""; + }; + D1D535EA1F7081E6006625D2 /* API */ = { + isa = PBXGroup; + children = ( + 8013F86E1FD6B59D00EE1A4E /* Clients */, + 80213C0F1FE063B200809E14 /* HTTP */, + 8013F8741FD6B5D100EE1A4E /* Middlewares */, + D1D535EF1F70863C006625D2 /* Requests */, + D1D535EB1F7081FA006625D2 /* API.swift */, + 8013F86A1FD6B59A00EE1A4E /* APIClient.swift */, + 8013F8691FD6B59900EE1A4E /* APIError.swift */, + D1D535ED1F708628006625D2 /* APIRequest.swift */, + 8067DAA5206D1883005E3369 /* APIResource.swift */, + D15C83851F70991F001AB155 /* APIResponse.swift */, + 8013F8681FD6B59900EE1A4E /* Version.swift */, + ); + path = API; + sourceTree = ""; + }; + D1D535EF1F70863C006625D2 /* Requests */ = { + isa = PBXGroup; + children = ( + 802498EC1F7A82CD005477EC /* Authentication */, + 8013F8831FD6B74800EE1A4E /* Command */, + 9977302520725B3A009AF465 /* Emoji */, + 80054CFA1FDAFD3A00F5ECF9 /* General */, + 806C59A01FBB0BA700C32D0A /* Message */, + 80235D1C1F740AAC00A56CA5 /* Subscription */, + 99D888F92046239100E51306 /* User */, + ); + path = Requests; + sourceTree = ""; + }; + D1DA25261F695AC700DB6ABB /* Controllers */ = { + isa = PBXGroup; + children = ( + D1DA25241F695ABF00DB6ABB /* ChatDataControllerSpec.swift */, + 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */, + 89AFF3C71F94374D00D07A30 /* NewRoomViewControllerSpec.swift */, + 33093DC8207C949C00DD81F6 /* NotificationViewControllerSpec.swift */, + 80C110881FB62F7B00205BB1 /* OAuthViewControllerSpec.swift */, + ); + path = Controllers; + sourceTree = ""; + }; + D32E28201DFD86AC00D6019C /* Launcher */ = { + isa = PBXGroup; + children = ( + D32E28211DFD86C300D6019C /* BugTrackingCoordinator.swift */, + D32E28221DFD86C300D6019C /* LauncherProtocol.swift */, + 8076FDE32048CC8600114F28 /* MigrationCoordinator.swift */, + 411119B51F680DB00019854B /* NetworkCoordinator.swift */, + D32E28231DFD86C300D6019C /* PersistencyCoordinator.swift */, + 41499C901F2A1A7200790EA7 /* TimestampCoordinator.swift */, + ); + path = Launcher; + sourceTree = ""; + }; + D3CFAFBE1E907FC100BADC0A /* Chat */ = { + isa = PBXGroup; + children = ( + 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */, + 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */, + ); + path = Chat; + sourceTree = ""; + }; + EE693BBD0CC2727847214E2D /* Pods */ = { + isa = PBXGroup; + children = ( + BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */, + 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */, + 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */, + 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */, + AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */, + FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */, + 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */, + 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */, + F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */; - buildPhases = ( - 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */, - D37272A11E13E60E00A25E1A /* SwiftLint */, - 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */, - 41DF76DB1D2C50710028DBF8 /* Sources */, - 41DF76DC1D2C50710028DBF8 /* Frameworks */, - 41DF76DD1D2C50710028DBF8 /* Resources */, - FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */, - FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */, - 807FB5672046E7DD00E21429 /* Embed App Extensions */, - ); - buildRules = ( - ); - dependencies = ( - 807FB5612046E7DD00E21429 /* PBXTargetDependency */, - ); - name = Rocket.Chat; - productName = Rocket.Chat; - productReference = 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */; - productType = "com.apple.product-type.application"; - }; - 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */; - buildPhases = ( - 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */, - F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */, - 41DF76EF1D2C50720028DBF8 /* Sources */, - 41DF76F01D2C50720028DBF8 /* Frameworks */, - 41DF76F11D2C50720028DBF8 /* Resources */, - DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */, - DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */, - ); - name = Rocket.ChatTests; - productName = Rocket.ChatTests; - productReference = 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */; - buildPhases = ( - 41DF76FA1D2C50720028DBF8 /* Sources */, - 41DF76FB1D2C50720028DBF8 /* Frameworks */, - 41DF76FC1D2C50720028DBF8 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 41DF77001D2C50720028DBF8 /* PBXTargetDependency */, - ); - name = Rocket.ChatUITests; - productName = Rocket.ChatUITests; - productReference = 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; - 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */; - buildPhases = ( - EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */, - 807FB5542046E7DD00E21429 /* Sources */, - 807FB5552046E7DD00E21429 /* Frameworks */, - 807FB5562046E7DD00E21429 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Rocket.Chat.ShareExtension; - productName = Rocket.Chat.ShareExtension; - productReference = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; - productType = "com.apple.product-type.app-extension"; - }; + 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */; + buildPhases = ( + 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */, + D37272A11E13E60E00A25E1A /* SwiftLint */, + 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */, + 41DF76DB1D2C50710028DBF8 /* Sources */, + 41DF76DC1D2C50710028DBF8 /* Frameworks */, + 41DF76DD1D2C50710028DBF8 /* Resources */, + FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */, + FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */, + 807FB5672046E7DD00E21429 /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + 807FB5612046E7DD00E21429 /* PBXTargetDependency */, + ); + name = Rocket.Chat; + productName = Rocket.Chat; + productReference = 41DF76DF1D2C50710028DBF8 /* Rocket.Chat.app */; + productType = "com.apple.product-type.application"; + }; + 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */; + buildPhases = ( + 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */, + F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */, + 41DF76EF1D2C50720028DBF8 /* Sources */, + 41DF76F01D2C50720028DBF8 /* Frameworks */, + 41DF76F11D2C50720028DBF8 /* Resources */, + DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */, + DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */, + ); + name = Rocket.ChatTests; + productName = Rocket.ChatTests; + productReference = 41DF76F31D2C50720028DBF8 /* Rocket.ChatTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */; + buildPhases = ( + 41DF76FA1D2C50720028DBF8 /* Sources */, + 41DF76FB1D2C50720028DBF8 /* Frameworks */, + 41DF76FC1D2C50720028DBF8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 41DF77001D2C50720028DBF8 /* PBXTargetDependency */, + ); + name = Rocket.ChatUITests; + productName = Rocket.ChatUITests; + productReference = 41DF76FE1D2C50720028DBF8 /* Rocket.ChatUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */; + buildPhases = ( + EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */, + 807FB5542046E7DD00E21429 /* Sources */, + 807FB5552046E7DD00E21429 /* Frameworks */, + 807FB5562046E7DD00E21429 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Rocket.Chat.ShareExtension; + productName = Rocket.Chat.ShareExtension; + productReference = 807FB5582046E7DD00E21429 /* Rocket.Chat.ShareExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 41DF76D71D2C50710028DBF8 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0930; - ORGANIZATIONNAME = Rocket.Chat; - TargetAttributes = { - 41DF76DE1D2C50710028DBF8 = { - CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - SystemCapabilities = { - com.apple.ApplicationGroups.iOS = { - enabled = 1; - }; - com.apple.BackgroundModes = { - enabled = 1; - }; - com.apple.Push = { - enabled = 1; - }; - com.apple.SafariKeychain = { - enabled = 1; - }; - com.apple.iCloud = { - enabled = 1; - }; - }; - }; - 41DF76F21D2C50720028DBF8 = { - CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - TestTargetID = 41DF76DE1D2C50710028DBF8; - }; - 41DF76FD1D2C50720028DBF8 = { - CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = S6UPZG7ZR3; - LastSwiftMigration = 0900; - TestTargetID = 41DF76DE1D2C50710028DBF8; - }; - 807FB5572046E7DD00E21429 = { - CreatedOnToolsVersion = 9.2; - DevelopmentTeam = S6UPZG7ZR3; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.ApplicationGroups.iOS = { - enabled = 1; - }; - }; - }; - }; - }; - buildConfigurationList = 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - "pt-BR", - de, - pl, - cs, - fr, - el, - es, - ); - mainGroup = 41DF76D61D2C50710028DBF8; - productRefGroup = 41DF76E01D2C50710028DBF8 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */, - 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */, - 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */, - 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */, - ); - }; + 41DF76D71D2C50710028DBF8 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = Rocket.Chat; + TargetAttributes = { + 41DF76DE1D2C50710028DBF8 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = S6UPZG7ZR3; + LastSwiftMigration = 0900; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + com.apple.BackgroundModes = { + enabled = 1; + }; + com.apple.Push = { + enabled = 1; + }; + com.apple.SafariKeychain = { + enabled = 1; + }; + com.apple.iCloud = { + enabled = 1; + }; + }; + }; + 41DF76F21D2C50720028DBF8 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = S6UPZG7ZR3; + LastSwiftMigration = 0900; + TestTargetID = 41DF76DE1D2C50710028DBF8; + }; + 41DF76FD1D2C50720028DBF8 = { + CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = S6UPZG7ZR3; + LastSwiftMigration = 0900; + TestTargetID = 41DF76DE1D2C50710028DBF8; + }; + 807FB5572046E7DD00E21429 = { + CreatedOnToolsVersion = 9.2; + DevelopmentTeam = S6UPZG7ZR3; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + }; + }; + }; + }; + buildConfigurationList = 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + "pt-BR", + de, + pl, + cs, + fr, + el, + es, + ); + mainGroup = 41DF76D61D2C50710028DBF8; + productRefGroup = 41DF76E01D2C50710028DBF8 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */, + 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */, + 41DF76F21D2C50720028DBF8 /* Rocket.ChatTests */, + 41DF76FD1D2C50720028DBF8 /* Rocket.ChatUITests */, + ); + }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 41DF76DD1D2C50710028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */, - 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */, - 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */, - 33A5C9CC206A565800FE1C8F /* regional.json in Resources */, - 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */, - 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */, - 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */, - 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */, - 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */, - 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */, - 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */, - 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */, - 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */, - 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */, - 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */, - 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */, - 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */, - 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */, - 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */, - 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */, - 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */, - 33A5C9CE206A565800FE1C8F /* people.json in Resources */, - 33A5C9D1206A565800FE1C8F /* activity.json in Resources */, - 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */, - 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */, - 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */, - 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */, - 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */, - 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */, - 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */, - 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */, - 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */, - 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */, - 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */, - 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */, - 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */, - 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */, - 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */, - 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */, - 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */, - 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */, - 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */, - 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */, - 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */, - 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */, - 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */, - 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */, - 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */, - 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */, - 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */, - 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */, - 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */, - 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */, - 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */, - 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */, - 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */, - 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */, - 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */, - 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */, - 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */, - 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */, - 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */, - 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */, - 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */, - 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */, - 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */, - 14F8A281202E659000175FDC /* White-40@3x.png in Resources */, - 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */, - 9987B59A2093E526007D277C /* FileTableViewCell.xib in Resources */, - 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */, - 33A5C9CB206A565800FE1C8F /* travel.json in Resources */, - 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */, - 14F8A287202E659000175FDC /* White-40@2x.png in Resources */, - 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */, - 14F8A288202E659000175FDC /* White-60@3x.png in Resources */, - 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */, - 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */, - 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */, - 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */, - 14F8A280202E659000175FDC /* White-76@2x.png in Resources */, - 33A5C9CD206A565800FE1C8F /* flags.json in Resources */, - 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */, - 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */, - 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */, - 14F8A284202E659000175FDC /* White-60@2x.png in Resources */, - 14F8A286202E659000175FDC /* White-29@2x.png in Resources */, - 14F8A282202E659000175FDC /* White-76@3x.png in Resources */, - 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */, - 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */, - 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */, - 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */, - 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */, - 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */, - 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */, - 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */, - 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */, - 33A5C9D2206A565800FE1C8F /* nature.json in Resources */, - 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */, - 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */, - 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */, - 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */, - 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */, - 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */, - 14F8A285202E659000175FDC /* White-29@3x.png in Resources */, - 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */, - 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */, - 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */, - 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */, - 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */, - 33A5C9D0206A565800FE1C8F /* food.json in Resources */, - 33A5C9CF206A565800FE1C8F /* objects.json in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76F11D2C50720028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FC1D2C50720028DBF8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5562046E7DD00E21429 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */, - 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */, - 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */, - 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */, - 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */, - 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */, - 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */, - 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */, - 80D5637220592D32008896D6 /* Assets.xcassets in Resources */, - 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 41DF76DD1D2C50710028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14F8A25D202E64B200175FDC /* BnW-29@3x.png in Resources */, + 412A95D71FD94ED000954AA6 /* ChatMessageVideoView.xib in Resources */, + 41AC3CD31DCC9873002DC39A /* AutocompleteCell.xib in Resources */, + 33A5C9CC206A565800FE1C8F /* regional.json in Resources */, + 41A91AEF1E51C51A005C94B1 /* SubscriptionUserStatusView.xib in Resources */, + 412EF3C62050507C001689A3 /* ReusableViewText.xib in Resources */, + 14F8A224202E5CBF00175FDC /* Black-60@3x.png in Resources */, + 14F8A23F202E5D0600175FDC /* Red-29@2x.png in Resources */, + 412BCC851E55C6A300F7F4EE /* ChatMessageTextView.xib in Resources */, + 41C275E11D84815C003C88CF /* AvatarView.xib in Resources */, + 14F8A261202E64B200175FDC /* BnW-76@3x.png in Resources */, + 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */, + 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */, + 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */, + 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */, + 14F8A29A202E65C700175FDC /* Blue-76@2x.png in Resources */, + 14F8A241202E5D0600175FDC /* Red-60@2x.png in Resources */, + 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */, + 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */, + 33A5C9BE206A561400FE1C8F /* emojiNames.json in Resources */, + 14F8A26F202E653E00175FDC /* Grey-83.5@2x.png in Resources */, + 33A5C9CE206A565800FE1C8F /* people.json in Resources */, + 33A5C9D1206A565800FE1C8F /* activity.json in Resources */, + 14F8A25F202E64B200175FDC /* BnW-40@2x.png in Resources */, + 14F8A227202E5CBF00175FDC /* Black-83.5@2x.png in Resources */, + 41CABFF81F5047D600E0B289 /* ChatLoaderCell.xib in Resources */, + 14F8A23C202E5D0600175FDC /* Red-60@3x.png in Resources */, + 41D3A62E1E0805310011949D /* ChatMessageDaySeparator.xib in Resources */, + 14F8A274202E653E00175FDC /* Grey-60@2x.png in Resources */, + 14F8A225202E5CBF00175FDC /* Black-60@2x.png in Resources */, + 14F8A25C202E64B200175FDC /* BnW-60@3x.png in Resources */, + 14F8A26D202E653E00175FDC /* Grey-29@2x.png in Resources */, + 14F8A26C202E653E00175FDC /* Grey-40@2x.png in Resources */, + 14F8A244202E5D0600175FDC /* Red-83.5@2x.png in Resources */, + 14F8A259202E64B200175FDC /* BnW-40@3x.png in Resources */, + 14F8A245202E5D0600175FDC /* Red-76@3x.png in Resources */, + 80235D261F74672D00A56CA5 /* LoaderTableViewCell.xib in Resources */, + 14F8A25A202E64B200175FDC /* BnW-29@2x.png in Resources */, + 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */, + 14F8A298202E65C700175FDC /* Blue-29@2x.png in Resources */, + 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */, + 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */, + 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */, + 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */, + 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */, + 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */, + 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */, + 8020CCF21FEAB4C3003424F4 /* EmojiPicker.xib in Resources */, + 80307E411FD75DC0006AD9EF /* VoiceOver.strings in Resources */, + 14F8A296202E65C700175FDC /* Blue-83.5@2x.png in Resources */, + 897083D41F8CF08100233561 /* CheckTableViewCell.xib in Resources */, + 14F8A299202E65C700175FDC /* Blue-40@3x.png in Resources */, + 14F8A283202E659000175FDC /* White-83.5@2x.png in Resources */, + 4113BF70208E23F000A9D4D8 /* Preferences.storyboard in Resources */, + 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */, + 14F8A22C202E5CBF00175FDC /* Black-76@3x.png in Resources */, + 14F8A297202E65C700175FDC /* Blue-40@2x.png in Resources */, + 14F8A271202E653E00175FDC /* Grey-40@3x.png in Resources */, + 14F8A292202E65C700175FDC /* Blue-29@3x.png in Resources */, + 14F8A294202E65C700175FDC /* Blue-60@3x.png in Resources */, + 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */, + 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */, + 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */, + 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */, + 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */, + 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */, + 14F8A281202E659000175FDC /* White-40@3x.png in Resources */, + 14F8A22A202E5CBF00175FDC /* Black-40@2x.png in Resources */, + 9987B59A2093E526007D277C /* FileTableViewCell.xib in Resources */, + 411F7D961F5179B50080E8AD /* ChatChannelHeaderCell.xib in Resources */, + 33A5C9CB206A565800FE1C8F /* travel.json in Resources */, + 14F8A228202E5CBF00175FDC /* Black-40@3x.png in Resources */, + 14F8A287202E659000175FDC /* White-40@2x.png in Resources */, + 41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */, + 14F8A288202E659000175FDC /* White-60@3x.png in Resources */, + 333032A02073940800A9514D /* RCEmojiKit.strings in Resources */, + 14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */, + 419D84FE1DF599CA0021F034 /* ChatHeaderViewStatus.xib in Resources */, + 4133EDD11DA2835F005AA783 /* ChatMessageImageView.xib in Resources */, + 14F8A280202E659000175FDC /* White-76@2x.png in Resources */, + 33A5C9CD206A565800FE1C8F /* flags.json in Resources */, + 333207FF20766E4F00AD3290 /* NotificationViewController.xib in Resources */, + 14F8A272202E653E00175FDC /* Grey-29@3x.png in Resources */, + 80CFB5721F8D697100FC9715 /* ReplyView.xib in Resources */, + 14F8A284202E659000175FDC /* White-60@2x.png in Resources */, + 14F8A286202E659000175FDC /* White-29@2x.png in Resources */, + 14F8A282202E659000175FDC /* White-76@3x.png in Resources */, + 14F8A223202E5CBF00175FDC /* Black-76@2x.png in Resources */, + 14F8A23D202E5D0600175FDC /* Red-29@3x.png in Resources */, + 41E2FA011D414EA100238DFD /* Subscriptions.storyboard in Resources */, + 14F8A256202E64B200175FDC /* BnW-83.5@2x.png in Resources */, + 897083D61F8CF08100233561 /* TextFieldTableViewCell.xib in Resources */, + 14F8A25B202E64B200175FDC /* BnW-60@2x.png in Resources */, + 41D894041F4EF65700E284D2 /* ChatDirectMessageHeaderCell.xib in Resources */, + 14F8A220202E5CBF00175FDC /* Black-29@3x.png in Resources */, + 80AE2544203E61CF00DC2867 /* ChatMessageUnreadSeparator.xib in Resources */, + 33A5C9D2206A565800FE1C8F /* nature.json in Resources */, + 14F8A26E202E653E00175FDC /* Grey-76@3x.png in Resources */, + 802498F31F7ACD76005477EC /* ChatMessageAudioView.xib in Resources */, + 41EB22361E5F056600AA3AE7 /* Localizable.strings in Resources */, + 41E2F9FF1D414DE800238DFD /* Chat.storyboard in Resources */, + 14F8A273202E653E00175FDC /* Grey-60@3x.png in Resources */, + 41F167EB1DAC4D5500775CCA /* ChatTitleView.xib in Resources */, + 14F8A285202E659000175FDC /* White-29@3x.png in Resources */, + 14FBFF791FB267C9000D400B /* MentionsTextFieldTableViewCell.xib in Resources */, + 33A5C9CA206A565800FE1C8F /* symbols.json in Resources */, + 14F8A243202E5D0600175FDC /* Red-40@2x.png in Resources */, + 800FCD511F728EC800D9A692 /* MemberCell.xib in Resources */, + 14F8A226202E5CBF00175FDC /* Black-29@2x.png in Resources */, + 33A5C9D0206A565800FE1C8F /* food.json in Resources */, + 33A5C9CF206A565800FE1C8F /* objects.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76F11D2C50720028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 416296FA1F41B7F400BCCEDD /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FC1D2C50720028DBF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5562046E7DD00E21429 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 80FA906C20569FA10069038F /* SEComposeFileCell.xib in Resources */, + 80FE8DEE206584EA0099170E /* SEFileDetailView.xib in Resources */, + 80D0CE6820503C970056B17F /* SERoomCell.xib in Resources */, + 807FB55E2046E7DD00E21429 /* Main.storyboard in Resources */, + 807FB56F20472B6A00E21429 /* Localizable.strings in Resources */, + 80DC9A70206BAC8B00032BE0 /* mimetype.json in Resources */, + 80D0CE7120509C230056B17F /* SEAvatarView.xib in Resources */, + 80FA90742056C1350069038F /* SEComposeTextCell.xib in Resources */, + 80D5637220592D32008896D6 /* Assets.xcassets in Resources */, + 80D0CE5C204FFAA50056B17F /* SEServerCell.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.ChatTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - D37272A11E13E60E00A25E1A /* SwiftLint */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 12; - files = ( - ); - inputPaths = ( - ); - name = SwiftLint; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n \"${PODS_ROOT}/SwiftLint/swiftlint\"\nfi"; - }; - DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", - "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", - "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", - "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", - "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", - "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", - "${PODS_ROOT}/Instabug/Instabug.framework", - "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", - "${PODS_ROOT}/Instabug/InstabugCore.framework", - "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", - "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", - "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", - "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", - "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", - "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", - "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", - "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", - "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", - "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", - "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", - "${BUILT_PRODUCTS_DIR}/semver/semver.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", - "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", - "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "📦 Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat.ShareExtension-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", - "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", - "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", - "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", - "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", - "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", - "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", - "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", - "${PODS_ROOT}/Instabug/Instabug.framework", - "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", - "${PODS_ROOT}/Instabug/InstabugCore.framework", - "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", - "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", - "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", - "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", - "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", - "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", - "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", - "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", - "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", - "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", - "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", - "${BUILT_PRODUCTS_DIR}/semver/semver.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", - "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", - "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "📦 Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; + 37A12832FCABEE937B91E416 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.ChatTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 5A6B94785E51D859BD0468DE /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 6396FC1046FD3E86C9C3A600 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + D37272A11E13E60E00A25E1A /* SwiftLint */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 12; + files = ( + ); + inputPaths = ( + ); + name = SwiftLint; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [ \"${CONFIGURATION}\" = \"Debug\" ]; then\n \"${PODS_ROOT}/SwiftLint/swiftlint\"\nfi"; + }; + DC24B2F8EF9BED399B024C23 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", + "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", + "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", + "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", + "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", + "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", + "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", + "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", + "${PODS_ROOT}/Instabug/Instabug.framework", + "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", + "${PODS_ROOT}/Instabug/InstabugCore.framework", + "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", + "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", + "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", + "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", + "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", + "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", + "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", + "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", + "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", + "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", + "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", + "${BUILT_PRODUCTS_DIR}/semver/semver.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", + "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", + "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + DEFA8FD3D3E972322218FB03 /* 📦 Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "📦 Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + EA3F7DE5AADE2FCAFD362350 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Rocket.Chat.ShareExtension-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + F0237DBB56B21F1F60250436 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + FC8FBCDB0132F52FB242368E /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/FLAnimatedImage/FLAnimatedImage.framework", + "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", + "${BUILT_PRODUCTS_DIR}/Realm/Realm.framework", + "${BUILT_PRODUCTS_DIR}/RealmSwift/RealmSwift.framework", + "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", + "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", + "${BUILT_PRODUCTS_DIR}/1PasswordExtension/OnePasswordExtension.framework", + "${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework", + "${PODS_ROOT}/Instabug/Instabug.framework", + "${PODS_ROOT}/Instabug/Instabug.framework.dSYM", + "${PODS_ROOT}/Instabug/InstabugCore.framework", + "${PODS_ROOT}/Instabug/InstabugCore.framework.dSYM", + "${BUILT_PRODUCTS_DIR}/MobilePlayer/MobilePlayer.framework", + "${BUILT_PRODUCTS_DIR}/OAuthSwift/OAuthSwift.framework", + "${BUILT_PRODUCTS_DIR}/RCMarkdownParser/RCMarkdownParser.framework", + "${BUILT_PRODUCTS_DIR}/ReachabilitySwift/Reachability.framework", + "${BUILT_PRODUCTS_DIR}/SearchTextField/SearchTextField.framework", + "${BUILT_PRODUCTS_DIR}/SideMenuController/SideMenuController.framework", + "${BUILT_PRODUCTS_DIR}/SimpleImageViewer/SimpleImageViewer.framework", + "${BUILT_PRODUCTS_DIR}/SlackTextViewController/SlackTextViewController.framework", + "${BUILT_PRODUCTS_DIR}/Starscream/Starscream.framework", + "${BUILT_PRODUCTS_DIR}/TagListView/TagListView.framework", + "${BUILT_PRODUCTS_DIR}/semver/semver.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLAnimatedImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RealmSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OnePasswordExtension.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Instabug.framework", + "${DWARF_DSYM_FOLDER_PATH}/Instabug.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/InstabugCore.framework", + "${DWARF_DSYM_FOLDER_PATH}/InstabugCore.framework.dSYM", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MobilePlayer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OAuthSwift.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCMarkdownParser.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Reachability.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SearchTextField.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SideMenuController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SimpleImageViewer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlackTextViewController.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Starscream.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TagListView.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/semver.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + FD5E5CD0D343F2BAB726ADF9 /* 📦 Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "📦 Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 41DF76DB1D2C50710028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */, - 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */, - 3370D8D820977E9C00EEA225 /* ThemePreferenceController.swift in Sources */, - 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */, - 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */, - 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */, - 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */, - 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */, - 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */, - D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */, - 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */, - 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */, - 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */, - 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */, - 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */, - 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */, - 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */, - 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */, - 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */, - 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */, - 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */, - 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */, - 9987B5992093E526007D277C /* FileTableViewCell.swift in Sources */, - 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */, - 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */, - 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */, - 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */, - 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */, - 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */, - 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */, - 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */, - 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */, - B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */, - 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */, - 41552F661D30308C0081438D /* AuthManager.swift in Sources */, - 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */, - 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */, - D10E9C1A1F643457007F1796 /* Channel.swift in Sources */, - 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */, - 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */, - 413996171F3B44500075F96E /* UploadHelper.swift in Sources */, - 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */, - 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */, - 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */, - 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */, - 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */, - 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */, - 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */, - 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */, - 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */, - 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */, - 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */, - 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */, - 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */, - 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */, - 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */, - 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */, - 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */, - 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */, - D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */, - D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */, - 8076FDA42048533000114F28 /* String+Random.swift in Sources */, - 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */, - 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */, - 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */, - 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */, - 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */, - 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */, - D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */, - 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */, - 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */, - 8076FDB52048571200114F28 /* AuthUser.swift in Sources */, - 4159720E1D3DB882002258F4 /* Mention.swift in Sources */, - 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */, - 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */, - 806401311FB09DE800990572 /* Permission.swift in Sources */, - 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */, - 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */, - 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */, - 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */, - 4159720C1D3DB854002258F4 /* Email.swift in Sources */, - 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */, - 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */, - 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */, - 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */, - 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */, - 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */, - 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, - 4199A9891DABCC570035F820 /* Emojione.swift in Sources */, - 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */, - 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */, - 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */, - 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */, - 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */, - 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */, - D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */, - 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */, - 3370D8D620977D8600EEA225 /* ThemePreferenceViewModel.swift in Sources */, - 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, - 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, - A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, - 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */, - 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */, - 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */, - 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */, - 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */, - 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */, - 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */, - 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */, - 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */, - 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */, + 41DF76DB1D2C50710028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */, + 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */, + 3370D8D820977E9C00EEA225 /* ThemePreferenceController.swift in Sources */, + 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */, + 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */, + 33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */, + 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */, + 41E9BD0D208EA4040084D4D8 /* AuthInternalExtensions.swift in Sources */, + 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */, + D1C536CC1F688B2F00EBA8D9 /* MarkdownManager.swift in Sources */, + 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */, + 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */, + 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */, + 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */, + 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */, + 41D7CA871E644E47000F38EA /* MessageExtensions.swift in Sources */, + 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */, + 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */, + 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */, + 4192054C1D52F4FC004EEC5F /* SubscriptionCell.swift in Sources */, + 412E1F3B1DB6D55000531FDA /* ChatMessageURLView.swift in Sources */, + 35C7D19A202B130400B4BE5A /* RCDateFormatter.swift in Sources */, + 9987B5992093E526007D277C /* FileTableViewCell.swift in Sources */, + 800FCD501F728EC800D9A692 /* MemberCell.swift in Sources */, + 77CCB6BE1F8D0597004BBF67 /* DictionaryExtensions.swift in Sources */, + 80054CF71FD9AA1B00F5ECF9 /* UploadMessageRequest.swift in Sources */, + 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */, + 800FCD4B1F728EC800D9A692 /* ChannelInfoBasicCell.swift in Sources */, + 41ADDD491E9DBB100007A458 /* LoaderView.swift in Sources */, + 8067DAA6206D1883005E3369 /* APIResource.swift in Sources */, + 411F7D941F5179A50080E8AD /* ChatChannelHeaderCell.swift in Sources */, + 41F167E91DAC4D4300775CCA /* ChatTitleView.swift in Sources */, + B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */, + 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */, + 41552F661D30308C0081438D /* AuthManager.swift in Sources */, + 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */, + 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */, + D10E9C1A1F643457007F1796 /* Channel.swift in Sources */, + 0B9AB2C120444ECD00ABEA05 /* LanguageViewController.swift in Sources */, + 806728FD200789F4009FE94D /* PreferencesNavigationController.swift in Sources */, + 413996171F3B44500075F96E /* UploadHelper.swift in Sources */, + 7798B4151F852B720074B2F4 /* SelectField.swift in Sources */, + 805DEC351FFC03380033151B /* CustomEmojiManager.swift in Sources */, + 0BC0E8632032DD95004BFAAF /* DrawingViewModel.swift in Sources */, + 35E892C8201CDD1600B4BE5A /* NewRoomViewController.swift in Sources */, + 990FF6D620740C79007B4A53 /* SubscriptionMentionsRequest.swift in Sources */, + 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */, + 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */, + 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */, + 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */, + 415066881EB8B541003AEA1C /* MessageTextCacheManager.swift in Sources */, + 4151B45A1E2D1DD400F8AA1B /* AttachmentModelMapping.swift in Sources */, + 80307E3E1FD75CB1006AD9EF /* VOLocalized.swift in Sources */, + 807C7BF920740F3C006B600E /* AuthCanPinMessage.swift in Sources */, + 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */, + 411EDED51E3102CB00BC7BE3 /* UploadManager.swift in Sources */, + 41D5BC311DAFBEF4009A493A /* UIViewExtentions.swift in Sources */, + 0BBCC2BF204532F0001E3B6D /* ChangeLanguageCell.swift in Sources */, + 597ECBA41E3708B10041C5C5 /* PushManager.swift in Sources */, + D32E28261DFD86C300D6019C /* PersistencyCoordinator.swift in Sources */, + D10E9C221F643616007F1796 /* MentionModelMapping.swift in Sources */, + 8076FDA42048533000114F28 /* String+Random.swift in Sources */, + 419205491D52EDE6004EEC5F /* UILabelExtension.swift in Sources */, + 4162E1551D654A7400AAAE49 /* SocketHandlers.swift in Sources */, + 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */, + 4153E80520504BE700FBC26B /* ReusableViewText.swift in Sources */, + 419ECCA61F3CA58A005F224B /* ChatControllerDocuments.swift in Sources */, + 14BAFADE20308EE50054A2E6 /* DrawingBrushWidthViewController.swift in Sources */, + D10E9C201F6434A7007F1796 /* NSRangeExtensions.swift in Sources */, + 807FB53D2044B49800E21429 /* Emojione+Transform.swift in Sources */, + 7798B4191F852D670074B2F4 /* CustomField.swift in Sources */, + 8076FDB52048571200114F28 /* AuthUser.swift in Sources */, + 4159720E1D3DB882002258F4 /* Mention.swift in Sources */, + 3370D8BA20926E5700EEA225 /* ChatView.swift in Sources */, + 41D701D81E6763D100FED2EE /* NSAttributedStringExtensions.swift in Sources */, + 806401311FB09DE800990572 /* Permission.swift in Sources */, + 807FB58420483A4D00E21429 /* ServersViewController.swift in Sources */, + 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */, + 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */, + 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */, + 4159720C1D3DB854002258F4 /* Email.swift in Sources */, + 14FBFF771FB267BF000D400B /* MentionsTextFieldTableViewCell.swift in Sources */, + 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */, + 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */, + 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */, + 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */, + 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */, + 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, + 4199A9891DABCC570035F820 /* Emojione.swift in Sources */, + 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */, + 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */, + 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */, + 3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */, + 8020CCF51FEAD8C9003424F4 /* EmojiPickerController.swift in Sources */, + 41D701D61E67111E00FED2EE /* MessageTextFontAttributes.swift in Sources */, + D1D535EE1F708628006625D2 /* APIRequest.swift in Sources */, + 41C275DF1D848005003C88CF /* AvatarView.swift in Sources */, + 3370D8D620977D8600EEA225 /* ThemePreferenceViewModel.swift in Sources */, + 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, + 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, + A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, + 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */, + 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */, + 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */, + 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */, + 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */, + 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */, + 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */, + 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */, + 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */, + 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */, 3370D8BC2093570D00EEA225 /* ThemeManager.swift in Sources */, - 999F25B5207EEB0C002E0F68 /* FileModelMapping.swift in Sources */, - 41A79C131D2F09F200A1968E /* Auth.swift in Sources */, - 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */, - 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */, - 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */, - 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */, - 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */, - D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */, - D1D535EC1F7081FA006625D2 /* API.swift in Sources */, - 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */, - 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */, - 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */, - 330888B6209909F600D44D4E /* ThemeableViewControllers.swift in Sources */, - 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */, - 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */, - 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */, - 9987B5962093E4BA007D277C /* FilesListViewController.swift in Sources */, - 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */, - 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */, - 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */, - 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */, - 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */, - 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */, - 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */, - 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */, - 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */, - 99DBB8742090360600382DB2 /* MessagesListControllerSearch.swift in Sources */, - 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */, - 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */, - 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */, - 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */, - 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */, - 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */, - 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */, - 41A79C0F1D2F085F00A1968E /* User.swift in Sources */, - 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */, - 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */, - 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */, - 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */, - 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */, - 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */, - 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */, - 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */, - 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */, - 9987B59C2093E60D007D277C /* SubscriptionFilesRequest.swift in Sources */, - 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */, - 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */, - 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */, - 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */, - 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */, - 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */, - 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */, - 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */, - 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */, - 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */, - 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */, - 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */, - 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */, - 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */, - 8076FDD12048646500114F28 /* MessageReply.swift in Sources */, - D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */, - 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */, - 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */, - 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */, - 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */, - 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */, - 3370D8BE2095978800EEA225 /* UserActionSheetPresenter.swift in Sources */, - 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */, - 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */, - 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */, - 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */, - 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */, - 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */, - 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */, - 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */, - 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */, - 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */, - 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */, - 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */, - 807371A01F96937100D53ADF /* LoginService.swift in Sources */, - 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */, - 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */, - 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */, - 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */, - 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */, - D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */, - 99C577EE207E4F1500CE9B4D /* File.swift in Sources */, - 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */, - 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */, - 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */, - 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */, - 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */, - D15C83861F70991F001AB155 /* APIResponse.swift in Sources */, - 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */, - 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */, - 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */, - 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */, - 992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */, - 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */, - 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */, - 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */, - 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */, - 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */, - 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */, - 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */, - 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */, - 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */, - 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */, - 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */, - 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */, - 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */, - 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */, - 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */, - 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */, - 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */, - 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */, - 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */, - 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */, - 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */, - 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */, - 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */, - 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */, - 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */, - 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */, - 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */, - 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */, - 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */, - 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */, - 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */, - 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */, - 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */, - 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */, - D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */, - 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */, - 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */, - 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */, - 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */, - 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */, - 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */, - 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */, - 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */, - 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */, - 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */, - 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */, - 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */, - 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */, - 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */, - 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */, - 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */, - 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */, - 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */, - D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */, - D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */, - 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */, - D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */, - 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */, - 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */, - D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */, - 999F25B7207EEE70002E0F68 /* (null) in Sources */, - 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */, - 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */, - 99DBB872208FF6FE00382DB2 /* SearchMessagesRequest.swift in Sources */, - 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */, - 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */, - 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */, - 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */, - 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */, - 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, - 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, - 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, - 3353DBF8206787E500738D1C /* Theme.swift in Sources */, - 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */, - 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */, - 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */, - 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */, - 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */, - 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */, - 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */, - 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */, - 4129937E208E25C200E12C49 /* (null) in Sources */, - 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */, - 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */, - 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */, - 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */, - 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */, - 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */, - 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */, - 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */, - 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */, - 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */, - 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */, - 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */, - 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */, - 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */, - 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */, - 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */, - 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */, - 3370D8CE2096261F00EEA225 /* NotThemeableView.swift in Sources */, - 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */, - 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */, - 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */, - 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */, - 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */, - 330888B42099094400D44D4E /* ThemeableViews.swift in Sources */, - 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76EF1D2C50720028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */, - 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */, - 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */, - 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */, - D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */, - 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */, - 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */, - 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */, - D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */, - 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */, - 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */, - 33419D7B2099B7B900D1682A /* ThemeableSpec.swift in Sources */, - 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */, - 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */, - 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */, - 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */, - 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */, - 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */, - 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */, - 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */, - 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */, - 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */, - 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */, - 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */, - 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */, - 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */, - 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */, - 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */, - 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */, - 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */, - 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */, - D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */, - 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */, - 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */, - 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */, - 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */, - 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */, - 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */, - 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */, - 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */, - 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */, - 33419D792099170A00D1682A /* ThemeManagerSpec.swift in Sources */, - 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */, - 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */, - 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */, - 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */, - 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */, - 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */, - 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */, - 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */, - 992B5AB8209A2890009C8123 /* SubscriptionFilesRequestSpec.swift in Sources */, - 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */, - 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */, - 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */, - 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */, - 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */, - 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */, - D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */, - 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */, - 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */, - 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */, - 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */, - 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */, - 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */, - 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */, - 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */, - 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */, - 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */, - 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */, - 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */, - 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */, - 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */, - 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */, - 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */, - 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */, - 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */, - 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */, - B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */, - 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */, - 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */, - 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */, - 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */, - 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */, - 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */, - 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */, - 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */, - 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */, - 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */, - 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */, - 99DBB87620903A7F00382DB2 /* SearchMessagesRequestSpec.swift in Sources */, - 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */, - D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */, - 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */, - 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */, - 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */, - 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */, - 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */, - 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */, - 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */, - 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */, - 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */, - 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */, - 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */, - 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */, - 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */, - 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */, - 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */, - D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */, - 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41DF76FA1D2C50720028DBF8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 807FB5542046E7DD00E21429 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4100B2842087779D00E2883A /* LogManager.swift in Sources */, - 80D0CE62205023710056B17F /* SECell.swift in Sources */, - 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */, - 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */, - 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */, - 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */, - 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */, - 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */, - 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */, - 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */, - 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */, - 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */, - 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */, - 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */, - 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */, - 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */, - 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */, - 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */, - 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */, - 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */, - 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */, - 80977AC2204F37C200C41435 /* SEState.swift in Sources */, - 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */, - 8076FDCA204863B900114F28 /* Channel.swift in Sources */, - 8076FDBD2048598100114F28 /* Subscription.swift in Sources */, - 804273DE204EBD51006DF420 /* APIClient.swift in Sources */, - 8076FDCB204863C500114F28 /* Attachment.swift in Sources */, - 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */, - 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */, - 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */, - 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */, - 8076FDC82048639700114F28 /* Message.swift in Sources */, - 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */, - 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */, - 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */, - 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */, - 80FA9066205313E20069038F /* SEContent.swift in Sources */, - 804273E0204EBD51006DF420 /* Version.swift in Sources */, - 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */, - 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */, - 8076FDA62048536800114F28 /* BaseModel.swift in Sources */, - 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */, - 804273DF204EBD51006DF420 /* APIError.swift in Sources */, - 806DB94320687697004ED8ED /* Alert.swift in Sources */, - 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */, - 800640F72049BA25006D990F /* SEScene.swift in Sources */, - 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */, - 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */, - 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */, - 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */, - 8076FDB3204856E200114F28 /* Auth.swift in Sources */, - 8076FDC9204863AF00114F28 /* Mention.swift in Sources */, - 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */, - 8076FDD22048648D00114F28 /* Email.swift in Sources */, - 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */, - 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */, - 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */, - 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */, - 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */, - 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */, - 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */, - 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */, - 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */, - 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */, - 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */, - 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */, - 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */, - 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */, - 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */, - 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */, - 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */, - 80D563752059325A008896D6 /* MimeType.swift in Sources */, - 8076FDA52048534200114F28 /* String+Random.swift in Sources */, - 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */, - 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */, - 8076FDCE2048642400114F28 /* User.swift in Sources */, - 804273DD204EBD51006DF420 /* API.swift in Sources */, - 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */, - 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */, - 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */, - 80FA9068205314040069038F /* SEServer.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; + 41A79C131D2F09F200A1968E /* Auth.swift in Sources */, + 0B3A9769202C76080019CA92 /* ChangeAppIconCell.swift in Sources */, + 80A2F39020056C5E005D2DCA /* EmojiSearcher.swift in Sources */, + 41E53A171E546F5500C3FBB3 /* UINibExtensions.swift in Sources */, + 8013F8711FD6B5B000EE1A4E /* InfoClient.swift in Sources */, + 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */, + D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */, + D1D535EC1F7081FA006625D2 /* API.swift in Sources */, + 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */, + 80E99F291FD8B2B800B70B59 /* UserExtensions.swift in Sources */, + 41D4ABAB1F4CD10C00ACDDDD /* ChatCollectionViewFlowLayout.swift in Sources */, + 330888B6209909F600D44D4E /* ThemeableViewControllers.swift in Sources */, + 4151B4541E2D1A9E00F8AA1B /* SubscriptionModelHandler.swift in Sources */, + 3370D8D12096677A00EEA225 /* TopTransparentViewController.swift in Sources */, + 80113DF81F98330C0048F2C2 /* OAuthViewController.swift in Sources */, + 9987B5962093E4BA007D277C /* FilesListViewController.swift in Sources */, + 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */, + 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */, + 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */, + 41BD37E11E290F2900CBC4C2 /* UserModelMapping.swift in Sources */, + 412BCC871E55C6B800F7F4EE /* ChatMessageTextView.swift in Sources */, + 140A95E6202F7074003FD564 /* DrawingControllerDelegate.swift in Sources */, + 80054CF31FD951B100F5ECF9 /* MessagesClient.swift in Sources */, + 3370D8C22095995900EEA225 /* StarMessageRequest.swift in Sources */, + 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */, + 99DBB8742090360600382DB2 /* MessagesListControllerSearch.swift in Sources */, + 80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */, + 8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */, + 414D99161EA0E7CB0020F7E9 /* SignupViewController.swift in Sources */, + 800FCD4F1F728EC800D9A692 /* ChannelInfoUserCell.swift in Sources */, + 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */, + 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */, + 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */, + 41A79C0F1D2F085F00A1968E /* User.swift in Sources */, + 8076FDB92048581F00114F28 /* AuthManagerCurrentUser.swift in Sources */, + 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */, + 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */, + 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */, + 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */, + 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */, + 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */, + 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */, + 0BB9678A2031A74B0051D68C /* DrawingBrushColorViewModel.swift in Sources */, + 9987B59C2093E60D007D277C /* SubscriptionFilesRequest.swift in Sources */, + 41B96360207E46F10068F1A6 /* ChatViewControllerTextViewDelegate.swift in Sources */, + 35E892C6201CDCBC00B4BE5A /* OAuthManager.swift in Sources */, + 897083D51F8CF08100233561 /* TextFieldTableViewCell.swift in Sources */, + 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */, + 802498EE1F7A8380005477EC /* MeRequest.swift in Sources */, + 897083D71F8CF08100233561 /* FormTableViewCell.swift in Sources */, + 412BCC8B1E55D4AA00F7F4EE /* UIColorCSSColorsExtension.swift in Sources */, + 41CABFFA1F5047E200E0B289 /* ChatLoaderCell.swift in Sources */, + 8073719E1F9688B200D53ADF /* LoginServiceManager.swift in Sources */, + 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */, + 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */, + 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */, + 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */, + 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */, + 8076FDD12048646500114F28 /* MessageReply.swift in Sources */, + D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */, + 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */, + 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */, + 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */, + 41EE15821E05BF9600754D45 /* ChatControllerSocketConnectionHandler.swift in Sources */, + 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */, + 3370D8BE2095978800EEA225 /* UserActionSheetPresenter.swift in Sources */, + 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */, + 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */, + 806401331FB09EC400990572 /* PermissionModelMapping.swift in Sources */, + 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */, + 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */, + 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */, + 4147CE791F5EA3D000C322C3 /* SubscriptionsPageViewController.swift in Sources */, + 802A4E24204D73100072CD23 /* AppGroup.swift in Sources */, + 8076FDE62048CD0600114F28 /* UserDefaults+Group.swift in Sources */, + 41CABFFC1F50515100E0B289 /* ArrayExtensions.swift in Sources */, + 335F4F03207A31D3005E14AF /* NotificationManager.swift in Sources */, + 35E892CA201CDD9700B4BE5A /* PreferencesViewModel.swift in Sources */, + 807371A01F96937100D53ADF /* LoginService.swift in Sources */, + 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */, + 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */, + 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */, + 806465EE1FED1AFE001F27DB /* EmojiView.swift in Sources */, + 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */, + D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */, + 99C577EE207E4F1500CE9B4D /* File.swift in Sources */, + 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */, + 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */, + 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */, + 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */, + 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */, + D15C83861F70991F001AB155 /* APIResponse.swift in Sources */, + 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */, + 806401351FB09F8A00990572 /* PermissionManager.swift in Sources */, + 8076FDC320485A2200114F28 /* SubscriptionUtils.swift in Sources */, + 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */, + 992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */, + 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */, + 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */, + 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */, + 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */, + 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */, + 8020CCF01FEAB4A7003424F4 /* EmojiPicker.swift in Sources */, + 334CFFEE20668DDF003CDB99 /* EmojiCollectionViewCell.swift in Sources */, + 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */, + 807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */, + 41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */, + 801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */, + 4112DC591FFFB9B2005995E1 /* ModelHandler.swift in Sources */, + 419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */, + 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */, + 0B3A9764202C692D0019CA92 /* ChangeAppIconViewController.swift in Sources */, + 41EE157E1E05BED600754D45 /* ChatControllerAutocomplete.swift in Sources */, + 3330329E20738EBB00A9514D /* SubscriptionManagerTyping.swift in Sources */, + 3330329C20738E6000A9514D /* SubscriptionManagerSearch.swift in Sources */, + 80A63C531F71BD2900FE5AC4 /* UserInfoRequest.swift in Sources */, + 8076FDD82048654F00114F28 /* UserUtils.swift in Sources */, + 80F09A1D1FFFC24800977D0D /* NSAttributedString+CustomEmojis.swift in Sources */, + 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */, + 4162E1531D651A8800AAAE49 /* UserManager.swift in Sources */, + 3370D8D3209778EF00EEA225 /* ThemePreferenceCell.swift in Sources */, + 4112BEEC1E7971A400E734CB /* MainChatViewController.swift in Sources */, + 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */, + 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */, + 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */, + 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */, + 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */, + 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */, + 41AC3CD91DCCA0C9002DC39A /* AutocompleteCell.swift in Sources */, + 809B530B1FE2B1AB00833DD2 /* UploadClient.swift in Sources */, + 3330329820738D4600A9514D /* SubscriptionManagerMessages.swift in Sources */, + D1C536CE1F688B7100EBA8D9 /* UIFontExtensions.swift in Sources */, + 80A2A2AB2073BD0800857DAF /* RealmCurrent.swift in Sources */, + 8013F8761FD6B5E000EE1A4E /* VersionMiddleware.swift in Sources */, + 80235D241F7466FF00A56CA5 /* LoaderTableViewCell.swift in Sources */, + 80054D001FDB1FA200F5ECF9 /* Alert.swift in Sources */, + 8032E3E820362EF5009D33CE /* UpdateMessageRequest.swift in Sources */, + 411119B61F680DB00019854B /* NetworkCoordinator.swift in Sources */, + 8076FDAE2048567B00114F28 /* AuthCanDeleteMessage.swift in Sources */, + 800E22861F8507E400DA84F1 /* SubscriptionMessagesRequest.swift in Sources */, + 41494B921D63C6280004F369 /* UIImageExtension.swift in Sources */, + 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */, + 80CFB5741F8DA55C00FC9715 /* ReplyView.swift in Sources */, + 41E991D41D343A9F00BDDCA8 /* DateExtension.swift in Sources */, + 41D3A6301E0805490011949D /* ChatMessageDaySeparator.swift in Sources */, + 41B554C71FBF0F9D000510B7 /* WindowManager.swift in Sources */, + 41900C271D9FE35400308EF4 /* Attachment.swift in Sources */, + 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */, + 41499C911F2A1A7200790EA7 /* TimestampCoordinator.swift in Sources */, + 80A63C4F1F719F9600FE5AC4 /* SubscriptionInfoRequest.swift in Sources */, + D3CFAFBD1E907D8900BADC0A /* ChatMessageTextViewModel.swift in Sources */, + D1D535F11F70864C006625D2 /* InfoRequest.swift in Sources */, + 411D76E51F39F05A00B0A8DF /* AuthSettingsManager.swift in Sources */, + D32E28251DFD86C300D6019C /* LauncherProtocol.swift in Sources */, + 80A2F39220057AD0005D2DCA /* EmojiAutocompleteCell.swift in Sources */, + 41DF76E31D2C50710028DBF8 /* AppDelegate.swift in Sources */, + D18675EC1F716A0D00406FB4 /* LoginRequest.swift in Sources */, + 999F25B7207EEE70002E0F68 /* (null) in Sources */, + 35E892CC201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift in Sources */, + 806728FF20079734009FE94D /* DeleteMessageRequest.swift in Sources */, + 99DBB872208FF6FE00382DB2 /* SearchMessagesRequest.swift in Sources */, + 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */, + 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */, + 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */, + 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */, + 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */, + 80054CFE1FDAFF5200F5ECF9 /* PushClient.swift in Sources */, + 597ECBA21E3708A50041C5C5 /* DataExtension.swift in Sources */, + 414A1FFC1D46395900093E10 /* SocketResponse.swift in Sources */, + 3353DBF8206787E500738D1C /* Theme.swift in Sources */, + 8076FDB0204856AF00114F28 /* AuthCanBlockMessage.swift in Sources */, + 8076FDA9204853DE00114F28 /* RealmExecute.swift in Sources */, + 41B4B2341E40B1D200F4D252 /* ChatControllerUploader.swift in Sources */, + 807371A21F96968C00D53ADF /* LoginServiceModelMapping.swift in Sources */, + 4133EDCF1DA2834E005AA783 /* ChatMessageImageView.swift in Sources */, + 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */, + 140A95E4202F536D003FD564 /* DrawingViewController.swift in Sources */, + 419ECCA21F3C8F15005F224B /* ChatControllerHeaderStatus.swift in Sources */, + 4129937E208E25C200E12C49 /* (null) in Sources */, + 8073719A1F94E83600D53ADF /* SocketError.swift in Sources */, + 807C7C0820751EDC006B600E /* SpotlightRequest.swift in Sources */, + 41D894021F4EF64200E284D2 /* ChatDirectMessageHeaderCell.swift in Sources */, + 4112DC581FFFB9B2005995E1 /* BaseModel.swift in Sources */, + 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */, + 41A87BAD1DA66E700000EE80 /* AuthSettings.swift in Sources */, + 8076FDBB2048591A00114F28 /* AuthManagerRecover.swift in Sources */, + 8013F8671FD6B4F400EE1A4E /* Command.swift in Sources */, + 77BA81511F87C4CB00F295F4 /* TextField.swift in Sources */, + 41E2FA051D414F0400238DFD /* SubscriptionsViewController.swift in Sources */, + 800F38ED2019492D0005CB78 /* DeepLink.swift in Sources */, + 4151B4581E2D1D2E00F8AA1B /* MessageModelMapping.swift in Sources */, + 41EE15801E05BF1F00754D45 /* ChatControllerMessageCellProtocol.swift in Sources */, + 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */, + 414A1FF61D46320F00093E10 /* ResponseMessage.swift in Sources */, + 4151B44E1E2CF19A00F8AA1B /* UserModelHandler.swift in Sources */, + 80DC9A6C206BA95600032BE0 /* Localized.swift in Sources */, + 3370D8CE2096261F00EEA225 /* NotThemeableView.swift in Sources */, + 14A6A83120421DF8008C210D /* ColorPickerView.swift in Sources */, + 8013F88E1FD6B83C00EE1A4E /* CommandModelMapping.swift in Sources */, + 89AEB7F81F7D225D00112A09 /* SubscriptionCreateRequest.swift in Sources */, + 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */, + 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */, + 330888B42099094400D44D4E /* ThemeableViews.swift in Sources */, + 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76EF1D2C50720028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 77C2612E1F97453600724A1F /* TextFieldSpec.swift in Sources */, + 4171ABA51E7C056E009FC3F0 /* AvatarViewSpec.swift in Sources */, + 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */, + 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */, + D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */, + 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */, + 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */, + 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */, + D18675EE1F716FBC00406FB4 /* LoginRequestSpec.swift in Sources */, + 41BA89241D303D8B00CBF526 /* AuthManagerSpec.swift in Sources */, + 803782B71FB4751D00DED049 /* RealmTestCase.swift in Sources */, + 33419D7B2099B7B900D1682A /* ThemeableSpec.swift in Sources */, + 35E892C4201BF2C900B4BE5A /* AlertSpec.swift in Sources */, + 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */, + 80AE2540203E5A3000DC2867 /* SubscriptionExtensionsSpec.swift in Sources */, + 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */, + 41DC7A241D386CA800896FC0 /* DateExtensionsSpec.swift in Sources */, + 41552F681D3035D80081438D /* SocketManagerSpec.swift in Sources */, + 807A8F6B1F9E4D0C00CC78DB /* OAuthManagerSpec.swift in Sources */, + 890DA8AE1F942A35007C022B /* SubscriptionCreateRequestSpec.swift in Sources */, + 80235D221F7442F700A56CA5 /* SubscriptionMembersRequestSpec.swift in Sources */, + 8013F8791FD6B63200EE1A4E /* VersionMiddlewareSpec.swift in Sources */, + 41F8487E1FA38B0A00C9AE84 /* PreferencesViewModelSpec.swift in Sources */, + 41E9BD0F208EA8C40084D4D8 /* SubscriptionQueriesSpec.swift in Sources */, + 808792381FB14B3300EFE77F /* PermissionSpec.swift in Sources */, + 807C7C0C20751F06006B600E /* SpotlightRequestSpec.swift in Sources */, + 4161333C1D46E32F00E09DA2 /* UserSpec.swift in Sources */, + 802498F11F7A9BB4005477EC /* MeRequestSpec.swift in Sources */, + 411D76E71F39FA7B00B0A8DF /* AuthSettingsManagerSpec.swift in Sources */, + 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */, + 8013F87D1FD6B64500EE1A4E /* VersionSpec.swift in Sources */, + D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */, + 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */, + 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */, + 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */, + 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */, + 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */, + 41E423002044216000543877 /* UIColorExtensionSpec.swift in Sources */, + 419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */, + 411498E11FC7A85400D66542 /* ChatTitleViewModelSpec.swift in Sources */, + 80E99F2F1FD8B4F400B70B59 /* UserExtensionsSpec.swift in Sources */, + 33419D792099170A00D1682A /* ThemeManagerSpec.swift in Sources */, + 80247B3F1FE8582700878833 /* MessageReactionSpec.swift in Sources */, + 3370D8C6209599E600EEA225 /* AuthCanStarMessageSpec.swift in Sources */, + 8013F8431FD02D8F00EE1A4E /* ChatCollectionViewFlowLayoutSpec.swift in Sources */, + 77C2612D1F97453600724A1F /* SelectFieldSpec.swift in Sources */, + 807C7C1020751F40006B600E /* SpotlightClientSpec.swift in Sources */, + 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */, + 33093DC5207C7EAF00DD81F6 /* ChatNotificationSpec.swift in Sources */, + 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */, + 992B5AB8209A2890009C8123 /* SubscriptionFilesRequestSpec.swift in Sources */, + 807A8F671F9E3D4F00CC78DB /* LoginServiceSpec.swift in Sources */, + 4161333A1D46E0A200E09DA2 /* AuthSpec.swift in Sources */, + 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */, + 33093DC7207C900900DD81F6 /* NotificationManagerSpec.swift in Sources */, + 41DC7A1F1D3865FE00896FC0 /* MessageManagerSpec.swift in Sources */, + 41B96365207E492C0068F1A6 /* MessageTextValidatorSpec.swift in Sources */, + D1DA25251F695ABF00DB6ABB /* ChatDataControllerSpec.swift in Sources */, + 41BAE3E91D71C15A00C2445A /* URLExtensionSpec.swift in Sources */, + 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */, + 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */, + 416133401D46E6A800E09DA2 /* MessageSpec.swift in Sources */, + 41ADDD4B1E9E787E0007A458 /* LoaderViewSpec.swift in Sources */, + 8018B5701FBE070000C3CC25 /* PushManagerSpec.swift in Sources */, + 418C74451FA3820F00499577 /* CompoundPickerViewDelegateSpec.swift in Sources */, + 140A95DE202F1E6F003FD564 /* ChangeAppIconViewModelSpec.swift in Sources */, + 8013F8821FD6B6C600EE1A4E /* InfoClientSpec.swift in Sources */, + 77C261251F97445300724A1F /* AuthSettingsSpec.swift in Sources */, + 80054CF51FD96AFE00F5ECF9 /* MessagesClientSpec.swift in Sources */, + 411498E51FC7B8D500D66542 /* AttachmentSpec.swift in Sources */, + 8013F87C1FD6B64500EE1A4E /* MockAPI.swift in Sources */, + 41DC7A221D386B4700896FC0 /* StringExtensionSpec.swift in Sources */, + 80F1F8102080F307007998AB /* MarkdownManagerSpec.swift in Sources */, + 68D186DF1ED9714F0030EE8C /* MessageURLSpec.swift in Sources */, + 77C261271F97445F00724A1F /* DictionaryExtensionsSpec.swift in Sources */, + 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */, + 80A63C551F71BF3A00FE5AC4 /* UserInfoRequestSpec.swift in Sources */, + B5893BF61F6C4B1D00365768 /* UserReviewManagerSpec.swift in Sources */, + 4151807C1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift in Sources */, + 80213C0B1FDFE35C00809E14 /* UploadMessageRequestSpec.swift in Sources */, + 80C110891FB62F7B00205BB1 /* OAuthViewControllerSpec.swift in Sources */, + 411119B81F6825C30019854B /* NetworkManagerSpec.swift in Sources */, + 3370D8C42095998E00EEA225 /* StarMessageRequestSpec.swift in Sources */, + 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */, + 416296F91F41B42B00BCCEDD /* UploadHelperSpec.swift in Sources */, + 80A63C511F719FB300FE5AC4 /* SubscriptionInfoRequestSpec.swift in Sources */, + 41FE55531F6038D60071E97A /* DatabaseManagerSpec.swift in Sources */, + 416296FC1F41D42800BCCEDD /* DownloadManagerSpec.swift in Sources */, + 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */, + 99DBB87620903A7F00382DB2 /* SearchMessagesRequestSpec.swift in Sources */, + 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */, + D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */, + 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */, + 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */, + 140C84ED1FC9DBAF00032A59 /* MentionsTextFieldTableViewCellSpec.swift in Sources */, + 33093DC9207C949C00DD81F6 /* NotificationViewControllerSpec.swift in Sources */, + 990FF6D8207438D4007B4A53 /* SubscriptionMentionsRequestSpec.swift in Sources */, + 8073719C1F963FA400D53ADF /* APITestCase.swift in Sources */, + 416133381D46DB1D00E09DA2 /* BaseModelSpec.swift in Sources */, + 89AFF3C81F94374D00D07A30 /* NewRoomViewControllerSpec.swift in Sources */, + 80A97F012006293D00A2774C /* EmojiSearcherSpec.swift in Sources */, + 4101BF031F8D11FB00F67E89 /* AppManagerSpec.swift in Sources */, + 0BBCC2C2204546CF001E3B6D /* LanguageViewModelSpec.swift in Sources */, + 8013F88C1FD6B7D400EE1A4E /* RunCommandRequestSpec.swift in Sources */, + 4161333E1D46E3AB00E09DA2 /* SubscriptionSpec.swift in Sources */, + 41534EE2208E4411009C5A17 /* BugTrackingCoordinatorSpec.swift in Sources */, + 4147CE811F5EE03300C322C3 /* ServerManagerSpec.swift in Sources */, + D1411A2C1F6779A200D6EDF7 /* MentionSpec.swift in Sources */, + 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 41DF76FA1D2C50720028DBF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 41DF77031D2C50720028DBF8 /* RocketChatUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 807FB5542046E7DD00E21429 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4100B2842087779D00E2883A /* LogManager.swift in Sources */, + 80D0CE62205023710056B17F /* SECell.swift in Sources */, + 80FA90702056A33A0069038F /* SEComposeViewModel.swift in Sources */, + 8076FD9B20484DBF00114F28 /* DatabaseManager.swift in Sources */, + 80977AB2204EE21F00C41435 /* SendMessageRequest.swift in Sources */, + 80977AB6204EEF1E00C41435 /* SelectServer.swift in Sources */, + 807FB55B2046E7DD00E21429 /* SERoomsViewController.swift in Sources */, + 80977AC4204FEEA700C41435 /* SEComposeHeaderViewModel.swift in Sources */, + 804273E2204EBD51006DF420 /* APIResponse.swift in Sources */, + 8029B2F22059B6F60067157B /* VideoInfo.swift in Sources */, + 80D0CE6620503C860056B17F /* SERoomCell.swift in Sources */, + 80FA90722056C1190069038F /* SEComposeTextCell.swift in Sources */, + 80D0CE60205016B40056B17F /* SEServerCell.swift in Sources */, + 8076FDCC204863DF00114F28 /* AuthExtensions.swift in Sources */, + 80D0CE64205034280056B17F /* SEServerCellModel.swift in Sources */, + 8076FDD3204864A400114F28 /* MessageReaction.swift in Sources */, + 80D0CE6C205080AA0056B17F /* SERoomCellModel.swift in Sources */, + 80FA90762056C24C0069038F /* SEComposeTextCellModel.swift in Sources */, + 80FA90782056C3AE0069038F /* SEComposeCellModel.swift in Sources */, + 80977AB9204EFBCC00C41435 /* SENavigation.swift in Sources */, + 8076FDDA20489F5900114F28 /* SEViewController.swift in Sources */, + 80977AC2204F37C200C41435 /* SEState.swift in Sources */, + 804273E1204EBD51006DF420 /* APIRequest.swift in Sources */, + 8076FDCA204863B900114F28 /* Channel.swift in Sources */, + 8076FDBD2048598100114F28 /* Subscription.swift in Sources */, + 804273DE204EBD51006DF420 /* APIClient.swift in Sources */, + 8076FDCB204863C500114F28 /* Attachment.swift in Sources */, + 804273D6204D7F38006DF420 /* AppGroup.swift in Sources */, + 8076FDE22048A7C500114F28 /* SEComposeHeaderViewController.swift in Sources */, + 80DC9A6E206BA96200032BE0 /* Localized.swift in Sources */, + 80D0CE732050BE680056B17F /* UIColorCSSColorsExtension.swift in Sources */, + 8076FDC82048639700114F28 /* Message.swift in Sources */, + 807FB569204729E500E21429 /* SEServersViewController.swift in Sources */, + 80977AB3204EE21F00C41435 /* UploadMessageRequest.swift in Sources */, + 80A2A2AC2073BE3500857DAF /* RealmCurrent.swift in Sources */, + 80977ABB204EFC0F00C41435 /* SESceneTransition.swift in Sources */, + 80FA9066205313E20069038F /* SEContent.swift in Sources */, + 804273E0204EBD51006DF420 /* Version.swift in Sources */, + 802A4E112049C7340072CD23 /* SENavigationController.swift in Sources */, + 805C87D92052AA1900AD0EB0 /* SEComposeViewController.swift in Sources */, + 8076FDA62048536800114F28 /* BaseModel.swift in Sources */, + 80FA906A20569F890069038F /* SEComposeFileCell.swift in Sources */, + 804273DF204EBD51006DF420 /* APIError.swift in Sources */, + 806DB94320687697004ED8ED /* Alert.swift in Sources */, + 80D0CE752050BFD20056B17F /* AuthUser.swift in Sources */, + 800640F72049BA25006D990F /* SEScene.swift in Sources */, + 8076FDBC2048596100114F28 /* URLExtension.swift in Sources */, + 80FA907D2057F4650069038F /* SubmitContent.swift in Sources */, + 80977AB4204EE41200C41435 /* DataExtension.swift in Sources */, + 80D0CE6D205083280056B17F /* SubscriptionUser.swift in Sources */, + 8076FDB3204856E200114F28 /* Auth.swift in Sources */, + 8076FDC9204863AF00114F28 /* Mention.swift in Sources */, + 80FA906E2056A1F80069038F /* SEComposeFileCellModel.swift in Sources */, + 8076FDD22048648D00114F28 /* Email.swift in Sources */, + 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */, + 80D5637720593533008896D6 /* ParseItemProviders.swift in Sources */, + 8076FDE82048D3AD00114F28 /* UserDefaults+Group.swift in Sources */, + 80977AB0204EE21F00C41435 /* HTTPMethod.swift in Sources */, + 807C7C022074307F006B600E /* KMPlaceholderTextView.swift in Sources */, + 80977AB1204EE21F00C41435 /* VersionMiddleware.swift in Sources */, + 807FB582204837AF00E21429 /* SEServersViewModel.swift in Sources */, + 8076FDED2049A5F600114F28 /* SECellModel.swift in Sources */, + 8076FDCD204863FC00114F28 /* MessageURL.swift in Sources */, + 80977ABF204F36F200C41435 /* SESearchState.swift in Sources */, + 80FE8DF0206587510099170E /* SEFileDetailView.swift in Sources */, + 805C87DD2052AE1D00AD0EB0 /* SEXibInitializable.swift in Sources */, + 80D0CE6F20509C100056B17F /* SEAvatarView.swift in Sources */, + 8076FD9D2048510100114F28 /* AuthSettings.swift in Sources */, + 8076FD9A20484A6000114F28 /* SEStore.swift in Sources */, + 80D0CE722050BD160056B17F /* UIColorExtension.swift in Sources */, + 8076FD9E2048510C00114F28 /* AuthManager.swift in Sources */, + 80D563752059325A008896D6 /* MimeType.swift in Sources */, + 8076FDA52048534200114F28 /* String+Random.swift in Sources */, + 80EF621A205A981600EF739B /* UIImageExtension.swift in Sources */, + 807FB56B20472A0F00E21429 /* SERoomsViewModel.swift in Sources */, + 8076FDCE2048642400114F28 /* User.swift in Sources */, + 804273DD204EBD51006DF420 /* API.swift in Sources */, + 8029B2F42059C1840067157B /* UIAlertController+StatusReport.swift in Sources */, + 80D0CE742050BFBE0056B17F /* AuthManagerCurrentUser.swift in Sources */, + 80825F0D207EB2D800C477DE /* APIResource.swift in Sources */, + 80FA9068205314040069038F /* SEServer.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; - targetProxy = 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */; - }; - 41DF77001D2C50720028DBF8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; - targetProxy = 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */; - }; - 807FB5612046E7DD00E21429 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */; - targetProxy = 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */; - }; + 41DF76F51D2C50720028DBF8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; + targetProxy = 41DF76F41D2C50720028DBF8 /* PBXContainerItemProxy */; + }; + 41DF77001D2C50720028DBF8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 41DF76DE1D2C50710028DBF8 /* Rocket.Chat */; + targetProxy = 41DF76FF1D2C50720028DBF8 /* PBXContainerItemProxy */; + }; + 807FB5612046E7DD00E21429 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 807FB5572046E7DD00E21429 /* Rocket.Chat.ShareExtension */; + targetProxy = 807FB5602046E7DD00E21429 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 41DF76EC1D2C50720028DBF8 /* Base */, - ); - name = LaunchScreen.storyboard; - path = .; - sourceTree = ""; - }; - 41EB22381E5F056600AA3AE7 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 41A6191A1FA7065400CFFA69 /* cs */, - 41EB223B1E5F19EB00AA3AE7 /* de */, - 848088BB204370E8005022E8 /* el */, - 41EB22371E5F056600AA3AE7 /* en */, - 412184A520472F7900DAAA88 /* es */, - 35D2F140200A45E800B4BE5A /* fr */, - 1499781C1FA605CE007E013D /* pl */, - 41EB223A1E5F057F00AA3AE7 /* pt-BR */, - ); - name = Localizable.strings; - path = .; - sourceTree = ""; - }; - 80307E431FD75DC0006AD9EF /* VoiceOver.strings */ = { - isa = PBXVariantGroup; - children = ( - 80307E481FD75DD5006AD9EF /* cs */, - 80307E451FD75DCF006AD9EF /* de */, - 848088BC204370E9005022E8 /* el */, - 80307E421FD75DC0006AD9EF /* en */, - 412184A620472F7900DAAA88 /* es */, - 80307E461FD75DD1006AD9EF /* fr */, - 80307E471FD75DD2006AD9EF /* pl */, - 80307E441FD75DCB006AD9EF /* pt-BR */, - ); - name = VoiceOver.strings; - path = .; - sourceTree = ""; - }; - 807FB55C2046E7DD00E21429 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 807FB55D2046E7DD00E21429 /* Base */, - ); - name = Main.storyboard; - path = .; - sourceTree = ""; - }; - 807FB57120472B6A00E21429 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 807FB57420472B7000E21429 /* cs */, - 807FB57220472B6D00E21429 /* de */, - 807FB57620472B7300E21429 /* el */, - 807FB57720472B8200E21429 /* en */, - 807FB57520472B7200E21429 /* fr */, - 807FB57320472B6F00E21429 /* pl */, - 807FB57020472B6A00E21429 /* pt-BR */, - ); - name = Localizable.strings; - path = .; - sourceTree = ""; - }; - 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */ = { - isa = PBXVariantGroup; - children = ( - 80C7DD631FF46B8700E6647C /* cs */, - 80C7DD621FF46B8600E6647C /* de */, - 848088BA204370E8005022E8 /* el */, - 80C7DD5F1FF46B8000E6647C /* en */, - 412184A420472F7900DAAA88 /* es */, - 80C7DD651FF46B8C00E6647C /* fr */, - 80C7DD641FF46B8800E6647C /* pl */, - 80C7DD611FF46B8300E6647C /* pt-BR */, - ); - name = RCEmojiKit.strings; - path = .; - sourceTree = ""; - }; + 41DF76EB1D2C50720028DBF8 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 41DF76EC1D2C50720028DBF8 /* Base */, + ); + name = LaunchScreen.storyboard; + path = .; + sourceTree = ""; + }; + 41EB22381E5F056600AA3AE7 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 41A6191A1FA7065400CFFA69 /* cs */, + 41EB223B1E5F19EB00AA3AE7 /* de */, + 848088BB204370E8005022E8 /* el */, + 41EB22371E5F056600AA3AE7 /* en */, + 412184A520472F7900DAAA88 /* es */, + 35D2F140200A45E800B4BE5A /* fr */, + 1499781C1FA605CE007E013D /* pl */, + 41EB223A1E5F057F00AA3AE7 /* pt-BR */, + ); + name = Localizable.strings; + path = .; + sourceTree = ""; + }; + 80307E431FD75DC0006AD9EF /* VoiceOver.strings */ = { + isa = PBXVariantGroup; + children = ( + 80307E481FD75DD5006AD9EF /* cs */, + 80307E451FD75DCF006AD9EF /* de */, + 848088BC204370E9005022E8 /* el */, + 80307E421FD75DC0006AD9EF /* en */, + 412184A620472F7900DAAA88 /* es */, + 80307E461FD75DD1006AD9EF /* fr */, + 80307E471FD75DD2006AD9EF /* pl */, + 80307E441FD75DCB006AD9EF /* pt-BR */, + ); + name = VoiceOver.strings; + path = .; + sourceTree = ""; + }; + 807FB55C2046E7DD00E21429 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 807FB55D2046E7DD00E21429 /* Base */, + ); + name = Main.storyboard; + path = .; + sourceTree = ""; + }; + 807FB57120472B6A00E21429 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 807FB57420472B7000E21429 /* cs */, + 807FB57220472B6D00E21429 /* de */, + 807FB57620472B7300E21429 /* el */, + 807FB57720472B8200E21429 /* en */, + 807FB57520472B7200E21429 /* fr */, + 807FB57320472B6F00E21429 /* pl */, + 807FB57020472B6A00E21429 /* pt-BR */, + ); + name = Localizable.strings; + path = .; + sourceTree = ""; + }; + 80C7DD601FF46B8000E6647C /* RCEmojiKit.strings */ = { + isa = PBXVariantGroup; + children = ( + 80C7DD631FF46B8700E6647C /* cs */, + 80C7DD621FF46B8600E6647C /* de */, + 848088BA204370E8005022E8 /* el */, + 80C7DD5F1FF46B8000E6647C /* en */, + 412184A420472F7900DAAA88 /* es */, + 80C7DD651FF46B8C00E6647C /* fr */, + 80C7DD641FF46B8800E6647C /* pl */, + 80C7DD611FF46B8300E6647C /* pt-BR */, + ); + name = RCEmojiKit.strings; + path = .; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 41DF77051D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 41DF77061D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 41DF77081D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_SWIFT_FLAGS = "$(inherited) -Onone -D DEBUG \"-D\" \"COCOAPODS\""; - PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_DISABLE_SAFETY_CHECKS = NO; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 41DF77091D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - 41DF770B1D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Debug; - }; - 41DF770C1D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Release; - }; - 41DF770E1D2C50720028DBF8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Debug; - }; - 41DF770F1D2C50720028DBF8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Release; - }; - 41E69F0420050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Beta; - }; - 41E69F0520050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.Chat/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-D\" \"BETA\""; - PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - }; - name = Beta; - }; - 41E69F0620050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = Rocket.ChatTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; - }; - name = Beta; - }; - 41E69F0720050A310040ADB2 /* Beta */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = S6UPZG7ZR3; - INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Off; - SWIFT_VERSION = 4.0; - TEST_TARGET_NAME = Rocket.Chat; - }; - name = Beta; - }; - 807FB5632046E7DD00E21429 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 807FB5642046E7DD00E21429 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 807FB5652046E7DD00E21429 /* Beta */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */; - buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = S6UPZG7ZR3; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Beta; - }; + 41DF77051D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 41DF77061D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 41DF77081D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BCF38696E8EC385488688390 /* Pods-Rocket.Chat.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_SWIFT_FLAGS = "$(inherited) -Onone -D DEBUG \"-D\" \"COCOAPODS\""; + PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_DISABLE_SAFETY_CHECKS = NO; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Debug; + }; + 41DF77091D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5108B4F1453CB9F4E425E3F4 /* Pods-Rocket.Chat.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Release; + }; + 41DF770B1D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 58C7F7D8D91A05CA5D1C9FE0 /* Pods-Rocket.ChatTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Debug; + }; + 41DF770C1D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Release; + }; + 41DF770E1D2C50720028DBF8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Debug; + }; + 41DF770F1D2C50720028DBF8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Release; + }; + 41E69F0420050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Beta; + }; + 41E69F0520050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat/Rocket.Chat.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.Chat/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-D\" \"BETA\""; + PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + }; + name = Beta; + }; + 41E69F0620050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FEDACA44BBB1C0633DEA6F3D /* Pods-Rocket.ChatTests.beta.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + ENABLE_BITCODE = YES; + INFOPLIST_FILE = Rocket.ChatTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Rocket.Chat/Rocket.Chat-Bridge.h"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Rocket.Chat.app/Rocket.Chat"; + }; + name = Beta; + }; + 41E69F0720050A310040ADB2 /* Beta */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = S6UPZG7ZR3; + INFOPLIST_FILE = Rocket.ChatUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.Rocket-ChatUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + TEST_TARGET_NAME = Rocket.Chat; + }; + name = Beta; + }; + 807FB5632046E7DD00E21429 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5A633C5AF9C033AF48DB8EE0 /* Pods-Rocket.Chat.ShareExtension.debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 807FB5642046E7DD00E21429 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 81DE5CC08EFE20733A40A51E /* Pods-Rocket.Chat.ShareExtension.release.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 807FB5652046E7DD00E21429 /* Beta */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F87E8221BEB77AF190F06201 /* Pods-Rocket.Chat.ShareExtension.beta.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = Rocket.Chat.ShareExtension/Rocket.Chat.ShareExtension.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = S6UPZG7ZR3; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Rocket.Chat.ShareExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "chat.rocket.ios.Rocket-Chat-ShareExtension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Beta; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF77051D2C50720028DBF8 /* Debug */, - 41DF77061D2C50720028DBF8 /* Release */, - 41E69F0420050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF77081D2C50720028DBF8 /* Debug */, - 41DF77091D2C50720028DBF8 /* Release */, - 41E69F0520050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF770B1D2C50720028DBF8 /* Debug */, - 41DF770C1D2C50720028DBF8 /* Release */, - 41E69F0620050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 41DF770E1D2C50720028DBF8 /* Debug */, - 41DF770F1D2C50720028DBF8 /* Release */, - 41E69F0720050A310040ADB2 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 807FB5632046E7DD00E21429 /* Debug */, - 807FB5642046E7DD00E21429 /* Release */, - 807FB5652046E7DD00E21429 /* Beta */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; + 41DF76DA1D2C50710028DBF8 /* Build configuration list for PBXProject "Rocket.Chat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF77051D2C50720028DBF8 /* Debug */, + 41DF77061D2C50720028DBF8 /* Release */, + 41E69F0420050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF77071D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF77081D2C50720028DBF8 /* Debug */, + 41DF77091D2C50720028DBF8 /* Release */, + 41E69F0520050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF770A1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF770B1D2C50720028DBF8 /* Debug */, + 41DF770C1D2C50720028DBF8 /* Release */, + 41E69F0620050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41DF770D1D2C50720028DBF8 /* Build configuration list for PBXNativeTarget "Rocket.ChatUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 41DF770E1D2C50720028DBF8 /* Debug */, + 41DF770F1D2C50720028DBF8 /* Release */, + 41E69F0720050A310040ADB2 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 807FB5662046E7DD00E21429 /* Build configuration list for PBXNativeTarget "Rocket.Chat.ShareExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 807FB5632046E7DD00E21429 /* Debug */, + 807FB5642046E7DD00E21429 /* Release */, + 807FB5652046E7DD00E21429 /* Beta */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ - }; - rootObject = 41DF76D71D2C50710028DBF8 /* Project object */; + }; + rootObject = 41DF76D71D2C50710028DBF8 /* Project object */; } From 96fe71a3431bfaa93255b2b4a4d414acb8f7c2bf Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 3 May 2018 14:18:20 +0530 Subject: [PATCH 045/124] Merge issues fixed --- Rocket.Chat.xcodeproj/project.pbxproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 1f18f1fd75..4ccb8cc967 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -127,6 +127,7 @@ 33A5C9D1206A565800FE1C8F /* activity.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C8206A565800FE1C8F /* activity.json */; }; 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; + 33C219C1209B0390009E8126 /* FileModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */; }; 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */; }; 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; @@ -604,7 +605,6 @@ 9987B59C2093E60D007D277C /* SubscriptionFilesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B59B2093E60C007D277C /* SubscriptionFilesRequest.swift */; }; 99923773204B3BD800C2D15F /* UploadAvatarRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99923772204B3BD800C2D15F /* UploadAvatarRequest.swift */; }; 999483EB20644CC4004F61CA /* WebBrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999483EA20644CC4004F61CA /* WebBrowserViewModel.swift */; }; - 999F25B5207EEB0C002E0F68 /* FileModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */; }; 999F25B7207EEE70002E0F68 /* (null) in Sources */ = {isa = PBXBuildFile; }; 99B060CE1FB1225200F471C2 /* DraftMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */; }; 99C577EE207E4F1500CE9B4D /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C577ED207E4F1500CE9B4D /* File.swift */; }; @@ -3844,6 +3844,7 @@ 8076FDB2204856CC00114F28 /* AuthCanEditMessage.swift in Sources */, D12D34031F69C76400AED992 /* SubscriptionExtensions.swift in Sources */, 99C577EE207E4F1500CE9B4D /* File.swift in Sources */, + 33C219C1209B0390009E8126 /* FileModelMapping.swift in Sources */, 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */, 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */, 41A91AF11E51CD41005C94B1 /* SubscriptionUserStatusView.swift in Sources */, From a4b7d956ebfbf90b03e81c4c6ae845461ea77932 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 3 May 2018 21:55:10 +0530 Subject: [PATCH 046/124] Code cleanup --- Rocket.Chat.xcodeproj/project.pbxproj | 4 ++++ .../Controllers/Chat/ChatViewController.swift | 6 +++--- .../ChangeAppIcon/ChangeAppIconView.swift | 21 +++++++++++++++++++ .../Views/EmojiPicker/EmojiPicker.swift | 2 ++ .../Views/Reaction/ReactionView.swift | 2 ++ .../Storyboards/Preferences.storyboard | 8 +++---- .../Theme/ThemeableViewControllers.swift | 2 +- Rocket.Chat/Theme/ThemeableViews.swift | 2 +- Rocket.Chat/Views/Avatar/AvatarView.swift | 2 ++ .../Cells/Chat/ChatMessageAudioView.swift | 2 ++ .../Cells/Chat/ChatMessageDaySeparator.swift | 2 ++ .../Cells/Chat/ChatMessageTextView.swift | 2 ++ .../Views/Cells/Chat/ChatMessageURLView.swift | 2 ++ .../Chat/ChatMessageUnreadSeparator.swift | 2 ++ .../Info/ChannelInfoDescriptionCell.swift | 2 ++ .../Preferences/ThemePreferenceCell.swift | 2 ++ .../Views/Chat/ChatHeaderViewStatus.swift | 2 ++ Rocket.Chat/Views/Chat/ChatTitleView.swift | 2 ++ Rocket.Chat/Views/Chat/ChatView.swift | 2 ++ Rocket.Chat/Views/Chat/RCTextView.swift | 2 ++ .../MentionsTextFieldTableViewCell.swift | 2 ++ .../Form/Cells/TextFieldTableViewCell.swift | 2 ++ Rocket.Chat/Views/Loader/LoaderView.swift | 2 ++ 23 files changed, 68 insertions(+), 9 deletions(-) create mode 100644 Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconView.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 4ccb8cc967..9d76e3b641 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -128,6 +128,7 @@ 33A5C9D2206A565800FE1C8F /* nature.json in Resources */ = {isa = PBXBuildFile; fileRef = 33A5C9C9206A565800FE1C8F /* nature.json */; }; 33A7AD9E207A2F95000E9D0F /* ChatNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */; }; 33C219C1209B0390009E8126 /* FileModelMapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999F25B4207EEB0C002E0F68 /* FileModelMapping.swift */; }; + 33C219C3209B6B9F009E8126 /* ChangeAppIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C219C2209B6B9F009E8126 /* ChangeAppIconView.swift */; }; 33CCA72A2091034200FD4C57 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */; }; 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; @@ -802,6 +803,7 @@ 33A5C9C8206A565800FE1C8F /* activity.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = activity.json; sourceTree = ""; }; 33A5C9C9206A565800FE1C8F /* nature.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = nature.json; sourceTree = ""; }; 33A7AD9D207A2F95000E9D0F /* ChatNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatNotification.swift; sourceTree = ""; }; + 33C219C2209B6B9F009E8126 /* ChangeAppIconView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeAppIconView.swift; sourceTree = ""; }; 33CCA7292091034200FD4C57 /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; @@ -1369,6 +1371,7 @@ isa = PBXGroup; children = ( 0B3A9768202C76080019CA92 /* ChangeAppIconCell.swift */, + 33C219C2209B6B9F009E8126 /* ChangeAppIconView.swift */, 0B3A9763202C692D0019CA92 /* ChangeAppIconViewController.swift */, 0B3A9765202C738E0019CA92 /* ChangeAppIconViewModel.swift */, ); @@ -3735,6 +3738,7 @@ 3370D8C0209598C100EEA225 /* AuthCanStarMessage.swift in Sources */, 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, 4199A9891DABCC570035F820 /* Emojione.swift in Sources */, + 33C219C3209B6B9F009E8126 /* ChangeAppIconView.swift in Sources */, 418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */, 80235D1B1F74070100A56CA5 /* SubscriptionMembersRequest.swift in Sources */, 41A1748C1DD9F2F900188E3B /* UIViewControllerExtension.swift in Sources */, diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index 15dd478153..6c22d73b56 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -170,8 +170,6 @@ final class ChatViewController: SLKTextViewController { override func viewDidLoad() { super.viewDidLoad() navigationController?.navigationBar.isTranslucent = false - ThemeManager.addObserver(navigationController?.navigationBar) - setNeedsStatusBarAppearanceUpdate() collectionView?.isPrefetchingEnabled = true collectionView?.keyboardDismissMode = .interactive @@ -1259,9 +1257,11 @@ extension ChatViewController: KeyboardFrameViewDelegate { } } +// MARK: Themeable + extension ChatViewController { override func applyTheme() { - view.applyTheme() + super.applyTheme() navigationController?.navigationBar.barTintColor = ThemeManager.theme.focusedBackground } } diff --git a/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconView.swift b/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconView.swift new file mode 100644 index 0000000000..221427af93 --- /dev/null +++ b/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconView.swift @@ -0,0 +1,21 @@ +// +// ChangeAppIconView.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 5/3/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class ChangeAppIconView: UIView { } + +// MARK: Themeable + +extension ChangeAppIconView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + backgroundColor = theme == .light ? #colorLiteral(red: 0.9372549057, green: 0.9372549057, blue: 0.9568627477, alpha: 1) : theme.focusedBackground + } +} diff --git a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift index 36a0abeb85..1c4d5388a0 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift @@ -338,6 +338,8 @@ private class EmojiPickerSectionHeaderView: UICollectionReusableView { } } +// MARK: Themeable + extension EmojiPicker { override var theme: Theme? { return ThemeManager.theme } diff --git a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift index 7d623739d9..66444206e8 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactionView.swift @@ -101,6 +101,8 @@ extension ReactionView { } } +// MARK: Themeable + extension ReactionView { override func applyTheme() { super.applyTheme() diff --git a/Rocket.Chat/Storyboards/Preferences.storyboard b/Rocket.Chat/Storyboards/Preferences.storyboard index 150a14e2d2..4d421325f9 100644 --- a/Rocket.Chat/Storyboards/Preferences.storyboard +++ b/Rocket.Chat/Storyboards/Preferences.storyboard @@ -247,11 +247,11 @@ - + From 021014bebdb3c8727cc3b92d8d1a77b09da4aee3 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 13:39:18 +0530 Subject: [PATCH 076/124] Enabling notifications --- Rocket.Chat/AppDelegate.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rocket.Chat/AppDelegate.swift b/Rocket.Chat/AppDelegate.swift index 499826a8f9..da6f808441 100644 --- a/Rocket.Chat/AppDelegate.swift +++ b/Rocket.Chat/AppDelegate.swift @@ -40,7 +40,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { WindowManager.open(.auth(serverUrl: "", credentials: nil)) } -// initNotificationWindow() + initNotificationWindow() return true } From d50d902c388e628ad9d3722d3b70fa20cf6d3ede Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 18:14:33 +0530 Subject: [PATCH 077/124] Server list view themed and some other minor changes --- .../SubscriptionsViewController.swift | 11 ++++++++++- .../Channel Small.imageset/Contents.json | 3 +++ .../Icons/Group Small.imageset/Contents.json | 3 +++ .../Storyboards/Subscriptions.storyboard | 1 + Rocket.Chat/Theme/Theme.swift | 2 +- Rocket.Chat/Theme/ThemeableViews.swift | 2 ++ .../Views/Cells/Subscription/ServerCell.swift | 19 ++++++++++++++++--- .../Cells/Subscription/SubscriptionCell.swift | 3 ++- .../Views/Subscriptions/ServersListView.swift | 11 +++++++++++ .../Views/Subscriptions/ServersListView.xib | 4 +++- 10 files changed, 52 insertions(+), 7 deletions(-) diff --git a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift index fb648b9edf..39dc9e8704 100644 --- a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift +++ b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift @@ -13,7 +13,8 @@ final class SubscriptionsViewController: BaseViewController { @IBOutlet weak var tableView: UITableView! @IBOutlet weak var filterSeperator: UIView! - + @IBOutlet weak var sortDescriptionLabel: UILabel! + weak var serversView: ServersListView? weak var titleView: SubscriptionsTitleView? weak var searchController: UISearchController? @@ -295,6 +296,7 @@ extension SubscriptionsViewController: UISearchBarDelegate { } else { titleView?.updateTitleImage(reverse: true) serversView = ServersListView.showIn(self.view) + serversView?.applyTheme() } } @@ -436,5 +438,12 @@ extension SubscriptionsViewController { super.applyTheme() guard let theme = view.theme else { return } filterSeperator.backgroundColor = theme.mutedAccent + sortDescriptionLabel.textColor = theme.auxiliaryText + + if serversView != nil { + titleView?.updateTitleImage(reverse: true) + } else { + titleView?.updateTitleImage(reverse: false) + } } } diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Channel Small.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Channel Small.imageset/Contents.json index 6391f82390..3a969381b6 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Channel Small.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Channel Small.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Group Small.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Group Small.imageset/Contents.json index b65ec6c8f7..c152b698dc 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Group Small.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Group Small.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Storyboards/Subscriptions.storyboard b/Rocket.Chat/Storyboards/Subscriptions.storyboard index 3f9da4c410..dc4b1a616c 100644 --- a/Rocket.Chat/Storyboards/Subscriptions.storyboard +++ b/Rocket.Chat/Storyboards/Subscriptions.storyboard @@ -194,6 +194,7 @@ + diff --git a/Rocket.Chat/Theme/Theme.swift b/Rocket.Chat/Theme/Theme.swift index 11ea6fc474..69acec4cb9 100644 --- a/Rocket.Chat/Theme/Theme.swift +++ b/Rocket.Chat/Theme/Theme.swift @@ -62,7 +62,7 @@ class Theme: NSObject { if let mutedAccent = mutedAccent { self.mutedAccent = mutedAccent } else { - self.mutedAccent = #colorLiteral(red: 0.491, green: 0.4938107133, blue: 0.500592351, alpha: 0.2993471747) + self.mutedAccent = #colorLiteral(red: 0.491, green: 0.4938107133, blue: 0.500592351, alpha: 0.3967091182) } if let strongAccent = strongAccent { diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift index 9d626941b0..5ce8e0d9be 100644 --- a/Rocket.Chat/Theme/ThemeableViews.swift +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -29,6 +29,7 @@ extension UIView: Themeable { func applyTheme() { guard let theme = theme else { return } backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) + tintColor = theme.hyperlinkText self.subviews.forEach { $0.applyTheme() } } } @@ -137,6 +138,7 @@ extension UITableViewCell { guard let theme = theme else { return } backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) detailTextLabel?.textColor = theme.auxiliaryText + tintColor = theme.auxiliaryText } } diff --git a/Rocket.Chat/Views/Cells/Subscription/ServerCell.swift b/Rocket.Chat/Views/Cells/Subscription/ServerCell.swift index dc6b6dbbb3..b7b8ee66a4 100644 --- a/Rocket.Chat/Views/Cells/Subscription/ServerCell.swift +++ b/Rocket.Chat/Views/Cells/Subscription/ServerCell.swift @@ -61,7 +61,7 @@ extension ServerCell { case true: self.backgroundColor = self.selectedBackgroundColor case false: - self.backgroundColor = self.defaultBackgroundColor + self.backgroundColor = self.theme?.backgroundColor ?? self.defaultBackgroundColor } } @@ -76,9 +76,9 @@ extension ServerCell { let transition = { switch highlighted { case true: - self.backgroundColor = self.highlightedBackgroundColor + self.backgroundColor = self.theme?.focusedBackground ?? self.highlightedBackgroundColor case false: - self.backgroundColor = self.defaultBackgroundColor + self.backgroundColor = self.theme?.backgroundColor ?? self.defaultBackgroundColor } } @@ -88,5 +88,18 @@ extension ServerCell { transition() } } +} + +// MARK: Themeable + +extension ServerCell { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + switch isHighlighted { + case false: backgroundColor = theme.backgroundColor + case true: backgroundColor = theme.focusedBackground + } + } } diff --git a/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift b/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift index 743ca1ca6a..9027198603 100644 --- a/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift +++ b/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift @@ -203,8 +203,9 @@ extension SubscriptionCell { guard let theme = theme else { return } labelName.textColor = theme.titleText labelUnread.backgroundColor = theme.hyperlinkText - labelUnread.textColor = .white + labelUnread.textColor = theme.backgroundColor labelLastMessage.textColor = theme.auxiliaryText + iconRoom.tintColor = theme.auxiliaryText if let subscription = self.subscription, subscription.unread > 0 || subscription.alert { labelDate.textColor = theme.hyperlinkText diff --git a/Rocket.Chat/Views/Subscriptions/ServersListView.swift b/Rocket.Chat/Views/Subscriptions/ServersListView.swift index ee8a7e8a8d..8c29a5aa00 100644 --- a/Rocket.Chat/Views/Subscriptions/ServersListView.swift +++ b/Rocket.Chat/Views/Subscriptions/ServersListView.swift @@ -184,3 +184,14 @@ extension ServersListView: UITableViewDelegate { } } + +// MARK: Themeable + +extension ServersListView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + buttonAddNewServer.setTitleColor(theme.hyperlinkText, for: .normal) + labelTitle.textColor = theme.auxiliaryText + } +} diff --git a/Rocket.Chat/Views/Subscriptions/ServersListView.xib b/Rocket.Chat/Views/Subscriptions/ServersListView.xib index 1c8fc3f656..cef858ccbb 100644 --- a/Rocket.Chat/Views/Subscriptions/ServersListView.xib +++ b/Rocket.Chat/Views/Subscriptions/ServersListView.xib @@ -1,5 +1,5 @@ - + @@ -83,8 +83,10 @@ + + From bee60c9c35b6ceb5fa2e9d2f3f08dfd8071b9e04 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 18:24:34 +0530 Subject: [PATCH 078/124] Channel info action glyphs themed --- .../Icons/Attachments.imageset/Contents.json | 3 +++ .../Assets.xcassets/Icons/Members.imageset/Contents.json | 3 +++ .../Assets.xcassets/Icons/Mentions.imageset/Contents.json | 3 +++ .../Assets.xcassets/Icons/Pinned.imageset/Contents.json | 3 +++ .../Assets.xcassets/Icons/Share.imageset/Contents.json | 3 +++ .../Icons/Star NavBar.imageset/Contents.json | 3 +++ .../Assets.xcassets/Icons/Star Off.imageset/Contents.json | 3 +++ .../Views/Cells/Chat/Info/ChannelInfoActionCell.swift | 8 ++++++++ 8 files changed, 29 insertions(+) diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Attachments.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Attachments.imageset/Contents.json index a5a49b15fe..1097d37ed1 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Attachments.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Attachments.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Members.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Members.imageset/Contents.json index 5623fe9abb..57c327fd43 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Members.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Members.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Mentions.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Mentions.imageset/Contents.json index 8db3532518..60f4e2eea5 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Mentions.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Mentions.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Pinned.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Pinned.imageset/Contents.json index 47979a8291..77d105a0d5 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Pinned.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Pinned.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Share.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Share.imageset/Contents.json index 7d75f1c2ea..00ccf2fe5e 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Share.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Share.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Star NavBar.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Star NavBar.imageset/Contents.json index dc118f7b9a..796e761f02 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Star NavBar.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Star NavBar.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Star Off.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Star Off.imageset/Contents.json index 2561605d55..08f4bd2663 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Star Off.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Star Off.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Views/Cells/Chat/Info/ChannelInfoActionCell.swift b/Rocket.Chat/Views/Cells/Chat/Info/ChannelInfoActionCell.swift index 037cf853b4..1402923102 100644 --- a/Rocket.Chat/Views/Cells/Chat/Info/ChannelInfoActionCell.swift +++ b/Rocket.Chat/Views/Cells/Chat/Info/ChannelInfoActionCell.swift @@ -41,3 +41,11 @@ class ChannelInfoActionCell: UITableViewCell, ChannelInfoCellProtocol { @IBOutlet weak var imageViewIcon: UIImageView! } + +extension ChannelInfoActionCell { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + imageViewIcon.tintColor = theme.titleText + } +} From 3a462f59333ed2301084ebbf83f14b523396c673 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 19:00:57 +0530 Subject: [PATCH 079/124] Set title color on the chat title view --- .../Assets.xcassets/Icons/More.imageset/Contents.json | 3 +++ Rocket.Chat/Views/Chat/ChatTitleView.swift | 5 +++-- Rocket.Chat/Views/Chat/ChatTitleView.xib | 5 +++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/More.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/More.imageset/Contents.json index 490a19ffbc..2e8f70f7c9 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/More.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/More.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Rocket.Chat/Views/Chat/ChatTitleView.swift b/Rocket.Chat/Views/Chat/ChatTitleView.swift index 39acdffa18..0bbb1779fd 100644 --- a/Rocket.Chat/Views/Chat/ChatTitleView.swift +++ b/Rocket.Chat/Views/Chat/ChatTitleView.swift @@ -17,7 +17,7 @@ final class ChatTitleView: UIView { weak var delegate: ChatTitleViewProtocol? - @IBOutlet weak var icon: UIImageView! + @IBOutlet weak var buttonMore: UIButton! @IBOutlet weak var buttonTitle: UIButton! { didSet { buttonTitle.titleLabel?.textColor = .RCDarkGray() @@ -59,7 +59,8 @@ extension ChatTitleView { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } -// labelTitle.textColor = theme.titleText + buttonMore.tintColor = theme.titleText + buttonTitle.setTitleColor(theme.titleText, for: .normal) // TODO } } diff --git a/Rocket.Chat/Views/Chat/ChatTitleView.xib b/Rocket.Chat/Views/Chat/ChatTitleView.xib index fecba5fade..e0a690850f 100644 --- a/Rocket.Chat/Views/Chat/ChatTitleView.xib +++ b/Rocket.Chat/Views/Chat/ChatTitleView.xib @@ -1,11 +1,11 @@ - + - + @@ -53,6 +53,7 @@ + From 834bf2423160fc91b675f1bc519af574d73c9556 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 19:24:07 +0530 Subject: [PATCH 080/124] Search bar tint corrected --- .../Subscriptions/SubscriptionsViewController.swift | 1 + Rocket.Chat/Theme/ThemeableViews.swift | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift index d619de5c1f..3c8af19681 100644 --- a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift +++ b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift @@ -140,6 +140,7 @@ final class SubscriptionsViewController: BaseViewController { self.searchController = searchController self.searchBar?.placeholder = localized("subscriptions.search") self.searchBar?.delegate = self + self.searchBar?.applyTheme() } func setupTitleView() { diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift index 5ce8e0d9be..7287cad725 100644 --- a/Rocket.Chat/Theme/ThemeableViews.swift +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -29,7 +29,6 @@ extension UIView: Themeable { func applyTheme() { guard let theme = theme else { return } backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) - tintColor = theme.hyperlinkText self.subviews.forEach { $0.applyTheme() } } } @@ -75,7 +74,7 @@ extension UISearchBar { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - tintColor = theme.tintColor + tintColor = theme.hyperlinkText let textField = subviews.first?.subviews.first { $0 is UITextField } as? UITextField textField?.backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) } From 5ce8dbbabdfce33166a9f229b10810c274b9db17 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 21:11:40 +0530 Subject: [PATCH 081/124] Chat title view themed correctly --- .../Controllers/Chat/ChatViewController.swift | 25 +++++++------------ .../Theme/ThemeableViewControllers.swift | 2 +- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index 674f3ed496..f3269882e3 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -127,19 +127,11 @@ final class ChatViewController: SLKTextViewController { registerCells() } -// override var preferredStatusBarStyle: UIStatusBarStyle { -// return .default -// } -// TODO override func viewDidLoad() { super.viewDidLoad() SocketManager.addConnectionHandler(token: socketHandlerToken, handler: self) -// navigationController?.navigationBar.isTranslucent = false -// navigationController?.navigationBar.barTintColor = .RCNavigationBarColor() -// navigationController?.navigationBar.tintColor = .RCBlue() -// TODO if #available(iOS 11.0, *) { collectionView?.contentInsetAdjustmentBehavior = .never } @@ -187,6 +179,7 @@ final class ChatViewController: SLKTextViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) navigationController?.setNavigationBarHidden(false, animated: animated) + ThemeManager.addObserver(navigationController?.navigationBar) } override func viewWillLayoutSubviews() { @@ -228,7 +221,6 @@ final class ChatViewController: SLKTextViewController { view?.delegate = self navigationItem.titleView = view chatTitleView = view - ThemeManager.addObserver(chatTitleView) } private func setupScrollToBottomButton() { @@ -1225,10 +1217,11 @@ extension ChatViewController: SocketConnectionHandler { // MARK: Themeable -extension ChatViewController { - override func applyTheme() { - super.applyTheme() - guard let theme = view.theme else { return } - navigationController?.navigationBar.barTintColor = theme.focusedBackground - } -} +//extension ChatViewController { +// override func applyTheme() { +// super.applyTheme() +// guard let theme = view.theme else { return } +// splitViewController?.detailViewController?.navigationController?.navigationBar.applyTheme() +// splitViewController?.detailViewController?.navigationController?.navigationBar.barTintColor = theme.focusedBackground +// } +//} diff --git a/Rocket.Chat/Theme/ThemeableViewControllers.swift b/Rocket.Chat/Theme/ThemeableViewControllers.swift index e6523e11dd..1870f97e6c 100644 --- a/Rocket.Chat/Theme/ThemeableViewControllers.swift +++ b/Rocket.Chat/Theme/ThemeableViewControllers.swift @@ -19,6 +19,6 @@ extension UIViewController: Themeable { func applyTheme() { view.applyTheme() - navigationController?.applyTheme() + navigationController?.navigationBar.applyTheme() } } From 6dd2075704903a5eadee01bb8f7acaccd52b8db3 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 21:34:51 +0530 Subject: [PATCH 082/124] Text input bar themed --- .../Controllers/Chat/ChatViewController.swift | 19 +++++++++---------- Rocket.Chat/Theme/ThemeableViews.swift | 4 ++-- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index f3269882e3..a2d62db1dc 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -180,6 +180,7 @@ final class ChatViewController: SLKTextViewController { super.viewWillAppear(animated) navigationController?.setNavigationBarHidden(false, animated: animated) ThemeManager.addObserver(navigationController?.navigationBar) + textInputbar.applyTheme() } override func viewWillLayoutSubviews() { @@ -1152,7 +1153,7 @@ extension ChatViewController { private func blockMessageSending(reason: String) { textInputbar.textView.placeholder = reason - textInputbar.backgroundColor = .white + textInputbar.backgroundColor = view.theme?.backgroundColor ?? .white textInputbar.isUserInteractionEnabled = false leftButton.isEnabled = false rightButton.isEnabled = false @@ -1160,7 +1161,7 @@ extension ChatViewController { private func allowMessageSending() { textInputbar.textView.placeholder = "" - textInputbar.backgroundColor = .backgroundWhite + textInputbar.backgroundColor = view.theme?.focusedBackground ?? .backgroundWhite textInputbar.isUserInteractionEnabled = true leftButton.isEnabled = true rightButton.isEnabled = true @@ -1217,11 +1218,9 @@ extension ChatViewController: SocketConnectionHandler { // MARK: Themeable -//extension ChatViewController { -// override func applyTheme() { -// super.applyTheme() -// guard let theme = view.theme else { return } -// splitViewController?.detailViewController?.navigationController?.navigationBar.applyTheme() -// splitViewController?.detailViewController?.navigationController?.navigationBar.barTintColor = theme.focusedBackground -// } -//} +extension ChatViewController { + override func applyTheme() { + super.applyTheme() + updateMessageSendingPermission() + } +} diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift index 7287cad725..3fb4faea2b 100644 --- a/Rocket.Chat/Theme/ThemeableViews.swift +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -170,7 +170,7 @@ extension UIToolbar { guard let theme = theme else { return } isTranslucent = false barTintColor = theme.focusedBackground - tintColor = theme.tintColor + tintColor = theme.hyperlinkText barStyle = theme.appearence.barStyle } @@ -185,7 +185,7 @@ extension UITabBar { super.applyTheme() guard let theme = theme else { return } barTintColor = theme.focusedBackground - tintColor = theme.tintColor + tintColor = theme.hyperlinkText barStyle = theme.appearence.barStyle } From 3c6e200c90dd2b0b01473760e3e4bdc8d7711b4e Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 21:44:02 +0530 Subject: [PATCH 083/124] Scroll to bottom indicator themed --- Rocket.Chat/Controllers/Chat/ChatViewController.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index a2d62db1dc..a17c154436 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -227,6 +227,8 @@ final class ChatViewController: SLKTextViewController { private func setupScrollToBottomButton() { buttonScrollToBottom.layer.cornerRadius = 25 buttonScrollToBottom.layer.borderWidth = 1 + buttonScrollToBottom.layer.borderColor = (view.theme?.bodyText ?? Theme.light.bodyText).cgColor + buttonScrollToBottom.tintColor = view.theme?.bodyText ?? Theme.light.bodyText } override class func collectionViewLayout(for decoder: NSCoder) -> UICollectionViewLayout { @@ -1222,5 +1224,6 @@ extension ChatViewController { override func applyTheme() { super.applyTheme() updateMessageSendingPermission() + setupScrollToBottomButton() } } From 302eaca518ca0f137900cdedf7e9d18e5ac2b74b Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 21:46:41 +0530 Subject: [PATCH 084/124] Subtle changes to the theme colors --- Rocket.Chat/Theme/Theme.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Rocket.Chat/Theme/Theme.swift b/Rocket.Chat/Theme/Theme.swift index 69acec4cb9..6cb01817aa 100644 --- a/Rocket.Chat/Theme/Theme.swift +++ b/Rocket.Chat/Theme/Theme.swift @@ -91,7 +91,7 @@ class Theme: NSObject { static let dark = Theme( backgroundColor: #colorLiteral(red: 0.08, green: 0.08, blue: 0.08, alpha: 1), titleText: #colorLiteral(red: 0.9785086513, green: 0.9786720872, blue: 0.9784870744, alpha: 1), - bodyText: #colorLiteral(red: 0.9111283446, green: 0.9409677543, blue: 0.9294117647, alpha: 1), + bodyText: #colorLiteral(red: 0.9111283446, green: 0.9229556015, blue: 0.9294117647, alpha: 1), auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.7224261515, blue: 0.7773035386, alpha: 1), hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), @@ -104,9 +104,9 @@ class Theme: NSObject { static let black = Theme( backgroundColor: #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1), - titleText: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), - bodyText: #colorLiteral(red: 0.9294117647, green: 0.9294117647, blue: 0.9294117647, alpha: 1), - auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.6980392157, blue: 0.6980392157, alpha: 1), + titleText: #colorLiteral(red: 0.9785086513, green: 0.9786720872, blue: 0.9784870744, alpha: 1), + bodyText: #colorLiteral(red: 0.9111283446, green: 0.9229556015, blue: 0.9294117647, alpha: 1), + auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.7224261515, blue: 0.7773035386, alpha: 1), hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), focusedBackground: #colorLiteral(red: 0.04620946944, green: 0.04620946944, blue: 0.04620946944, alpha: 1), From 4374a7af7bd33a8b29cd02b16ae797b32fac9ac2 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 21:48:05 +0530 Subject: [PATCH 085/124] Removed TODOs --- Rocket.Chat/Controllers/Base/BaseNavigationController.swift | 3 --- Rocket.Chat/Views/Chat/ChatTitleView.swift | 1 - 2 files changed, 4 deletions(-) diff --git a/Rocket.Chat/Controllers/Base/BaseNavigationController.swift b/Rocket.Chat/Controllers/Base/BaseNavigationController.swift index 2e11083176..97169db23f 100644 --- a/Rocket.Chat/Controllers/Base/BaseNavigationController.swift +++ b/Rocket.Chat/Controllers/Base/BaseNavigationController.swift @@ -18,9 +18,6 @@ class BaseNavigationController: UINavigationController { let navBar = self.navigationBar navBar.isTranslucent = false -// navBar.tintColor = .RCBlue() -// navBar.barTintColor = .RCNavigationBarColor() - // TODO } func setTransparentTheme() { diff --git a/Rocket.Chat/Views/Chat/ChatTitleView.swift b/Rocket.Chat/Views/Chat/ChatTitleView.swift index 0bbb1779fd..ba0506d1ee 100644 --- a/Rocket.Chat/Views/Chat/ChatTitleView.swift +++ b/Rocket.Chat/Views/Chat/ChatTitleView.swift @@ -61,6 +61,5 @@ extension ChatTitleView { guard let theme = theme else { return } buttonMore.tintColor = theme.titleText buttonTitle.setTitleColor(theme.titleText, for: .normal) - // TODO } } From fc65a69abb3d42c88acd0c8c50e9ce762851fcd9 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 22:00:06 +0530 Subject: [PATCH 086/124] Removed the "Button" text that would appear in the nav bar when no chat is selected on the iPad --- Rocket.Chat/Views/Chat/ChatTitleView.xib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rocket.Chat/Views/Chat/ChatTitleView.xib b/Rocket.Chat/Views/Chat/ChatTitleView.xib index e0a690850f..9b17524794 100644 --- a/Rocket.Chat/Views/Chat/ChatTitleView.xib +++ b/Rocket.Chat/Views/Chat/ChatTitleView.xib @@ -32,7 +32,7 @@ - + From 67f4f5045676d0f6e4791081d98083f237347953 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 22:38:55 +0530 Subject: [PATCH 087/124] Fix chat title view theming on the iPhone --- Rocket.Chat/Controllers/Chat/ChatViewController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index a17c154436..474e3632b7 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -222,6 +222,7 @@ final class ChatViewController: SLKTextViewController { view?.delegate = self navigationItem.titleView = view chatTitleView = view + chatTitleView?.applyTheme() } private func setupScrollToBottomButton() { From 9cd2d62f8fa900ed9680e1b489fa46867b36b7bb Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 22:48:15 +0530 Subject: [PATCH 088/124] White background underneath the search bar fixed --- .../Controllers/Subscriptions/SubscriptionsViewController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift index 3c8af19681..4681b708b3 100644 --- a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift +++ b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift @@ -61,6 +61,7 @@ final class SubscriptionsViewController: BaseViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) + ThemeManager.addObserver(navigationController) SocketManager.addConnectionHandler(token: socketHandlerToken, handler: self) From 8604a3c891e0a9d89ea377ec921d956d0c091919 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 23:29:05 +0530 Subject: [PATCH 089/124] Fix missing sort view separator --- .../Preferences/Theme/ThemePreferenceController.swift | 4 +++- .../Subscriptions/SubscriptionsViewController.swift | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceController.swift b/Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceController.swift index 68047d9511..396b965e89 100644 --- a/Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceController.swift +++ b/Rocket.Chat/Controllers/Preferences/Theme/ThemePreferenceController.swift @@ -51,7 +51,9 @@ extension ThemePreferenceController { extension ThemePreferenceController { override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let selectedTheme = viewModel.themes[indexPath.row].theme - ThemeManager.theme = selectedTheme + if ThemeManager.theme != selectedTheme { + ThemeManager.theme = selectedTheme + } tableView.deselectRow(at: indexPath, animated: true) } } diff --git a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift index 4681b708b3..7d95a61818 100644 --- a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift +++ b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift @@ -61,7 +61,6 @@ final class SubscriptionsViewController: BaseViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - ThemeManager.addObserver(navigationController) SocketManager.addConnectionHandler(token: socketHandlerToken, handler: self) @@ -466,6 +465,7 @@ extension SubscriptionsViewController { guard let theme = view.theme else { return } filterSeperator.backgroundColor = theme.mutedAccent sortDescriptionLabel.textColor = theme.auxiliaryText + navigationController?.view.backgroundColor = view.theme?.backgroundColor if serversView != nil { titleView?.updateTitleImage(reverse: true) From d86879d0f777b19fa33448690180a06ba1d5cce2 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 23:34:09 +0530 Subject: [PATCH 090/124] Notification view explicitly marked not themeable --- .../Controllers/Notification/NotificationViewController.xib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rocket.Chat/Controllers/Notification/NotificationViewController.xib b/Rocket.Chat/Controllers/Notification/NotificationViewController.xib index 5995e940ed..a6808e2383 100644 --- a/Rocket.Chat/Controllers/Notification/NotificationViewController.xib +++ b/Rocket.Chat/Controllers/Notification/NotificationViewController.xib @@ -20,7 +20,7 @@ - + From 869dd2286f6c42bfb7d3e8d1a0b6933840ab496a Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 31 May 2018 23:45:34 +0530 Subject: [PATCH 091/124] Fixed edit profile view background --- .../Storyboards/Preferences.storyboard | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Rocket.Chat/Storyboards/Preferences.storyboard b/Rocket.Chat/Storyboards/Preferences.storyboard index d999e0e2bb..957840d5dc 100644 --- a/Rocket.Chat/Storyboards/Preferences.storyboard +++ b/Rocket.Chat/Storyboards/Preferences.storyboard @@ -120,7 +120,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -172,7 +172,7 @@ - + @@ -189,7 +189,7 @@ - + @@ -206,7 +206,7 @@ - + @@ -235,7 +235,7 @@ We track crashes on Fabric, but this is optional for you if you don't want us to track it. Please keep in mind that this information help us understading the crashes that you are having while using the app. - + @@ -268,14 +268,14 @@ - + - + - + From 54f36fca671c13b9354020295afae2b565dd4d64 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Fri, 1 Jun 2018 11:19:54 +0530 Subject: [PATCH 092/124] Chat day separator is now lighter --- Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift index 8fdb640df3..0815d8279d 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageDaySeparator.swift @@ -21,7 +21,6 @@ final class ChatMessageDaySeparator: UICollectionViewCell { extension ChatMessageDaySeparator { override func applyTheme() { super.applyTheme() - guard let theme = theme else { return } - seperatorLine.backgroundColor = theme.mutedAccent + seperatorLine.backgroundColor = #colorLiteral(red: 0.491, green: 0.4938107133, blue: 0.500592351, alpha: 0.1964201627) } } From 238c805eeddf38879da3543b509d9cc18c6e2607 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Fri, 1 Jun 2018 19:11:22 +0530 Subject: [PATCH 093/124] Fixed an edge case for theming the search bar --- .../Controllers/Subscriptions/SubscriptionsViewController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift index 7d95a61818..9887a80512 100644 --- a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift +++ b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift @@ -466,6 +466,7 @@ extension SubscriptionsViewController { filterSeperator.backgroundColor = theme.mutedAccent sortDescriptionLabel.textColor = theme.auxiliaryText navigationController?.view.backgroundColor = view.theme?.backgroundColor + searchBar?.applyTheme() if serversView != nil { titleView?.updateTitleImage(reverse: true) From be3fc5eaa0c3f0b64776b10a18e86239639d8e7d Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Fri, 1 Jun 2018 19:52:40 +0530 Subject: [PATCH 094/124] SplitVC separator themed --- .../Controllers/Base/MainSplitViewController.swift | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Rocket.Chat/Controllers/Base/MainSplitViewController.swift b/Rocket.Chat/Controllers/Base/MainSplitViewController.swift index c3b62be6a5..4e6c13a878 100644 --- a/Rocket.Chat/Controllers/Base/MainSplitViewController.swift +++ b/Rocket.Chat/Controllers/Base/MainSplitViewController.swift @@ -42,6 +42,8 @@ final class MainSplitViewController: UISplitViewController { override func awakeFromNib() { super.awakeFromNib() + ThemeManager.addObserver(self) + delegate = self preferredDisplayMode = .allVisible @@ -81,3 +83,13 @@ extension MainSplitViewController: SocketConnectionHandler { } } + +// MARK: Themeable + +extension MainSplitViewController { + override func applyTheme() { + super.applyTheme() + guard let theme = view.theme else { return } + view.backgroundColor = theme.mutedAccent + } +} From 5f44874aab051045bb7d7f0d9cfba1242a6618a9 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Sat, 2 Jun 2018 20:03:02 +0530 Subject: [PATCH 095/124] Improved the theming of the split view controller separator --- .../Base/MainSplitViewController.swift | 7 ++++++- Rocket.Chat/Theme/Theme.swift | 15 +++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Rocket.Chat/Controllers/Base/MainSplitViewController.swift b/Rocket.Chat/Controllers/Base/MainSplitViewController.swift index 4e6c13a878..8e9c4bfb18 100644 --- a/Rocket.Chat/Controllers/Base/MainSplitViewController.swift +++ b/Rocket.Chat/Controllers/Base/MainSplitViewController.swift @@ -51,6 +51,11 @@ final class MainSplitViewController: UISplitViewController { SocketManager.reconnect() } + override func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + applyTheme() + } + override var preferredStatusBarStyle: UIStatusBarStyle { return view.theme?.appearence.statusBarStyle ?? .default } @@ -88,8 +93,8 @@ extension MainSplitViewController: SocketConnectionHandler { extension MainSplitViewController { override func applyTheme() { - super.applyTheme() guard let theme = view.theme else { return } view.backgroundColor = theme.mutedAccent + view.subviews.first?.backgroundColor = theme.mutedAccent } } diff --git a/Rocket.Chat/Theme/Theme.swift b/Rocket.Chat/Theme/Theme.swift index 6cb01817aa..1e2d621fd1 100644 --- a/Rocket.Chat/Theme/Theme.swift +++ b/Rocket.Chat/Theme/Theme.swift @@ -46,7 +46,7 @@ class Theme: NSObject { tintColor: UIColor, focusedBackground: UIColor, auxiliaryBackground: UIColor, - mutedAccent: UIColor?, + mutedAccent: UIColor, strongAccent: UIColor?, appearence: Appearence) { @@ -58,12 +58,7 @@ class Theme: NSObject { self.tintColor = tintColor self.focusedBackground = focusedBackground self.auxiliaryBackground = auxiliaryBackground - - if let mutedAccent = mutedAccent { - self.mutedAccent = mutedAccent - } else { - self.mutedAccent = #colorLiteral(red: 0.491, green: 0.4938107133, blue: 0.500592351, alpha: 0.3967091182) - } + self.mutedAccent = mutedAccent if let strongAccent = strongAccent { self.strongAccent = strongAccent @@ -83,7 +78,7 @@ class Theme: NSObject { tintColor: .black, focusedBackground: .RCNavigationBarColor(), auxiliaryBackground: #colorLiteral(red: 0.03921568627, green: 0.2666666667, blue: 0.4117647059, alpha: 1), - mutedAccent: nil, + mutedAccent: #colorLiteral(red: 0.7960784314, green: 0.7960784314, blue: 0.8, alpha: 1), strongAccent: nil, appearence: .light ) @@ -97,7 +92,7 @@ class Theme: NSObject { tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), focusedBackground: #colorLiteral(red: 0.1036974415, green: 0.1036974415, blue: 0.1036974415, alpha: 1), auxiliaryBackground: #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1), - mutedAccent: nil, + mutedAccent: #colorLiteral(red: 0.2431372549, green: 0.2431372549, blue: 0.2470588235, alpha: 1), strongAccent: nil, appearence: .dark ) @@ -111,7 +106,7 @@ class Theme: NSObject { tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), focusedBackground: #colorLiteral(red: 0.04620946944, green: 0.04620946944, blue: 0.04620946944, alpha: 1), auxiliaryBackground: #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1), - mutedAccent: nil, + mutedAccent: #colorLiteral(red: 0.1960784314, green: 0.1960784314, blue: 0.2, alpha: 1), strongAccent: nil, appearence: .dark ) From c1809bc0b43f134222e68be9d230657f30c03d46 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Sat, 2 Jun 2018 20:20:55 +0530 Subject: [PATCH 096/124] Themed chat preview mode view --- .../Controllers/Chat/ChatViewController.swift | 2 ++ .../Cells/Subscription/ChatPreviewModeView.swift | 12 ++++++++++++ .../Views/Cells/Subscription/ChatPreviewModeView.xib | 5 +++-- .../Views/Sections/SubscriptionSearchMoreView.swift | 8 ++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index 474e3632b7..ea55ec0c3a 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -850,6 +850,8 @@ final class ChatViewController: SLKTextViewController { chatPreviewModeView = previewView updateChatPreviewModeViewConstraints() + + previewView.applyTheme() } } diff --git a/Rocket.Chat/Views/Cells/Subscription/ChatPreviewModeView.swift b/Rocket.Chat/Views/Cells/Subscription/ChatPreviewModeView.swift index baa4147a57..c8b89d2206 100644 --- a/Rocket.Chat/Views/Cells/Subscription/ChatPreviewModeView.swift +++ b/Rocket.Chat/Views/Cells/Subscription/ChatPreviewModeView.swift @@ -23,6 +23,7 @@ final class ChatPreviewModeView: UIView { } } + @IBOutlet weak var seperatorView: UIView! @IBOutlet weak var labelTitle: UILabel! @IBOutlet weak var buttonJoin: UIButton! { didSet { @@ -58,3 +59,14 @@ final class ChatPreviewModeView: UIView { } } } + +extension ChatPreviewModeView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + labelTitle.textColor = theme.auxiliaryText + seperatorView.backgroundColor = theme.mutedAccent + buttonJoin.backgroundColor = #colorLiteral(red: 0.1843137255, green: 0.2039215686, blue: 0.2392156863, alpha: 1) + backgroundColor = theme.focusedBackground + } +} diff --git a/Rocket.Chat/Views/Cells/Subscription/ChatPreviewModeView.xib b/Rocket.Chat/Views/Cells/Subscription/ChatPreviewModeView.xib index 44d3052fca..dff364566a 100644 --- a/Rocket.Chat/Views/Cells/Subscription/ChatPreviewModeView.xib +++ b/Rocket.Chat/Views/Cells/Subscription/ChatPreviewModeView.xib @@ -1,11 +1,11 @@ - + - + @@ -75,6 +75,7 @@ + diff --git a/Rocket.Chat/Views/Sections/SubscriptionSearchMoreView.swift b/Rocket.Chat/Views/Sections/SubscriptionSearchMoreView.swift index 7c52204ab4..f12d63b79d 100644 --- a/Rocket.Chat/Views/Sections/SubscriptionSearchMoreView.swift +++ b/Rocket.Chat/Views/Sections/SubscriptionSearchMoreView.swift @@ -26,3 +26,11 @@ final class SubscriptionSearchMoreView: UIView { delegate?.buttonLoadMoreDidPressed() } } + +extension SubscriptionSearchMoreView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + buttonLoadMore.setTitleColor(theme.auxiliaryText, for: .normal) + } +} From 3823f0f59c97f2d92f89b84222443961d693f13c Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Sun, 3 Jun 2018 12:05:09 +0530 Subject: [PATCH 097/124] Subscription vc selection background themed --- .../Views/Cells/Subscription/SubscriptionCell.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift b/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift index 9027198603..ec7a62d7a9 100644 --- a/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift +++ b/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift @@ -17,8 +17,8 @@ final class SubscriptionCell: UITableViewCell { internal let labelUnreadTextColor = UIColor(rgb: 0xFFFFFF, alphaVal: 1) internal let defaultBackgroundColor = UIColor.white - internal let selectedBackgroundColor = UIColor(rgb: 0x0, alphaVal: 0.08) - internal let highlightedBackgroundColor = UIColor(rgb: 0x0, alphaVal: 0.14) + internal let selectedBackgroundColor = #colorLiteral(red: 0.4980838895, green: 0.4951269031, blue: 0.5003594756, alpha: 0.19921875) + internal let highlightedBackgroundColor = #colorLiteral(red: 0.4980838895, green: 0.4951269031, blue: 0.5003594756, alpha: 0.09530179799) var subscription: Subscription? { didSet { @@ -212,5 +212,8 @@ extension SubscriptionCell { } else { labelDate.textColor = theme.auxiliaryText } + + setSelected(isSelected, animated: false) + setHighlighted(isHighlighted, animated: false) } } From 485c722a2d4ff73bd861ba47f89a796d618e3331 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Sun, 3 Jun 2018 16:16:49 +0530 Subject: [PATCH 098/124] Changed the color name to a more appropriate one --- .../RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift | 1 - .../Views/Reaction/ReactorListView.swift | 1 - Rocket.Chat/Theme/Theme.swift | 12 +++--------- Rocket.Chat/Theme/ThemeableViews.swift | 14 +++++++------- .../Cells/Subscription/SubscriptionCell.swift | 4 ++-- .../Views/Subscriptions/ServersListView.swift | 2 +- .../Subscriptions/SubscriptionsTitleView.swift | 6 +++--- 7 files changed, 16 insertions(+), 24 deletions(-) diff --git a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift index a392658694..b66e8322dd 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift @@ -354,7 +354,6 @@ extension EmojiPicker { titleText: theme.titleText, bodyText: theme.bodyText, auxiliaryText: theme.auxiliaryText, - hyperlinkText: theme.hyperlinkText, tintColor: theme.tintColor, focusedBackground: theme.focusedBackground, auxiliaryBackground: theme.auxiliaryBackground, diff --git a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift index 3afe062e3c..2fdbba98a6 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift @@ -171,7 +171,6 @@ extension ReactorListView { titleText: theme.titleText, bodyText: theme.bodyText, auxiliaryText: theme.auxiliaryText, - hyperlinkText: theme.hyperlinkText, tintColor: theme.tintColor, focusedBackground: theme.focusedBackground, auxiliaryBackground: theme.auxiliaryBackground, diff --git a/Rocket.Chat/Theme/Theme.swift b/Rocket.Chat/Theme/Theme.swift index 1e2d621fd1..b6fba9b7ad 100644 --- a/Rocket.Chat/Theme/Theme.swift +++ b/Rocket.Chat/Theme/Theme.swift @@ -21,7 +21,6 @@ class Theme: NSObject { let titleText: UIColor let bodyText: UIColor let auxiliaryText: UIColor - let hyperlinkText: UIColor let tintColor: UIColor let focusedBackground: UIColor let auxiliaryBackground: UIColor @@ -42,7 +41,6 @@ class Theme: NSObject { titleText: UIColor, bodyText: UIColor, auxiliaryText: UIColor, - hyperlinkText: UIColor, tintColor: UIColor, focusedBackground: UIColor, auxiliaryBackground: UIColor, @@ -54,7 +52,6 @@ class Theme: NSObject { self.titleText = titleText self.bodyText = bodyText self.auxiliaryText = auxiliaryText - self.hyperlinkText = hyperlinkText self.tintColor = tintColor self.focusedBackground = focusedBackground self.auxiliaryBackground = auxiliaryBackground @@ -74,8 +71,7 @@ class Theme: NSObject { titleText: #colorLiteral(red: 0.05143930763, green: 0.0585193634, blue: 0.07106169313, alpha: 1), bodyText: #colorLiteral(red: 0.1843137255, green: 0.2039215686, blue: 0.2392156863, alpha: 1), auxiliaryText: #colorLiteral(red: 0.6117647059, green: 0.6352941176, blue: 0.6588235294, alpha: 1), - hyperlinkText: .RCBlue(), - tintColor: .black, + tintColor: .RCBlue(), focusedBackground: .RCNavigationBarColor(), auxiliaryBackground: #colorLiteral(red: 0.03921568627, green: 0.2666666667, blue: 0.4117647059, alpha: 1), mutedAccent: #colorLiteral(red: 0.7960784314, green: 0.7960784314, blue: 0.8, alpha: 1), @@ -88,8 +84,7 @@ class Theme: NSObject { titleText: #colorLiteral(red: 0.9785086513, green: 0.9786720872, blue: 0.9784870744, alpha: 1), bodyText: #colorLiteral(red: 0.9111283446, green: 0.9229556015, blue: 0.9294117647, alpha: 1), auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.7224261515, blue: 0.7773035386, alpha: 1), - hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), - tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), + tintColor: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), focusedBackground: #colorLiteral(red: 0.1036974415, green: 0.1036974415, blue: 0.1036974415, alpha: 1), auxiliaryBackground: #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1), mutedAccent: #colorLiteral(red: 0.2431372549, green: 0.2431372549, blue: 0.2470588235, alpha: 1), @@ -102,8 +97,7 @@ class Theme: NSObject { titleText: #colorLiteral(red: 0.9785086513, green: 0.9786720872, blue: 0.9784870744, alpha: 1), bodyText: #colorLiteral(red: 0.9111283446, green: 0.9229556015, blue: 0.9294117647, alpha: 1), auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.7224261515, blue: 0.7773035386, alpha: 1), - hyperlinkText: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), - tintColor: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), + tintColor: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), focusedBackground: #colorLiteral(red: 0.04620946944, green: 0.04620946944, blue: 0.04620946944, alpha: 1), auxiliaryBackground: #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1), mutedAccent: #colorLiteral(red: 0.1960784314, green: 0.1960784314, blue: 0.2, alpha: 1), diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift index 3fb4faea2b..ca1bb19469 100644 --- a/Rocket.Chat/Theme/ThemeableViews.swift +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -62,7 +62,7 @@ extension UITextField { super.applyTheme() guard let theme = theme else { return } textColor = theme.titleText - tintColor = theme.hyperlinkText + tintColor = theme.tintColor keyboardAppearance = theme.appearence.keyboardAppearence if let placeholder = placeholder { attributedPlaceholder = NSAttributedString(string: placeholder, attributes: [.foregroundColor: theme.mutedAccent]) @@ -74,7 +74,7 @@ extension UISearchBar { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - tintColor = theme.hyperlinkText + tintColor = theme.tintColor let textField = subviews.first?.subviews.first { $0 is UITextField } as? UITextField textField?.backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) } @@ -145,7 +145,7 @@ extension UITextView { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - tintColor = theme.hyperlinkText + tintColor = theme.tintColor } } @@ -153,7 +153,7 @@ extension UINavigationBar { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - tintColor = theme.hyperlinkText + tintColor = theme.tintColor barStyle = theme.appearence.barStyle barTintColor = theme.focusedBackground } @@ -170,7 +170,7 @@ extension UIToolbar { guard let theme = theme else { return } isTranslucent = false barTintColor = theme.focusedBackground - tintColor = theme.hyperlinkText + tintColor = theme.tintColor barStyle = theme.appearence.barStyle } @@ -185,7 +185,7 @@ extension UITabBar { super.applyTheme() guard let theme = theme else { return } barTintColor = theme.focusedBackground - tintColor = theme.hyperlinkText + tintColor = theme.tintColor barStyle = theme.appearence.barStyle } @@ -215,6 +215,6 @@ extension SLKTextView { layer.borderColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.1518210827) backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) textColor = theme.bodyText - tintColor = theme.hyperlinkText + tintColor = theme.tintColor } } diff --git a/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift b/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift index ec7a62d7a9..e39d23859e 100644 --- a/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift +++ b/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift @@ -202,13 +202,13 @@ extension SubscriptionCell { super.applyTheme() guard let theme = theme else { return } labelName.textColor = theme.titleText - labelUnread.backgroundColor = theme.hyperlinkText + labelUnread.backgroundColor = theme.tintColor labelUnread.textColor = theme.backgroundColor labelLastMessage.textColor = theme.auxiliaryText iconRoom.tintColor = theme.auxiliaryText if let subscription = self.subscription, subscription.unread > 0 || subscription.alert { - labelDate.textColor = theme.hyperlinkText + labelDate.textColor = theme.tintColor } else { labelDate.textColor = theme.auxiliaryText } diff --git a/Rocket.Chat/Views/Subscriptions/ServersListView.swift b/Rocket.Chat/Views/Subscriptions/ServersListView.swift index 8c29a5aa00..aefbd820d8 100644 --- a/Rocket.Chat/Views/Subscriptions/ServersListView.swift +++ b/Rocket.Chat/Views/Subscriptions/ServersListView.swift @@ -191,7 +191,7 @@ extension ServersListView { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - buttonAddNewServer.setTitleColor(theme.hyperlinkText, for: .normal) + buttonAddNewServer.setTitleColor(theme.tintColor, for: .normal) labelTitle.textColor = theme.auxiliaryText } } diff --git a/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.swift b/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.swift index 11a5d77a19..0157585be0 100644 --- a/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.swift +++ b/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.swift @@ -39,7 +39,7 @@ final class SubscriptionsTitleView: UIView { } func updateTitleImage(reverse: Bool = false) { - if let image = UIImage(named: "Server Selector")?.imageWithTint(theme?.hyperlinkText ?? .RCBlue()) { + if let image = UIImage(named: "Server Selector")?.imageWithTint(theme?.tintColor ?? .RCBlue()) { if reverse, let cgImage = image.cgImage { let rotatedImage = UIImage(cgImage: cgImage, scale: image.scale, orientation: .downMirrored) buttonServer.setImage(rotatedImage, for: .normal) @@ -65,7 +65,7 @@ extension SubscriptionsTitleView { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - buttonServer.setTitleColor(theme.hyperlinkText, for: .normal) - buttonServer.tintColor = theme.hyperlinkText + buttonServer.setTitleColor(theme.tintColor, for: .normal) + buttonServer.tintColor = theme.tintColor } } From 666e48d5070dad61e64b5ec01911f9b1c23a8b88 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 4 Jun 2018 23:59:42 +0530 Subject: [PATCH 099/124] Fix merge issues --- .../Subscriptions/SubscriptionsViewController.swift | 7 +++++++ Rocket.Chat/Storyboards/Subscriptions.storyboard | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift index 91a8fdfe63..7b03c1ecf0 100644 --- a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift +++ b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift @@ -320,6 +320,7 @@ extension SubscriptionsViewController: UISearchBarDelegate { } else { titleView?.updateTitleImage(reverse: true) serversView = ServersListView.showIn(self.view) + serversView?.delegate = self serversView?.applyTheme() } } @@ -455,6 +456,12 @@ extension SubscriptionsViewController: SocketConnectionHandler { } +extension SubscriptionsViewController: ServerListViewDelegate { + func serverListViewDidClose() { + titleView?.updateTitleImage(reverse: false) + } +} + // MARK: Themeable extension SubscriptionsViewController { diff --git a/Rocket.Chat/Storyboards/Subscriptions.storyboard b/Rocket.Chat/Storyboards/Subscriptions.storyboard index 78b5b33f8f..0710518796 100644 --- a/Rocket.Chat/Storyboards/Subscriptions.storyboard +++ b/Rocket.Chat/Storyboards/Subscriptions.storyboard @@ -113,7 +113,7 @@ - + From 4028a21cbd4ee69411753e40f77da6a122510133 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 6 Jun 2018 17:04:48 +0530 Subject: [PATCH 100/124] Refining colors --- .../Views/EmojiPicker/EmojiPicker.swift | 1 + .../Views/Reaction/ReactorListView.swift | 1 + Rocket.Chat/Theme/Theme.swift | 20 ++++++++++++------- Rocket.Chat/Theme/ThemeableViews.swift | 14 ++++++++----- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift index b66e8322dd..bb5f80c96a 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift @@ -355,6 +355,7 @@ extension EmojiPicker { bodyText: theme.bodyText, auxiliaryText: theme.auxiliaryText, tintColor: theme.tintColor, + hyperlinkColor: theme.hyperlinkColor, focusedBackground: theme.focusedBackground, auxiliaryBackground: theme.auxiliaryBackground, mutedAccent: theme.mutedAccent, diff --git a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift index 2fdbba98a6..7ddc395d26 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift @@ -172,6 +172,7 @@ extension ReactorListView { bodyText: theme.bodyText, auxiliaryText: theme.auxiliaryText, tintColor: theme.tintColor, + hyperlinkColor: theme.hyperlinkColor, focusedBackground: theme.focusedBackground, auxiliaryBackground: theme.auxiliaryBackground, mutedAccent: theme.mutedAccent, diff --git a/Rocket.Chat/Theme/Theme.swift b/Rocket.Chat/Theme/Theme.swift index b6fba9b7ad..b580325369 100644 --- a/Rocket.Chat/Theme/Theme.swift +++ b/Rocket.Chat/Theme/Theme.swift @@ -22,6 +22,7 @@ class Theme: NSObject { let bodyText: UIColor let auxiliaryText: UIColor let tintColor: UIColor + let hyperlinkColor: UIColor let focusedBackground: UIColor let auxiliaryBackground: UIColor let mutedAccent: UIColor @@ -42,6 +43,7 @@ class Theme: NSObject { bodyText: UIColor, auxiliaryText: UIColor, tintColor: UIColor, + hyperlinkColor: UIColor, focusedBackground: UIColor, auxiliaryBackground: UIColor, mutedAccent: UIColor, @@ -53,6 +55,7 @@ class Theme: NSObject { self.bodyText = bodyText self.auxiliaryText = auxiliaryText self.tintColor = tintColor + self.hyperlinkColor = hyperlinkColor self.focusedBackground = focusedBackground self.auxiliaryBackground = auxiliaryBackground self.mutedAccent = mutedAccent @@ -72,6 +75,7 @@ class Theme: NSObject { bodyText: #colorLiteral(red: 0.1843137255, green: 0.2039215686, blue: 0.2392156863, alpha: 1), auxiliaryText: #colorLiteral(red: 0.6117647059, green: 0.6352941176, blue: 0.6588235294, alpha: 1), tintColor: .RCBlue(), + hyperlinkColor: .RCBlue(), focusedBackground: .RCNavigationBarColor(), auxiliaryBackground: #colorLiteral(red: 0.03921568627, green: 0.2666666667, blue: 0.4117647059, alpha: 1), mutedAccent: #colorLiteral(red: 0.7960784314, green: 0.7960784314, blue: 0.8, alpha: 1), @@ -80,14 +84,15 @@ class Theme: NSObject { ) static let dark = Theme( - backgroundColor: #colorLiteral(red: 0.08, green: 0.08, blue: 0.08, alpha: 1), + backgroundColor: #colorLiteral(red: 0.06482539596, green: 0.06587358546, blue: 0.06711885095, alpha: 1), titleText: #colorLiteral(red: 0.9785086513, green: 0.9786720872, blue: 0.9784870744, alpha: 1), bodyText: #colorLiteral(red: 0.9111283446, green: 0.9229556015, blue: 0.9294117647, alpha: 1), auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.7224261515, blue: 0.7773035386, alpha: 1), - tintColor: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), - focusedBackground: #colorLiteral(red: 0.1036974415, green: 0.1036974415, blue: 0.1036974415, alpha: 1), + tintColor: #colorLiteral(red: 0.1176899746, green: 0.6068716645, blue: 0.9971964955, alpha: 1), + hyperlinkColor: #colorLiteral(red: 0.4039215686, green: 0.7333333333, blue: 1, alpha: 1), + focusedBackground: #colorLiteral(red: 0.08987318066, green: 0.08987318066, blue: 0.1, alpha: 1), auxiliaryBackground: #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1), - mutedAccent: #colorLiteral(red: 0.2431372549, green: 0.2431372549, blue: 0.2470588235, alpha: 1), + mutedAccent: #colorLiteral(red: 0.1672673633, green: 0.1672673633, blue: 0.1769603646, alpha: 1), strongAccent: nil, appearence: .dark ) @@ -97,10 +102,11 @@ class Theme: NSObject { titleText: #colorLiteral(red: 0.9785086513, green: 0.9786720872, blue: 0.9784870744, alpha: 1), bodyText: #colorLiteral(red: 0.9111283446, green: 0.9229556015, blue: 0.9294117647, alpha: 1), auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.7224261515, blue: 0.7773035386, alpha: 1), - tintColor: #colorLiteral(red: 1, green: 0.8117647059, blue: 0.231372549, alpha: 1), - focusedBackground: #colorLiteral(red: 0.04620946944, green: 0.04620946944, blue: 0.04620946944, alpha: 1), + tintColor: #colorLiteral(red: 0.1176899746, green: 0.6068716645, blue: 0.9971964955, alpha: 1), + hyperlinkColor: #colorLiteral(red: 0.4039215686, green: 0.7333333333, blue: 1, alpha: 1), + focusedBackground: #colorLiteral(red: 0.05332512842, green: 0.05332512842, blue: 0.05332512842, alpha: 1), auxiliaryBackground: #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1), - mutedAccent: #colorLiteral(red: 0.1960784314, green: 0.1960784314, blue: 0.2, alpha: 1), + mutedAccent: #colorLiteral(red: 0.156862745, green: 0.156862745, blue: 0.16, alpha: 1), strongAccent: nil, appearence: .dark ) diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift index ca1bb19469..400927efca 100644 --- a/Rocket.Chat/Theme/ThemeableViews.swift +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -72,11 +72,8 @@ extension UITextField { extension UISearchBar { override func applyTheme() { - super.applyTheme() guard let theme = theme else { return } tintColor = theme.tintColor - let textField = subviews.first?.subviews.first { $0 is UITextField } as? UITextField - textField?.backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) } } @@ -141,11 +138,18 @@ extension UITableViewCell { } } +extension UITableViewHeaderFooterView { + override func applyTheme() { + super.applyTheme() + textLabel?.textColor = #colorLiteral(red: 0.431372549, green: 0.431372549, blue: 0.4509803922, alpha: 1) + } +} + extension UITextView { override func applyTheme() { super.applyTheme() guard let theme = theme else { return } - tintColor = theme.tintColor + tintColor = theme.hyperlinkColor } } @@ -213,7 +217,7 @@ extension SLKTextView { super.applyTheme() guard let theme = theme else { return } layer.borderColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.1518210827) - backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.04910321301) + backgroundColor = #colorLiteral(red: 0.497693181, green: 0.494099319, blue: 0.5004472733, alpha: 0.1021854048) textColor = theme.bodyText tintColor = theme.tintColor } From d56fefe50ee323b50e49a29e4aa042d12ca13433 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 7 Jun 2018 00:15:40 +0530 Subject: [PATCH 101/124] Notification view themed --- .../NotificationViewController.swift | 7 ++---- .../NotificationViewController.xib | 7 +++--- Rocket.Chat/Theme/Theme.swift | 13 +++++++++-- .../Views/Notification/NotificationView.swift | 22 ++++++++++++++----- 4 files changed, 34 insertions(+), 15 deletions(-) diff --git a/Rocket.Chat/Controllers/Notification/NotificationViewController.swift b/Rocket.Chat/Controllers/Notification/NotificationViewController.swift index 3c92c0d69e..decddac5e5 100644 --- a/Rocket.Chat/Controllers/Notification/NotificationViewController.swift +++ b/Rocket.Chat/Controllers/Notification/NotificationViewController.swift @@ -51,11 +51,8 @@ final class NotificationViewController: TopTransparentViewController { // MARK: - View controller life cycle methods override func viewDidLoad() { super.viewDidLoad() - view.layer.shadowColor = UIColor.black.cgColor - view.layer.shadowOpacity = 0.3 - view.layer.shadowRadius = 1 - view.layer.shadowOffset = CGSize(width: 0, height: 0) - view.clipsToBounds = true + + ThemeManager.addObserver(self) } override func viewWillAppear(_ animated: Bool) { diff --git a/Rocket.Chat/Controllers/Notification/NotificationViewController.xib b/Rocket.Chat/Controllers/Notification/NotificationViewController.xib index a6808e2383..6c58db07fc 100644 --- a/Rocket.Chat/Controllers/Notification/NotificationViewController.xib +++ b/Rocket.Chat/Controllers/Notification/NotificationViewController.xib @@ -20,7 +20,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -60,7 +60,7 @@ - + @@ -106,6 +106,7 @@ + diff --git a/Rocket.Chat/Theme/Theme.swift b/Rocket.Chat/Theme/Theme.swift index b580325369..d3e975dfb3 100644 --- a/Rocket.Chat/Theme/Theme.swift +++ b/Rocket.Chat/Theme/Theme.swift @@ -34,8 +34,17 @@ class Theme: NSObject { let keyboardAppearence: UIKeyboardAppearance let statusBarStyle: UIStatusBarStyle - static let dark = Appearence(barStyle: .black, keyboardAppearence: .dark, statusBarStyle: .lightContent) - static let light = Appearence(barStyle: .default, keyboardAppearence: .default, statusBarStyle: .default) + static let dark = Appearence( + barStyle: .black, + keyboardAppearence: .dark, + statusBarStyle: .lightContent + ) + + static let light = Appearence( + barStyle: .default, + keyboardAppearence: .default, + statusBarStyle: .default + ) } init(backgroundColor: UIColor, diff --git a/Rocket.Chat/Views/Notification/NotificationView.swift b/Rocket.Chat/Views/Notification/NotificationView.swift index bb02b06f5a..b16b241441 100644 --- a/Rocket.Chat/Views/Notification/NotificationView.swift +++ b/Rocket.Chat/Views/Notification/NotificationView.swift @@ -12,6 +12,7 @@ class NotificationView: UIView { @IBOutlet weak var titleLabel: UILabel! @IBOutlet weak var bodyLabel: UILabel! + @IBOutlet weak var backgroundBlurView: UIVisualEffectView! @IBOutlet weak var grabber: UIView! { didSet { @@ -37,15 +38,26 @@ class NotificationView: UIView { } } - override func awakeFromNib() { - super.awakeFromNib() - self.clipsToBounds = true - } - func displayNotification(title: String, body: String, username: String) { titleLabel.text = title bodyLabel.text = body avatarView.username = username } + private func applyShadow(color: UIColor = .black) { + layer.shadowColor = color.cgColor + layer.shadowOpacity = 0.3 + layer.shadowRadius = 1 + layer.shadowOffset = CGSize(width: 0, height: 0) + } +} + +extension NotificationView { + override func applyTheme() { + guard let theme = theme else { return } + bodyLabel.textColor = theme.bodyText + titleLabel.textColor = theme.titleText + grabber.backgroundColor = theme.titleText.withAlphaComponent(0.18) + applyShadow(color: theme.titleText) + } } From 81673c6407e684e6c3bd0239f4f5f4725c8bbb23 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 7 Jun 2018 00:55:10 +0530 Subject: [PATCH 102/124] Fix search bar theme --- Rocket.Chat/Theme/ThemeableViews.swift | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift index 400927efca..b6b51d849a 100644 --- a/Rocket.Chat/Theme/ThemeableViews.swift +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -59,24 +59,17 @@ extension UILabel { extension UITextField { override func applyTheme() { - super.applyTheme() guard let theme = theme else { return } textColor = theme.titleText tintColor = theme.tintColor keyboardAppearance = theme.appearence.keyboardAppearence + leftView?.tintColor = theme.auxiliaryText if let placeholder = placeholder { - attributedPlaceholder = NSAttributedString(string: placeholder, attributes: [.foregroundColor: theme.mutedAccent]) + attributedPlaceholder = NSAttributedString(string: placeholder, attributes: [.foregroundColor: theme.auxiliaryText]) } } } -extension UISearchBar { - override func applyTheme() { - guard let theme = theme else { return } - tintColor = theme.tintColor - } -} - extension UIActivityIndicatorView { override func applyTheme() { super.applyTheme() From 47d6c22e4a18949cba782dcf066aa75921374384 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 7 Jun 2018 01:04:41 +0530 Subject: [PATCH 103/124] Server list view header separator is no longer hidden --- Rocket.Chat/Views/Subscriptions/ServersListView.swift | 2 ++ Rocket.Chat/Views/Subscriptions/ServersListView.xib | 1 + 2 files changed, 3 insertions(+) diff --git a/Rocket.Chat/Views/Subscriptions/ServersListView.swift b/Rocket.Chat/Views/Subscriptions/ServersListView.swift index 9f31d5e4b3..0e0d0ef685 100644 --- a/Rocket.Chat/Views/Subscriptions/ServersListView.swift +++ b/Rocket.Chat/Views/Subscriptions/ServersListView.swift @@ -17,6 +17,7 @@ final class ServersListView: UIView { private let viewModel = ServersListViewModel() weak var delegate: ServerListViewDelegate? + @IBOutlet weak var titleSeperator: UIView! @IBOutlet weak var labelTitle: UILabel! { didSet { labelTitle.text = viewModel.title @@ -210,5 +211,6 @@ extension ServersListView { guard let theme = theme else { return } buttonAddNewServer.setTitleColor(theme.tintColor, for: .normal) labelTitle.textColor = theme.auxiliaryText + titleSeperator.backgroundColor = theme.mutedAccent } } diff --git a/Rocket.Chat/Views/Subscriptions/ServersListView.xib b/Rocket.Chat/Views/Subscriptions/ServersListView.xib index cef858ccbb..12ce406729 100644 --- a/Rocket.Chat/Views/Subscriptions/ServersListView.xib +++ b/Rocket.Chat/Views/Subscriptions/ServersListView.xib @@ -89,6 +89,7 @@ + From 444bea048daa402acf7cad915d08e3b3ba651311 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Sat, 9 Jun 2018 23:03:47 +0200 Subject: [PATCH 104/124] Removed theming from iOS 10 and below --- .../SubscriptionsViewController.swift | 4 ++-- Rocket.Chat/Theme/ThemeableViews.swift | 16 +++++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift index 7b03c1ecf0..fc0bc7d4eb 100644 --- a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift +++ b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift @@ -468,8 +468,8 @@ extension SubscriptionsViewController { override func applyTheme() { super.applyTheme() guard let theme = view.theme else { return } - filterSeperator.backgroundColor = theme.mutedAccent - sortDescriptionLabel.textColor = theme.auxiliaryText + filterSeperator?.backgroundColor = theme.mutedAccent + sortDescriptionLabel?.textColor = theme.auxiliaryText navigationController?.view.backgroundColor = view.theme?.backgroundColor searchBar?.applyTheme() diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift index b6b51d849a..8307e8fc2e 100644 --- a/Rocket.Chat/Theme/ThemeableViews.swift +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -27,9 +27,11 @@ extension UIView: Themeable { */ func applyTheme() { - guard let theme = theme else { return } - backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) - self.subviews.forEach { $0.applyTheme() } + if #available(iOS 11, *) { + guard let theme = theme else { return } + backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) + self.subviews.forEach { $0.applyTheme() } + } } } @@ -44,8 +46,12 @@ extension UIView: ThemeProvider { */ var theme: Theme? { - guard let superview = superview else { return ThemeManager.theme } - return superview.theme + if #available(iOS 11, *) { + guard let superview = superview else { return ThemeManager.theme } + return superview.theme + } else { + return nil + } } } From dedd5c8e1d4c9d6a2a59574869b1e4e0bf6d1eaa Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Sun, 10 Jun 2018 00:13:05 +0200 Subject: [PATCH 105/124] Removed theme preference from iOS 10 --- .../PreferencesViewController.swift | 2 +- .../Preferences/PreferencesViewModel.swift | 14 +++++- .../Storyboards/Preferences.storyboard | 50 +++++++++---------- 3 files changed, 39 insertions(+), 27 deletions(-) diff --git a/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift b/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift index f4d0e5f5ac..a32b45cc0b 100644 --- a/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift +++ b/Rocket.Chat/Controllers/Preferences/PreferencesViewController.swift @@ -190,7 +190,7 @@ final class PreferencesViewController: BaseTableViewController { cellContactDidPressed() } else if indexPath.row == 1 { cellLanguageDidPressed() - } else if indexPath.row == 2 { + } else if indexPath.row == 3 { cellAppIconDidPressed() } } else if indexPath.section == kSectionInformation { diff --git a/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift b/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift index cac50d4526..eef56be4dc 100644 --- a/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift +++ b/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift @@ -109,7 +109,7 @@ final class PreferencesViewModel { internal func numberOfRowsInSection(_ section: Int) -> Int { switch section { case 0: return 1 - case 1: return (canChangeAppIcon ? 5 : 4) + case 1: return numberOfRowsInSectionOne() case 2: return 3 case 3: return 1 case 4: return (canOpenFLEX ? 1 : 0) @@ -117,6 +117,18 @@ final class PreferencesViewModel { } } + private func numberOfRowsInSectionOne() -> Int { + var totalCount = 5 + if #available(iOS 11, *) { + // Do nothing + } else { + totalCount -= 1 + } + + totalCount -= canChangeAppIcon ? 0 : 1 + return totalCount + } + // MARK: Helpers internal func appInfo(_ info: BundleInfoKey) -> String { diff --git a/Rocket.Chat/Storyboards/Preferences.storyboard b/Rocket.Chat/Storyboards/Preferences.storyboard index 957840d5dc..51555bbea1 100644 --- a/Rocket.Chat/Storyboards/Preferences.storyboard +++ b/Rocket.Chat/Storyboards/Preferences.storyboard @@ -103,68 +103,68 @@ - + - + - + + + - + - + - - - - - + - + - - + From 189a24d298996f07ead2f6f1340c6a899ebabdad Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 11 Jun 2018 18:42:08 +0200 Subject: [PATCH 106/124] Fix merge issues --- Podfile.lock | 2 +- .../Storyboards/Preferences.storyboard | 33 ++----------------- 2 files changed, 4 insertions(+), 31 deletions(-) diff --git a/Podfile.lock b/Podfile.lock index 2715dff187..c4f6511b88 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -127,4 +127,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 0af4673565909cbfda00f61124b8286f6433aff3 -COCOAPODS: 1.5.3 +COCOAPODS: 1.5.2 diff --git a/Rocket.Chat/Storyboards/Preferences.storyboard b/Rocket.Chat/Storyboards/Preferences.storyboard index 492b2d0e0a..a16e9e300a 100644 --- a/Rocket.Chat/Storyboards/Preferences.storyboard +++ b/Rocket.Chat/Storyboards/Preferences.storyboard @@ -106,33 +106,6 @@ - - - - - - - - - - - - - - - @@ -167,14 +140,14 @@ - + - + - - - + diff --git a/Rocket.Chat/Views/Cells/Preferences/ThemePreferenceCell.swift b/Rocket.Chat/Views/Cells/Preferences/ThemePreferenceCell.swift index ab9471b27e..3de759eb2a 100644 --- a/Rocket.Chat/Views/Cells/Preferences/ThemePreferenceCell.swift +++ b/Rocket.Chat/Views/Cells/Preferences/ThemePreferenceCell.swift @@ -25,17 +25,12 @@ class ThemePreferenceCell: UITableViewCell { func setViewsForTheme() { baseColorView.backgroundColor = cellTheme?.backgroundColor auxiliaryColorView.backgroundColor = cellTheme?.bodyText + tintColor = cellTheme?.tintColor if ThemeManager.theme == cellTheme { - checkLabel.isHidden = false + accessoryType = .checkmark } else { - checkLabel.isHidden = true - } - } - - @IBOutlet weak var checkLabel: UILabel! { - didSet { - checkLabel.isHidden = true + accessoryType = .none } } From 73375f20f672aae68e65b39adae4217ea8a049c4 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Mon, 11 Jun 2018 22:31:18 +0200 Subject: [PATCH 112/124] Theme applied to SubscriptionSectionView --- .../Views/Sections/SubscriptionSectionView.swift | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Rocket.Chat/Views/Sections/SubscriptionSectionView.swift b/Rocket.Chat/Views/Sections/SubscriptionSectionView.swift index 8af9857bae..89dda93dcb 100644 --- a/Rocket.Chat/Views/Sections/SubscriptionSectionView.swift +++ b/Rocket.Chat/Views/Sections/SubscriptionSectionView.swift @@ -17,3 +17,14 @@ final class SubscriptionSectionView: UIView { } } + +// MARK: Themeable + +extension SubscriptionSectionView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + + labelTitle.textColor = theme.bodyText + } +} From 5382781ff59391c008b5dadfae4cb3fae09e0a40 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Tue, 12 Jun 2018 20:59:43 +0200 Subject: [PATCH 113/124] Updated cocoapods --- Podfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Podfile.lock b/Podfile.lock index c4f6511b88..2715dff187 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -127,4 +127,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 0af4673565909cbfda00f61124b8286f6433aff3 -COCOAPODS: 1.5.2 +COCOAPODS: 1.5.3 From 97f9302850e04b2068fb6168bd8dabfeef08f1df Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Tue, 12 Jun 2018 22:39:25 +0200 Subject: [PATCH 114/124] Minor color fixes --- Rocket.Chat.xcodeproj/project.pbxproj | 4 +++ .../ChangeAppIconViewController.swift | 14 ++++++++++ .../Storyboards/Preferences.storyboard | 4 ++- Rocket.Chat/Theme/ThemeableViews.swift | 2 +- .../Preferences/EditProfileStatusCell.swift | 26 +++++++++++++++++++ 5 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 Rocket.Chat/Views/Cells/Preferences/EditProfileStatusCell.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 88e96c4128..cd4fffe608 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -119,6 +119,7 @@ 33F73B2D2073BDF400F03F29 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2B2073BDF400F03F29 /* NotificationView.swift */; }; 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; 33FB9D3E20CEF610005AF504 /* SubscriptionsSortingSeparatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33FB9D3D20CEF610005AF504 /* SubscriptionsSortingSeparatorView.swift */; }; + 33FB9D4220D06492005AF504 /* EditProfileStatusCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33FB9D4120D06492005AF504 /* EditProfileStatusCell.swift */; }; 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; @@ -843,6 +844,7 @@ 33F73B2B2073BDF400F03F29 /* NotificationView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; 33FB9D3D20CEF610005AF504 /* SubscriptionsSortingSeparatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionsSortingSeparatorView.swift; sourceTree = ""; }; + 33FB9D4120D06492005AF504 /* EditProfileStatusCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileStatusCell.swift; sourceTree = ""; }; 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; @@ -1768,6 +1770,7 @@ 4153E80320504BC800FBC26B /* Preferences */ = { isa = PBXGroup; children = ( + 33FB9D4120D06492005AF504 /* EditProfileStatusCell.swift */, 4153E80420504BE700FBC26B /* ReusableViewText.swift */, 412EF3C52050507C001689A3 /* ReusableViewText.xib */, ); @@ -4017,6 +4020,7 @@ 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */, 8041C04620290A48007E21FA /* RCEmojiKitLocalizable.swift in Sources */, 414EFF921E54FE69004F001F /* AuthExtensions.swift in Sources */, + 33FB9D4220D06492005AF504 /* EditProfileStatusCell.swift in Sources */, 414A1FFA1D46395400093E10 /* SocketManager.swift in Sources */, 800FCD4E1F728EC800D9A692 /* ChannelInfoDetailCell.swift in Sources */, 4151B45C1E2D1E5800F8AA1B /* AuthSettingsModelMapping.swift in Sources */, diff --git a/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconViewController.swift b/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconViewController.swift index 53f75b0642..0a2be5fc23 100644 --- a/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconViewController.swift +++ b/Rocket.Chat/Controllers/Preferences/ChangeAppIcon/ChangeAppIconViewController.swift @@ -112,3 +112,17 @@ extension ChangeAppIconViewController: UICollectionViewDelegate { } } + +// MARK: Themeable + +extension ChangeAppIconViewController { + override func applyTheme() { + super.applyTheme() + guard let theme = view.theme else { return } + + switch theme { + case .dark, .black: view.backgroundColor = theme.focusedBackground + default: view.backgroundColor = #colorLiteral(red: 0.937, green: 0.937, blue: 0.957, alpha: 1) + } + } +} diff --git a/Rocket.Chat/Storyboards/Preferences.storyboard b/Rocket.Chat/Storyboards/Preferences.storyboard index 41715f00a1..9ed9a673c4 100644 --- a/Rocket.Chat/Storyboards/Preferences.storyboard +++ b/Rocket.Chat/Storyboards/Preferences.storyboard @@ -393,7 +393,7 @@ - + @@ -425,6 +425,8 @@ + + diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift index 8307e8fc2e..1caca3640e 100644 --- a/Rocket.Chat/Theme/ThemeableViews.swift +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -133,7 +133,7 @@ extension UITableViewCell { guard let theme = theme else { return } backgroundColor = theme.backgroundColor.withAlphaComponent(backgroundColor?.cgColor.alpha ?? 0.0) detailTextLabel?.textColor = theme.auxiliaryText - tintColor = theme.auxiliaryText + tintColor = theme.tintColor } } diff --git a/Rocket.Chat/Views/Cells/Preferences/EditProfileStatusCell.swift b/Rocket.Chat/Views/Cells/Preferences/EditProfileStatusCell.swift new file mode 100644 index 0000000000..98aca6eb1c --- /dev/null +++ b/Rocket.Chat/Views/Cells/Preferences/EditProfileStatusCell.swift @@ -0,0 +1,26 @@ +// +// EditProfileStatusCell.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 6/12/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class EditProfileStatusCell: UITableViewCell { + @IBOutlet weak var titleLabel: UILabel! + @IBOutlet weak var detailLabel: UILabel! +} + +// MARK: Themeable + +extension EditProfileStatusCell { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + + titleLabel.textColor = theme.titleText + detailLabel.textColor = theme.auxiliaryText + } +} From 42b42e3d963c2f80777915e02e3b91798a121749 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Tue, 12 Jun 2018 22:43:11 +0200 Subject: [PATCH 115/124] Fix theme on StatusTableViewController --- .../Preferences/Profile/StatusTableViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rocket.Chat/Controllers/Preferences/Profile/StatusTableViewController.swift b/Rocket.Chat/Controllers/Preferences/Profile/StatusTableViewController.swift index c1fe4eb5f8..c5e7167681 100644 --- a/Rocket.Chat/Controllers/Preferences/Profile/StatusTableViewController.swift +++ b/Rocket.Chat/Controllers/Preferences/Profile/StatusTableViewController.swift @@ -8,7 +8,7 @@ import UIKit -final class StatusTableViewController: UITableViewController { +final class StatusTableViewController: BaseTableViewController { let viewModel = StatusViewModel() From 8835437407d4bef786d33fcdc824dfc6cf2ddc51 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 13 Jun 2018 08:00:33 +0200 Subject: [PATCH 116/124] Added controlText color as a new grey color for text --- .../External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift | 1 + .../RCEmojiKit/Views/Reaction/ReactorListView.swift | 1 + Rocket.Chat/Theme/Theme.swift | 6 ++++++ Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift | 2 +- .../Views/Cells/Subscription/SubscriptionSortingCell.swift | 4 ++-- 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift index bb5f80c96a..b04de22b90 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/EmojiPicker/EmojiPicker.swift @@ -353,6 +353,7 @@ extension EmojiPicker { backgroundColor: theme.focusedBackground, titleText: theme.titleText, bodyText: theme.bodyText, + controlText: theme.controlText, auxiliaryText: theme.auxiliaryText, tintColor: theme.tintColor, hyperlinkColor: theme.hyperlinkColor, diff --git a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift index 7ddc395d26..d1a74750ba 100644 --- a/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift +++ b/Rocket.Chat/External/RCEmojiKit/Views/Reaction/ReactorListView.swift @@ -170,6 +170,7 @@ extension ReactorListView { backgroundColor: theme.focusedBackground, titleText: theme.titleText, bodyText: theme.bodyText, + controlText: theme.controlText, auxiliaryText: theme.auxiliaryText, tintColor: theme.tintColor, hyperlinkColor: theme.hyperlinkColor, diff --git a/Rocket.Chat/Theme/Theme.swift b/Rocket.Chat/Theme/Theme.swift index d3e975dfb3..f23888e010 100644 --- a/Rocket.Chat/Theme/Theme.swift +++ b/Rocket.Chat/Theme/Theme.swift @@ -20,6 +20,7 @@ class Theme: NSObject { let backgroundColor: UIColor let titleText: UIColor let bodyText: UIColor + let controlText: UIColor let auxiliaryText: UIColor let tintColor: UIColor let hyperlinkColor: UIColor @@ -50,6 +51,7 @@ class Theme: NSObject { init(backgroundColor: UIColor, titleText: UIColor, bodyText: UIColor, + controlText: UIColor, auxiliaryText: UIColor, tintColor: UIColor, hyperlinkColor: UIColor, @@ -62,6 +64,7 @@ class Theme: NSObject { self.backgroundColor = backgroundColor self.titleText = titleText self.bodyText = bodyText + self.controlText = controlText self.auxiliaryText = auxiliaryText self.tintColor = tintColor self.hyperlinkColor = hyperlinkColor @@ -82,6 +85,7 @@ class Theme: NSObject { backgroundColor: #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1), titleText: #colorLiteral(red: 0.05143930763, green: 0.0585193634, blue: 0.07106169313, alpha: 1), bodyText: #colorLiteral(red: 0.1843137255, green: 0.2039215686, blue: 0.2392156863, alpha: 1), + controlText: #colorLiteral(red: 0.3294117647, green: 0.3450980392, blue: 0.368627451, alpha: 1), auxiliaryText: #colorLiteral(red: 0.6117647059, green: 0.6352941176, blue: 0.6588235294, alpha: 1), tintColor: .RCBlue(), hyperlinkColor: .RCBlue(), @@ -96,6 +100,7 @@ class Theme: NSObject { backgroundColor: #colorLiteral(red: 0.06482539596, green: 0.06587358546, blue: 0.06711885095, alpha: 1), titleText: #colorLiteral(red: 0.9785086513, green: 0.9786720872, blue: 0.9784870744, alpha: 1), bodyText: #colorLiteral(red: 0.9111283446, green: 0.9229556015, blue: 0.9294117647, alpha: 1), + controlText: #colorLiteral(red: 0.8549193462, green: 0.8697612629, blue: 0.903159703, alpha: 1), auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.7224261515, blue: 0.7773035386, alpha: 1), tintColor: #colorLiteral(red: 0.1176899746, green: 0.6068716645, blue: 0.9971964955, alpha: 1), hyperlinkColor: #colorLiteral(red: 0.4039215686, green: 0.7333333333, blue: 1, alpha: 1), @@ -110,6 +115,7 @@ class Theme: NSObject { backgroundColor: #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1), titleText: #colorLiteral(red: 0.9785086513, green: 0.9786720872, blue: 0.9784870744, alpha: 1), bodyText: #colorLiteral(red: 0.9111283446, green: 0.9229556015, blue: 0.9294117647, alpha: 1), + controlText: #colorLiteral(red: 0.8549193462, green: 0.8697612629, blue: 0.903159703, alpha: 1), auxiliaryText: #colorLiteral(red: 0.6980392157, green: 0.7224261515, blue: 0.7773035386, alpha: 1), tintColor: #colorLiteral(red: 0.1176899746, green: 0.6068716645, blue: 0.9971964955, alpha: 1), hyperlinkColor: #colorLiteral(red: 0.4039215686, green: 0.7333333333, blue: 1, alpha: 1), diff --git a/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift b/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift index e39d23859e..040cf98199 100644 --- a/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift +++ b/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift @@ -204,7 +204,7 @@ extension SubscriptionCell { labelName.textColor = theme.titleText labelUnread.backgroundColor = theme.tintColor labelUnread.textColor = theme.backgroundColor - labelLastMessage.textColor = theme.auxiliaryText + labelLastMessage.textColor = theme.controlText iconRoom.tintColor = theme.auxiliaryText if let subscription = self.subscription, subscription.unread > 0 || subscription.alert { diff --git a/Rocket.Chat/Views/Cells/Subscription/SubscriptionSortingCell.swift b/Rocket.Chat/Views/Cells/Subscription/SubscriptionSortingCell.swift index 51daa74650..abacd78693 100644 --- a/Rocket.Chat/Views/Cells/Subscription/SubscriptionSortingCell.swift +++ b/Rocket.Chat/Views/Cells/Subscription/SubscriptionSortingCell.swift @@ -66,8 +66,8 @@ extension SubscriptionSortingCell { super.applyTheme() guard let theme = theme else { return } - labelTitle.textColor = theme.bodyText - imageViewIcon.tintColor = theme.bodyText + labelTitle.textColor = theme.controlText + imageViewIcon.tintColor = theme.controlText tintColor = theme.tintColor switch isHighlighted { From 3e19b63acf990449ac13483732772a050b2c85a4 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 13 Jun 2018 08:22:52 +0200 Subject: [PATCH 117/124] Changed the detail text color for ServerInfoCell --- Rocket.Chat.xcodeproj/project.pbxproj | 4 ++++ .../Storyboards/Preferences.storyboard | 2 +- .../Cells/Preferences/ServerInfoCell.swift | 22 +++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 Rocket.Chat/Views/Cells/Preferences/ServerInfoCell.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index cd4fffe608..7a9298ced5 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -120,6 +120,7 @@ 33F73B302073F24200F03F29 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */; }; 33FB9D3E20CEF610005AF504 /* SubscriptionsSortingSeparatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33FB9D3D20CEF610005AF504 /* SubscriptionsSortingSeparatorView.swift */; }; 33FB9D4220D06492005AF504 /* EditProfileStatusCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33FB9D4120D06492005AF504 /* EditProfileStatusCell.swift */; }; + 33FB9D4420D0EE7F005AF504 /* ServerInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33FB9D4320D0EE7F005AF504 /* ServerInfoCell.swift */; }; 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; @@ -845,6 +846,7 @@ 33F73B2F2073F24200F03F29 /* NotificationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewController.swift; sourceTree = ""; }; 33FB9D3D20CEF610005AF504 /* SubscriptionsSortingSeparatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionsSortingSeparatorView.swift; sourceTree = ""; }; 33FB9D4120D06492005AF504 /* EditProfileStatusCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileStatusCell.swift; sourceTree = ""; }; + 33FB9D4320D0EE7F005AF504 /* ServerInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerInfoCell.swift; sourceTree = ""; }; 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; @@ -1772,6 +1774,7 @@ children = ( 33FB9D4120D06492005AF504 /* EditProfileStatusCell.swift */, 4153E80420504BE700FBC26B /* ReusableViewText.swift */, + 33FB9D4320D0EE7F005AF504 /* ServerInfoCell.swift */, 412EF3C52050507C001689A3 /* ReusableViewText.xib */, ); path = Preferences; @@ -3878,6 +3881,7 @@ 990FF6D620740C79007B4A53 /* RoomMentionsRequest.swift in Sources */, 8039441820AF620C002F317A /* ResourceWithError.swift in Sources */, 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */, + 33FB9D4420D0EE7F005AF504 /* ServerInfoCell.swift in Sources */, 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */, 41F3704D20A31A3E00C5449E /* UIViewControllerExtension.swift in Sources */, 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */, diff --git a/Rocket.Chat/Storyboards/Preferences.storyboard b/Rocket.Chat/Storyboards/Preferences.storyboard index 9ed9a673c4..6a5f549355 100644 --- a/Rocket.Chat/Storyboards/Preferences.storyboard +++ b/Rocket.Chat/Storyboards/Preferences.storyboard @@ -205,7 +205,7 @@ - + diff --git a/Rocket.Chat/Views/Cells/Preferences/ServerInfoCell.swift b/Rocket.Chat/Views/Cells/Preferences/ServerInfoCell.swift new file mode 100644 index 0000000000..316eeb6cd8 --- /dev/null +++ b/Rocket.Chat/Views/Cells/Preferences/ServerInfoCell.swift @@ -0,0 +1,22 @@ +// +// ServerInfoCell.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 6/13/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import Foundation + +class ServerInfoCell: UITableViewCell { } + +// MARK: Themeable + +extension ServerInfoCell { + override func applyTheme() { + super.applyTheme() + + textLabel?.textColor = theme?.titleText + detailTextLabel?.textColor = theme?.titleText + } +} From 263eb2c425d2963ba3f15efc5b2e7cba1bb53753 Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 13 Jun 2018 08:51:08 +0200 Subject: [PATCH 118/124] Improve colors on the chat view controller --- Rocket.Chat/Helpers/MessageTextFontAttributes.swift | 2 +- Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Rocket.Chat/Helpers/MessageTextFontAttributes.swift b/Rocket.Chat/Helpers/MessageTextFontAttributes.swift index fe8a354aad..df39ae88cf 100644 --- a/Rocket.Chat/Helpers/MessageTextFontAttributes.swift +++ b/Rocket.Chat/Helpers/MessageTextFontAttributes.swift @@ -13,7 +13,7 @@ struct MessageTextFontAttributes { static let defaultFontSize = CGFloat(15) static func defaultFontColor(for theme: Theme? = nil) -> UIColor { - return theme?.bodyText ?? ThemeManager.theme.bodyText + return theme?.controlText ?? ThemeManager.theme.controlText } static func systemFontColor(for theme: Theme? = ThemeManager.theme) -> UIColor { diff --git a/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift b/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift index a28d755709..b1350f395f 100644 --- a/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift +++ b/Rocket.Chat/Views/Cells/Chat/ChatMessageTextView.swift @@ -134,5 +134,6 @@ extension ChatMessageTextView { guard let theme = theme else { return } viewLeftBorder.backgroundColor = theme.auxiliaryText labelDescription.textColor = theme.auxiliaryText + labelTitle.textColor = theme.controlText } } From c9b9f0c31df862f6c4ecaf2266000b145f343f1f Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 13 Jun 2018 15:10:30 +0200 Subject: [PATCH 119/124] Merge develop --- .../Preferences/PreferencesViewModel.swift | 8 +++++--- Rocket.Chat/Storyboards/Preferences.storyboard | 14 +++++++------- .../Preferences/PreferencesViewModelSpec.swift | 14 ++++++++------ 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift b/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift index 5bbcd38bcd..5cf43d6bd9 100644 --- a/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift +++ b/Rocket.Chat/Controllers/Preferences/PreferencesViewModel.swift @@ -135,9 +135,11 @@ final class PreferencesViewModel { switch section { case 0: return 1 case 1: return numberOfRowsInSectionOne() - case 2: return 3 - case 3: return 1 - case 4: return (canOpenFLEX ? 1 : 0) + case 2: return canViewAdministrationPanel ? 1 : 0 + case 3: return 3 + case 4: return 1 + case 5: return 1 + case 6: return canOpenFLEX ? 1 : 0 default: return 0 } } diff --git a/Rocket.Chat/Storyboards/Preferences.storyboard b/Rocket.Chat/Storyboards/Preferences.storyboard index 5b48b627dc..b79650f991 100644 --- a/Rocket.Chat/Storyboards/Preferences.storyboard +++ b/Rocket.Chat/Storyboards/Preferences.storyboard @@ -193,7 +193,7 @@ - + @@ -210,7 +210,7 @@ - + @@ -227,7 +227,7 @@ - + @@ -256,7 +256,7 @@ We track crashes on Fabric, but this is optional for you if you don't want us to track it. Please keep in mind that this information help us understading the crashes that you are having while using the app. - + @@ -309,8 +309,8 @@ - - + + @@ -405,7 +405,7 @@ - + diff --git a/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift b/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift index f65d4b89d3..9a82ecfc7c 100644 --- a/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift +++ b/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift @@ -61,12 +61,14 @@ class PreferencesViewModelSpec: XCTestCase { } func testNumberOfRowsInSection() { - XCTAssertTrue(model.numberOfSections == 5, "incorrect sections number") - XCTAssertTrue(model.numberOfRowsInSection(0) == 1, "incorrect rows number") - XCTAssertTrue(model.numberOfRowsInSection(1) == 5, "incorrect rows number") - XCTAssertTrue(model.numberOfRowsInSection(2) == 3, "incorrect rows number") - XCTAssertTrue(model.numberOfRowsInSection(3) == 1, "incorrect rows number") - XCTAssertTrue(model.numberOfRowsInSection(4) == 1, "incorrect rows number") + XCTAssertEqual(model.numberOfSections, 7) + XCTAssertEqual(model.numberOfRowsInSection(0), 1) + XCTAssertEqual(model.numberOfRowsInSection(1), 4) + XCTAssertEqual(model.numberOfRowsInSection(2), 1) + XCTAssertEqual(model.numberOfRowsInSection(3), 3) + XCTAssertEqual(model.numberOfRowsInSection(4), 1) + XCTAssertEqual(model.numberOfRowsInSection(5), 1) + XCTAssertEqual(model.numberOfRowsInSection(6), 1) } func testStringsOverall() { From a57cc498a4c18dd6124a980b9b3eecb7e99c4b0d Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 13 Jun 2018 15:32:42 +0200 Subject: [PATCH 120/124] Scroll view indicators themed --- Rocket.Chat/Theme/Theme.swift | 7 +++++-- Rocket.Chat/Theme/ThemeableViews.swift | 8 ++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Rocket.Chat/Theme/Theme.swift b/Rocket.Chat/Theme/Theme.swift index f23888e010..fdc71c3f0a 100644 --- a/Rocket.Chat/Theme/Theme.swift +++ b/Rocket.Chat/Theme/Theme.swift @@ -34,17 +34,20 @@ class Theme: NSObject { let barStyle: UIBarStyle let keyboardAppearence: UIKeyboardAppearance let statusBarStyle: UIStatusBarStyle + let scrollViewIndicatorStyle: UIScrollViewIndicatorStyle static let dark = Appearence( barStyle: .black, keyboardAppearence: .dark, - statusBarStyle: .lightContent + statusBarStyle: .lightContent, + scrollViewIndicatorStyle: .white ) static let light = Appearence( barStyle: .default, keyboardAppearence: .default, - statusBarStyle: .default + statusBarStyle: .default, + scrollViewIndicatorStyle: .black ) } diff --git a/Rocket.Chat/Theme/ThemeableViews.swift b/Rocket.Chat/Theme/ThemeableViews.swift index 1caca3640e..896c597e9f 100644 --- a/Rocket.Chat/Theme/ThemeableViews.swift +++ b/Rocket.Chat/Theme/ThemeableViews.swift @@ -198,6 +198,14 @@ extension UITabBar { } } +extension UIScrollView { + override func applyTheme() { + super.applyTheme() + guard let theme = theme else { return } + indicatorStyle = theme.appearence.scrollViewIndicatorStyle + } +} + extension SLKTextInputbar { override func applyTheme() { super.applyTheme() From 13525ed6c4d9e644f965f92efeb455a75157b8cc Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 13 Jun 2018 15:37:49 +0200 Subject: [PATCH 121/124] Fix tests --- .../Preferences/PreferencesViewModelSpec.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift b/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift index 9a82ecfc7c..d44222b3d2 100644 --- a/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift +++ b/Rocket.ChatTests/Preferences/PreferencesViewModelSpec.swift @@ -63,7 +63,13 @@ class PreferencesViewModelSpec: XCTestCase { func testNumberOfRowsInSection() { XCTAssertEqual(model.numberOfSections, 7) XCTAssertEqual(model.numberOfRowsInSection(0), 1) - XCTAssertEqual(model.numberOfRowsInSection(1), 4) + + if #available(iOS 11, *) { + XCTAssertEqual(model.numberOfRowsInSection(1), 5) + } else { + XCTAssertEqual(model.numberOfRowsInSection(1), 4) + } + XCTAssertEqual(model.numberOfRowsInSection(2), 1) XCTAssertEqual(model.numberOfRowsInSection(3), 3) XCTAssertEqual(model.numberOfRowsInSection(4), 1) From e3274459421c545b72cc0495f73c7a7af2e1400f Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Wed, 13 Jun 2018 15:50:38 +0200 Subject: [PATCH 122/124] Fix minor theming issues --- .../Icons/Subscriptions/Lock.imageset/Contents.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Lock.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Lock.imageset/Contents.json index a063e88407..51c7e2e241 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Lock.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Subscriptions/Lock.imageset/Contents.json @@ -19,5 +19,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file From cbaa8515e80f997efb178a4b5ef60bddad36d03e Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 14 Jun 2018 09:00:46 +0200 Subject: [PATCH 123/124] Merge branch 'develop' into themeable-rc --- .../optionsHide.imageset/Contents.json | 23 + .../optionsHide.imageset/optionsHide.png | Bin 0 -> 862 bytes .../optionsHide.imageset/optionsHide@2x.png | Bin 0 -> 1798 bytes .../optionsHide.imageset/optionsHide@3x.png | Bin 0 -> 2971 bytes Rocket.Chat.xcodeproj/project.pbxproj | 148 +- Rocket.Chat/API/Clients/InfoClient.swift | 4 +- .../General/LoginServicesRequest.swift | 7 +- Rocket.Chat/AppDelegate.swift | 6 + .../iconFacebook.imageset/Contents.json | 23 + .../iconFacebook.imageset/iconFacebook.png | Bin 0 -> 495 bytes .../iconFacebook.imageset/iconFacebook@2x.png | Bin 0 -> 772 bytes .../iconFacebook.imageset/iconFacebook@3x.png | Bin 0 -> 1101 bytes .../iconGithub.imageset/Contents.json | 23 + .../iconGithub.imageset/iconGithub.png | Bin 0 -> 911 bytes .../iconGithub.imageset/iconGithub@2x.png | Bin 0 -> 1994 bytes .../iconGithub.imageset/iconGithub@3x.png | Bin 0 -> 3029 bytes .../onboarding.imageset/Contents.json | 23 + .../onboarding.imageset/onboarding.png | Bin 0 -> 48612 bytes .../onboarding.imageset/onboarding@2x.png | Bin 0 -> 113456 bytes .../onboarding.imageset/onboarding@3x.png | Bin 0 -> 181275 bytes .../optionsHide.imageset/Contents.json | 23 + .../optionsHide.imageset/optionsHide.png | Bin 0 -> 862 bytes .../optionsHide.imageset/optionsHide@2x.png | Bin 0 -> 1798 bytes .../optionsHide.imageset/optionsHide@3x.png | Bin 0 -> 2971 bytes .../server.imageset/Contents.json | 23 + .../server.imageset/server.png | Bin 0 -> 21299 bytes .../server.imageset/server@2x.png | Bin 0 -> 46941 bytes .../server.imageset/server@3x.png | Bin 0 -> 74925 bytes .../Auth/AuthTableViewController.swift | 331 +++ ...ViewControllerAuthenticationHandler.swift} | 8 +- ...TableViewControllerConnectionHandler.swift | 22 + ...AuthTableViewControllerLoginServices.swift | 112 + .../Controllers/Auth/AuthViewController.swift | 374 ---- .../AuthViewControllerConnectionHandler.swift | 20 - .../AuthViewControllerLoginServices.swift | 193 -- .../Auth/ConnectServerViewController.swift | 172 +- .../Auth/LegalTableViewController.swift | 74 + .../Auth/LoginTableViewController.swift | 345 +++ ...eViewControllerAuthenticationHandler.swift | 76 + ...RegisterUsernameTableViewController.swift} | 56 +- .../Auth/SignupViewController.swift | 71 +- .../SignupViewControllerCustomFields.swift | 154 +- ...=> TwoFactorAuthTableViewController.swift} | 63 +- .../Auth/WelcomeViewController.swift | 127 ++ .../Base/BaseNavigationController.swift | 55 +- .../Base/BaseTableViewController.swift | 24 + .../Controllers/Base/BaseViewController.swift | 27 +- .../Base/MainSplitViewController.swift | 22 +- .../Chat/ChannelActionsViewController.swift | 8 +- .../Controllers/Chat/ChatViewController.swift | 14 +- .../SubscriptionsViewController.swift | 52 +- .../Models/SubscriptionExtensions.swift | 32 + Rocket.Chat/Extensions/StringExtensions.swift | 15 + Rocket.Chat/Extensions/UIColorExtension.swift | 32 + .../Helpers/VoiceOver/VOTextField.swift | 2 +- Rocket.Chat/Info.plist | 2 +- Rocket.Chat/Managers/AppManager.swift | 1 + Rocket.Chat/Managers/LogManager.swift | 3 +- Rocket.Chat/Managers/NetworkManager.swift | 16 + .../Socket/Response/SocketHandlers.swift | 19 +- .../Managers/Socket/SocketManager.swift | 44 +- Rocket.Chat/Managers/WindowManager.swift | 9 +- Rocket.Chat/Models/Auth.swift | 194 -- Rocket.Chat/Models/LoginService.swift | 12 + .../Mapping/AuthSettingsModelMapping.swift | 4 +- Rocket.Chat/Models/Subscription.swift | 236 -- Rocket.Chat/Models/User.swift | 137 -- .../Auth/facebook.imageset/Contents.json | 6 +- .../Auth/facebook.imageset/facebook@1x.png | Bin 173 -> 0 bytes .../Auth/facebook.imageset/facebook@2x.png | Bin 256 -> 0 bytes .../Auth/facebook.imageset/facebook@3x.png | Bin 324 -> 0 bytes .../Auth/facebook.imageset/iconFacebook.png | Bin 0 -> 495 bytes .../facebook.imageset/iconFacebook@2x.png | Bin 0 -> 772 bytes .../facebook.imageset/iconFacebook@3x.png | Bin 0 -> 1101 bytes .../Icons/Auth/github.imageset/Contents.json | 6 +- .../Icons/Auth/github.imageset/github@1x.png | Bin 377 -> 0 bytes .../Icons/Auth/github.imageset/github@2x.png | Bin 715 -> 0 bytes .../Icons/Auth/github.imageset/github@3x.png | Bin 1044 -> 0 bytes .../Icons/Auth/github.imageset/iconGithub.png | Bin 0 -> 911 bytes .../Auth/github.imageset/iconGithub@2x.png | Bin 0 -> 1994 bytes .../Auth/github.imageset/iconGithub@3x.png | Bin 0 -> 3029 bytes .../Icons/Auth/gitlab.imageset/Contents.json | 6 +- .../Icons/Auth/gitlab.imageset/gitlab@1x.png | Bin 424 -> 0 bytes .../Icons/Auth/gitlab.imageset/gitlab@2x.png | Bin 703 -> 0 bytes .../Icons/Auth/gitlab.imageset/gitlab@3x.png | Bin 979 -> 0 bytes .../Icons/Auth/gitlab.imageset/iconGitlab.png | Bin 0 -> 992 bytes .../Auth/gitlab.imageset/iconGitlab@2x.png | Bin 0 -> 2206 bytes .../Auth/gitlab.imageset/iconGitlab@3x.png | Bin 0 -> 3432 bytes .../Auth/google.imageset/Auth-Google.png | Bin 374 -> 0 bytes .../Auth/google.imageset/Auth-Google@2x.png | Bin 794 -> 0 bytes .../Auth/google.imageset/Auth-Google@3x.png | Bin 1164 -> 0 bytes .../Icons/Auth/google.imageset/Contents.json | 6 +- .../Icons/Auth/google.imageset/iconGoogle.png | Bin 0 -> 925 bytes .../Auth/google.imageset/iconGoogle@2x.png | Bin 0 -> 1849 bytes .../Auth/google.imageset/iconGoogle@3x.png | Bin 0 -> 2841 bytes .../Auth/keyBlack.imageset/Contents.json | 23 + .../Icons/Auth/keyBlack.imageset/keyBlack.png | Bin 0 -> 784 bytes .../Auth/keyBlack.imageset/keyBlack@2x.png | Bin 0 -> 1757 bytes .../Auth/keyBlack.imageset/keyBlack@3x.png | Bin 0 -> 2579 bytes .../Auth/linkedin.imageset/Contents.json | 6 +- .../Auth/linkedin.imageset/iconLinkedin.png | Bin 0 -> 592 bytes .../linkedin.imageset/iconLinkedin@2x.png | Bin 0 -> 995 bytes .../linkedin.imageset/iconLinkedin@3x.png | Bin 0 -> 1489 bytes .../Auth/linkedin.imageset/linkedin@1x.png | Bin 231 -> 0 bytes .../Auth/linkedin.imageset/linkedin@2x.png | Bin 382 -> 0 bytes .../Auth/linkedin.imageset/linkedin@3x.png | Bin 524 -> 0 bytes .../Auth/mailBlack.imageset/Contents.json | 23 + .../Auth/mailBlack.imageset/mailBlack.png | Bin 0 -> 442 bytes .../Auth/mailBlack.imageset/mailBlack@2x.png | Bin 0 -> 850 bytes .../Auth/mailBlack.imageset/mailBlack@3x.png | Bin 0 -> 1199 bytes .../Icons/Auth/more.imageset/Contents.json | 23 + .../Icons/Auth/more.imageset/more.png | Bin 0 -> 147 bytes .../Icons/Auth/more.imageset/more@2x.png | Bin 0 -> 227 bytes .../Icons/Auth/more.imageset/more@3x.png | Bin 0 -> 347 bytes .../Auth/userBlack.imageset/Contents.json | 23 + .../Auth/userBlack.imageset/userBlack.png | Bin 0 -> 596 bytes .../Auth/userBlack.imageset/userBlack@2x.png | Bin 0 -> 1388 bytes .../Auth/userBlack.imageset/userBlack@3x.png | Bin 0 -> 2115 bytes .../Auth/usernameBlack.imageset/Contents.json | 23 + .../usernameBlack.imageset/usernameBlack.png | Bin 0 -> 706 bytes .../usernameBlack@2x.png | Bin 0 -> 1577 bytes .../usernameBlack@3x.png | Bin 0 -> 2407 bytes .../Auth/wordpress.imageset/Contents.json | 6 +- .../Auth/wordpress.imageset/iconWordpress.png | Bin 0 -> 1427 bytes .../wordpress.imageset/iconWordpress@2x.png | Bin 0 -> 3557 bytes .../wordpress.imageset/iconWordpress@3x.png | Bin 0 -> 5833 bytes .../Auth/wordpress.imageset/wordpress@1x.png | Bin 473 -> 0 bytes .../Auth/wordpress.imageset/wordpress@2x.png | Bin 1456 -> 0 bytes .../Auth/wordpress.imageset/wordpress@3x.png | Bin 2111 -> 0 bytes .../connectServer.imageset/Contents.json | 23 + .../connectServer.imageset/connectServer.png | Bin 0 -> 1021 bytes .../connectServer@2x.png | Bin 0 -> 2044 bytes .../connectServer@3x.png | Bin 0 -> 3080 bytes .../Contents.json | 23 + .../disclosureIndicator.png | Bin 0 -> 312 bytes .../disclosureIndicator@2x.png | Bin 0 -> 486 bytes .../disclosureIndicator@3x.png | Bin 0 -> 684 bytes .../Icons/logoSmall.imageset/Contents.json | 23 + .../Icons/logoSmall.imageset/logoSmall.png | Bin 0 -> 1365 bytes .../Icons/logoSmall.imageset/logoSmall@2x.png | Bin 0 -> 2664 bytes .../Icons/logoSmall.imageset/logoSmall@3x.png | Bin 0 -> 4165 bytes .../Icons/onboarding.imageset/Contents.json | 23 + .../Icons/onboarding.imageset/onboarding.png | Bin 0 -> 48612 bytes .../onboarding.imageset/onboarding@2x.png | Bin 0 -> 113456 bytes .../onboarding.imageset/onboarding@3x.png | Bin 0 -> 181275 bytes .../Icons/optionsHide.imageset/Contents.json | 23 + .../optionsHide.imageset/optionsHide.png | Bin 0 -> 862 bytes .../optionsHide.imageset/optionsHide@2x.png | Bin 0 -> 1798 bytes .../optionsHide.imageset/optionsHide@3x.png | Bin 0 -> 2971 bytes .../Icons/plusWhite.imageset/Contents.json | 23 + .../Icons/plusWhite.imageset/plusWhite.png | Bin 0 -> 223 bytes .../Icons/plusWhite.imageset/plusWhite@2x.png | Bin 0 -> 371 bytes .../Icons/plusWhite.imageset/plusWhite@3x.png | Bin 0 -> 527 bytes .../Icons/server.imageset/Contents.json | 23 + .../Icons/server.imageset/server.png | Bin 0 -> 21299 bytes .../Icons/server.imageset/server@2x.png | Bin 0 -> 46941 bytes .../Icons/server.imageset/server@3x.png | Bin 0 -> 74925 bytes .../Resources/cs.lproj/Localizable.strings | 21 +- .../Resources/de.lproj/Localizable.strings | 19 + .../Resources/el.lproj/Localizable.strings | 19 + .../Resources/en.lproj/Localizable.strings | 19 + .../Resources/es.lproj/Localizable.strings | 19 + .../Resources/fr.lproj/Localizable.strings | 19 + .../Resources/pl.lproj/Localizable.strings | 19 + .../Resources/pt-BR.lproj/Localizable.strings | 19 + .../Resources/ru.lproj/Localizable.strings | 19 + Rocket.Chat/Storyboards/Auth.storyboard | 1897 ++++++++++------- Rocket.Chat/Theme/NotThemeableViews.swift | 4 + Rocket.Chat/Views/Buttons/StyledButton.swift | 141 ++ .../Auth/AuthSeparatorTableViewCell.swift | 15 + .../Cells/Auth/AuthSeparatorTableViewCell.xib | 38 + .../Cells/Auth/EmailAuthTableViewCell.swift | 23 + .../Cells/Auth/EmailAuthTableViewCell.xib | 63 + .../Auth/LoginServiceTableViewCell.swift | 77 + .../Cells/Auth/LoginServiceTableViewCell.xib | 55 + .../Auth/ShowMoreSeparatorTableViewCell.swift | 23 + .../Auth/ShowMoreSeparatorTableViewCell.xib | 68 + Rocket.Chat/Views/Chat/ChatTitleView.swift | 29 + Rocket.Chat/Views/Chat/ChatTitleView.xib | 35 +- .../Views/Subscriptions/ServersListView.swift | 4 +- .../SubscriptionsTitleView.swift | 27 + .../Subscriptions/SubscriptionsTitleView.xib | 23 +- .../Views/TextFields/StyledTextField.swift | 80 + .../Models/SubscriptionExtensionsSpec.swift | 94 + .../Extensions/StringExtensionSpec.swift | 13 + .../SocketManagerConnectionHandlerSpec.swift | 83 + .../Models/AuthSettingsSpec.swift | 35 + .../Views/Chat/ChatTitleViewSpec.swift | 64 + .../SubscriptionsTitleViewSpec.swift | 68 + 189 files changed, 4618 insertions(+), 2287 deletions(-) create mode 100644 Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/Contents.json create mode 100644 Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/optionsHide.png create mode 100644 Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/optionsHide@2x.png create mode 100644 Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/optionsHide@3x.png create mode 100644 Rocket.Chat/Assets.xcassets/iconFacebook.imageset/Contents.json create mode 100644 Rocket.Chat/Assets.xcassets/iconFacebook.imageset/iconFacebook.png create mode 100644 Rocket.Chat/Assets.xcassets/iconFacebook.imageset/iconFacebook@2x.png create mode 100644 Rocket.Chat/Assets.xcassets/iconFacebook.imageset/iconFacebook@3x.png create mode 100644 Rocket.Chat/Assets.xcassets/iconGithub.imageset/Contents.json create mode 100644 Rocket.Chat/Assets.xcassets/iconGithub.imageset/iconGithub.png create mode 100644 Rocket.Chat/Assets.xcassets/iconGithub.imageset/iconGithub@2x.png create mode 100644 Rocket.Chat/Assets.xcassets/iconGithub.imageset/iconGithub@3x.png create mode 100644 Rocket.Chat/Assets.xcassets/onboarding.imageset/Contents.json create mode 100644 Rocket.Chat/Assets.xcassets/onboarding.imageset/onboarding.png create mode 100644 Rocket.Chat/Assets.xcassets/onboarding.imageset/onboarding@2x.png create mode 100644 Rocket.Chat/Assets.xcassets/onboarding.imageset/onboarding@3x.png create mode 100644 Rocket.Chat/Assets.xcassets/optionsHide.imageset/Contents.json create mode 100644 Rocket.Chat/Assets.xcassets/optionsHide.imageset/optionsHide.png create mode 100644 Rocket.Chat/Assets.xcassets/optionsHide.imageset/optionsHide@2x.png create mode 100644 Rocket.Chat/Assets.xcassets/optionsHide.imageset/optionsHide@3x.png create mode 100644 Rocket.Chat/Assets.xcassets/server.imageset/Contents.json create mode 100644 Rocket.Chat/Assets.xcassets/server.imageset/server.png create mode 100644 Rocket.Chat/Assets.xcassets/server.imageset/server@2x.png create mode 100644 Rocket.Chat/Assets.xcassets/server.imageset/server@3x.png create mode 100644 Rocket.Chat/Controllers/Auth/AuthTableViewController.swift rename Rocket.Chat/Controllers/Auth/{AuthViewControllerAuthenticationHandler.swift => AuthTableViewControllerAuthenticationHandler.swift} (93%) create mode 100644 Rocket.Chat/Controllers/Auth/AuthTableViewControllerConnectionHandler.swift create mode 100644 Rocket.Chat/Controllers/Auth/AuthTableViewControllerLoginServices.swift delete mode 100644 Rocket.Chat/Controllers/Auth/AuthViewController.swift delete mode 100644 Rocket.Chat/Controllers/Auth/AuthViewControllerConnectionHandler.swift delete mode 100644 Rocket.Chat/Controllers/Auth/AuthViewControllerLoginServices.swift create mode 100644 Rocket.Chat/Controllers/Auth/LegalTableViewController.swift create mode 100644 Rocket.Chat/Controllers/Auth/LoginTableViewController.swift create mode 100644 Rocket.Chat/Controllers/Auth/LoginTableViewControllerAuthenticationHandler.swift rename Rocket.Chat/Controllers/Auth/{RegisterUsernameViewController.swift => RegisterUsernameTableViewController.swift} (59%) rename Rocket.Chat/Controllers/Auth/{TwoFactorAuthenticationViewController.swift => TwoFactorAuthTableViewController.swift} (57%) create mode 100644 Rocket.Chat/Controllers/Auth/WelcomeViewController.swift create mode 100644 Rocket.Chat/Controllers/Base/BaseTableViewController.swift delete mode 100644 Rocket.Chat/Models/Auth.swift delete mode 100644 Rocket.Chat/Models/Subscription.swift delete mode 100644 Rocket.Chat/Models/User.swift delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/facebook@1x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/facebook@2x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/facebook@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/iconFacebook.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/iconFacebook@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/iconFacebook@3x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/github@1x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/github@2x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/github@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/iconGithub.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/iconGithub@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/iconGithub@3x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/gitlab@1x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/gitlab@2x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/gitlab@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/iconGitlab.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/iconGitlab@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/iconGitlab@3x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/Auth-Google.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/Auth-Google@2x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/Auth-Google@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/iconGoogle.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/iconGoogle@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/iconGoogle@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/keyBlack.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/keyBlack@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/keyBlack@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/linkedin.imageset/iconLinkedin.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/linkedin.imageset/iconLinkedin@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/linkedin.imageset/iconLinkedin@3x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/linkedin.imageset/linkedin@1x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/linkedin.imageset/linkedin@2x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/linkedin.imageset/linkedin@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/mailBlack.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/mailBlack.imageset/mailBlack.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/mailBlack.imageset/mailBlack@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/mailBlack.imageset/mailBlack@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/more.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/more@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/more@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/userBlack.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/userBlack.imageset/userBlack.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/userBlack.imageset/userBlack@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/userBlack.imageset/userBlack@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/usernameBlack.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/usernameBlack.imageset/usernameBlack.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/usernameBlack.imageset/usernameBlack@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/usernameBlack.imageset/usernameBlack@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/iconWordpress.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/iconWordpress@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/iconWordpress@3x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/wordpress@1x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/wordpress@2x.png delete mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/wordpress@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/connectServer.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/connectServer.imageset/connectServer.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/connectServer.imageset/connectServer@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/connectServer.imageset/connectServer@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/disclosureIndicator.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/disclosureIndicator.imageset/disclosureIndicator.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/disclosureIndicator.imageset/disclosureIndicator@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/disclosureIndicator.imageset/disclosureIndicator@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/logoSmall.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/logoSmall.imageset/logoSmall.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/logoSmall.imageset/logoSmall@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/logoSmall.imageset/logoSmall@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/onboarding.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/onboarding.imageset/onboarding.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/onboarding.imageset/onboarding@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/onboarding.imageset/onboarding@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/optionsHide.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/optionsHide@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/optionsHide@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/plusWhite.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/plusWhite@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/plusWhite@3x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/Contents.json create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/server.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/server@2x.png create mode 100644 Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/server@3x.png create mode 100644 Rocket.Chat/Views/Buttons/StyledButton.swift create mode 100644 Rocket.Chat/Views/Cells/Auth/AuthSeparatorTableViewCell.swift create mode 100644 Rocket.Chat/Views/Cells/Auth/AuthSeparatorTableViewCell.xib create mode 100644 Rocket.Chat/Views/Cells/Auth/EmailAuthTableViewCell.swift create mode 100644 Rocket.Chat/Views/Cells/Auth/EmailAuthTableViewCell.xib create mode 100644 Rocket.Chat/Views/Cells/Auth/LoginServiceTableViewCell.swift create mode 100644 Rocket.Chat/Views/Cells/Auth/LoginServiceTableViewCell.xib create mode 100644 Rocket.Chat/Views/Cells/Auth/ShowMoreSeparatorTableViewCell.swift create mode 100644 Rocket.Chat/Views/Cells/Auth/ShowMoreSeparatorTableViewCell.xib create mode 100644 Rocket.Chat/Views/TextFields/StyledTextField.swift create mode 100644 Rocket.ChatTests/Managers/Socket/SocketManagerConnectionHandlerSpec.swift create mode 100644 Rocket.ChatTests/Views/Chat/ChatTitleViewSpec.swift create mode 100644 Rocket.ChatTests/Views/Subscriptions/SubscriptionsTitleViewSpec.swift diff --git a/Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/Contents.json b/Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/Contents.json new file mode 100644 index 0000000000..10a333cf84 --- /dev/null +++ b/Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "optionsHide.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "optionsHide@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "optionsHide@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/optionsHide.png b/Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/optionsHide.png new file mode 100644 index 0000000000000000000000000000000000000000..b63aa20bd413e8771f413e5f92fec05b03749dea GIT binary patch literal 862 zcmV-k1EKthP)Px&7)eAyR7efQS3hVIVHAJwyR;$>Qgo_+2T`%+%s(AE2#Qi&q>Bz6iaIDR4mvpL z;^yciI0>B;6ckZtu_zKmlQg;5q2QnmN-34#rlFV5_q*JMGk3XEP0|~3-@QM--+S-A z``!!F8n0q;VcTlGc7|A=BuzWTZJ3z0$ojjizsY)$G*8FW;L}86-`BOkawnr)@#8Vl z_H7~_)mnG7XJ$>Lv&6>DOyb~d6n6hIg1~zbj2i#V!KQc$gFcc%B z)vycCwn2Q#Ux6k$-m$LP@4J<8Sg?2nJZK#8_CT}j*j&9NMlis4HnAI-lQ}*oUAJF_ zMcWG*E8{pm!$#)Lcian_Hkd9SJ13X^Rgsc3-+vpIfS8#+YfZZYiVgxCL^0m5L*dB$ zCt~7TlrZ-a^Hc|}fEs+@jk#xaz#u|kE9NWdqwfgdG zZed|-CK-P&6?o^@hpvT}a|J6Wn>^^rrJj4!ip(V-bJ;S0RSI79!HZLqYb7^QP`fc z%Xb_2-UtQkCOIB3+!;z;l4Z98uz~9z9>FJvQt(>0xgDV(LQI*`CjV~}ia&5#GxpLA o&D>MszApdO`~hIyi+`!V0SGr#iL<3VO#lD@07*qoM6N<$f>>;k3;+NC literal 0 HcmV?d00001 diff --git a/Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/optionsHide@2x.png b/Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/optionsHide@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5ff340df1e8ca836fb83863661030a597a67f91a GIT binary patch literal 1798 zcmV+h2l@DkP)Px*z)3_wRA>d|o9}BJMHt8D*-g@F8ltqszLSt*q{-#(l1qy%Rs?JPQ3ORSlorHy zQiS$}i1-JjAV?9!H$sKh`s0O&r7b0(SZt-{a=+4$q&6smC>7DrG_9BJj^Af@Fb)b@XnJg{OWrdN3qj9;svq+871m)0q70hm zJT+;jQnA?d3gvh{76`bMQXkEY9gspC0qic%nrh7?x&mcC7)ZoECnBR}akU6w;B@xd zt0d&xQpm1aWchuT1WijpL#br%$F(%TiY=bbkMES`y${iMlYW&Bv>b^nX-%)E;yqVa zB3G;SA`Y|eYyH*?%KY2LtJfGXeNb0 zSVz{?5BRbcXF-^NoP)5c`;i|7LMUTk0`&YqqW5AY*%iUry}1?fer~TMq|xpHYNlBi zJ1e<;Sy$(QjQjLjgJvVJ&a68#lrxGaIKLiv^ls=rU5?1kN1rdffjqmYCwL||_HLuS zvTUAe&dk6pUe7G)<2)ndi2)v3a?eXZqvzorFNLN*ws?l;vN*dqPeY>u%|>CC5|hj2 zUEut|fquO@bMG)+2TT^5QilW1*5-fi#TVAdT=&DjAUchO#p~f$`5!*>{-k-?$qKiX(Nb8dWW@5-$PEnc2UP<9g49p^P<|kaRTFAA8@HpU?l% zI&a?m5^t5K?YxlB2DNY6tns=xDyj!`QPZ@8Dl`Me<6CcwL~K7AP_tMW-QOSY{miS56wy4EjSs=?Pk7xAI*&Iv0B-GW1TEWmnwh!9JJige(y&}XY-rw4l{u0d-+@(~?=hKp z82Jb0ipIIg$w_M;%`P{P=sT(D`ir=}W9J2Y?trV4tI}X9pi82?bx&&h_TN=`ynaXW z-Zy~W;^a&D)a+dG+kF0p%K!uM-m`-Az32jeJ7oh(FtcXwS_UK&;}dZy0|XPqX*`Vxy$+dWT$#>Fxh*#iS);z<8Nwyt!ZX<2A5ie@$-QG6r=OY zot>R`Re2-1!ZBQ*hNYX;d^HXDZAGJaC6l@4ddnmdJ>#OKX;;wjJgW2FbRb9T#^yHw z?;4cSnZj{lO5W!2v7#fln!@-llPNr*DwOK!`4wZvkeXLZnwjD1)~0+da-3&P({wBf z&?dO|Nm%kNr+|+HyrSJCaS@-8FR8_m=NkRhd)20ynbO((RkXm4Y9ID2PjsP0YdIps zzb!>W@MPo}&vHI8;W;K&gWeIX8$QzR-i;e3eS&qQhkQJ`Y!P&uA8908I0b=+mMtBv z0;e#z$;oIj`Jl1lY!GPUqiCdxaBz{v(M6zgjl_|nTnb|_vt~^+tmvYpB_f#vR%R|u zVC4BoLV7|iuv*|8N9I{3f|)j}1#Sh;A&xA9oNgpA+JS;4SI0aX!E^3X(YsO^o%u7S znEGgTY>IarqKC|erRjlW4DqxJ-xB{@92p!j7)5AiVm2F^uN{k9H(~X3t}qh09aBU> zrV@RFD!5~Ds}*2%4wFOyd?ZEVV3rb-Ym(*yXHQ_ohc<}-9>1}|uq?Fr5| zI3Si|L*WuLe7%+q)|qv$6x3T5oIyD|H9sR_yG8fAFJE9i0?Hin%XI%#B+kU~XIxFN;h@(hX)o`|qpw1YvS%DM%iP)Rv zM(=WUtyuB3{xi;s!MP>b`s?oZE7gU#0oK(IcPhM{URS?Z+R%&7_D{7OXM=63?o#wc o`JZY9UB~v$6p@w>`={Ff0O!`blQX3AN&o-=07*qoM6N<$g1x7OMF0Q* literal 0 HcmV?d00001 diff --git a/Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/optionsHide@3x.png b/Rocket.Chat.ShareExtension/Resources/Assets.xcassets/optionsHide.imageset/optionsHide@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c474eb9f0ddb46b87e1cb0e6e60344bb20ad331b GIT binary patch literal 2971 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 Rmcjr4002ovPDHLkV1n-w@9qEq literal 0 HcmV?d00001 diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 7a9298ced5..7e2726f32f 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -159,7 +159,7 @@ 4124FCC61F7A61C6008ED4C3 /* ChannelInfoActionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4124FCC41F7A61C5008ED4C3 /* ChannelInfoActionCell.swift */; }; 4124FCC81F7A6BF5008ED4C3 /* ChannelInfoUserCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4124FCC71F7A6252008ED4C3 /* ChannelInfoUserCell.xib */; }; 4124FCC91F7A6BF9008ED4C3 /* ChannelInfoActionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4124FCC51F7A61C5008ED4C3 /* ChannelInfoActionCell.xib */; }; - 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */; }; + 412719461E6B403700461FEE /* RegisterUsernameTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412719451E6B403700461FEE /* RegisterUsernameTableViewController.swift */; }; 412731D51DE0A55C00FC45A0 /* ChatPreviewModeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */; }; 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */; }; 412A95D61FD94ED000954AA6 /* ChatMessageVideoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */; }; @@ -211,7 +211,7 @@ 4156250B20BEDFA500D20576 /* ServersListViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4156250A20BEDFA500D20576 /* ServersListViewModelSpec.swift */; }; 4159720C1D3DB854002258F4 /* Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720B1D3DB854002258F4 /* Email.swift */; }; 4159720E1D3DB882002258F4 /* Mention.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4159720D1D3DB882002258F4 /* Mention.swift */; }; - 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */; }; + 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthTableViewController.swift */; }; 415DC7F61F67F5D30039FB4F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */; }; 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 416133311D46CA4E00E09DA2 /* ChatMessageCell.swift */; }; 416133341D46CA7200E09DA2 /* ChatMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 416133331D46CA7200E09DA2 /* ChatMessageCell.xib */; }; @@ -230,16 +230,17 @@ 4174CB0F1D2D995F0086DAC8 /* Auth.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */; }; 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB121D2D99960086DAC8 /* BaseViewController.swift */; }; 4174CB151D2D99A30086DAC8 /* BaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */; }; - 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */; }; 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */; }; 4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */; }; 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */; }; - 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */; }; 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = 41833F4D1DEF16B600E54655 /* Keys.plist */; }; 41852E891F92BBEC00D1C499 /* ChatControllerReplyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */; }; 41865AF21FC8B23400A5E48F /* WebViewControllerEmbedded.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */; }; 41865AF41FC8B25100A5E48F /* WebViewControllerEmbedded.xib in Resources */ = {isa = PBXBuildFile; fileRef = 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */; }; 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */; }; + 418BBC4D20D02E0100EC09F5 /* SocketManagerConnectionHandlerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418BBC4C20D02E0100EC09F5 /* SocketManagerConnectionHandlerSpec.swift */; }; + 418BBC4F20D02FC200EC09F5 /* SubscriptionsTitleViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418BBC4E20D02FC200EC09F5 /* SubscriptionsTitleViewSpec.swift */; }; + 418BBC5120D0309400EC09F5 /* ChatTitleViewSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418BBC5020D0309400EC09F5 /* ChatTitleViewSpec.swift */; }; 418C4DC61DC4C07800ABED4C /* SubscriptionSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */; }; 418C4DC81DC4C08800ABED4C /* SubscriptionSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */; }; 418C74411FA3627F00499577 /* PickerViewDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */; }; @@ -456,9 +457,6 @@ 806C59A51FBB2F4C00C32D0A /* PostMessageRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */; }; 806DB94320687697004ED8ED /* Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80054CFF1FDB1FA200F5ECF9 /* Alert.swift */; }; 806DB94420692518004ED8ED /* UIWindowExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B554C41FBF0C71000510B7 /* UIWindowExtensions.swift */; }; - 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */; }; - 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */; }; - 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */; }; 806DB94E20698C25004ED8ED /* ChatMessageCellAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */; }; 806EFA5E209BF1AC00D0D650 /* SubscriptionReadRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806EFA5D209BF1AC00D0D650 /* SubscriptionReadRequest.swift */; }; 806EFA62209BF30500D0D650 /* SubscriptionsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806EFA61209BF30500D0D650 /* SubscriptionsClient.swift */; }; @@ -628,21 +626,38 @@ 990B4B642069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */; }; 990FF6D620740C79007B4A53 /* RoomMentionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D520740C79007B4A53 /* RoomMentionsRequest.swift */; }; 990FF6D8207438D4007B4A53 /* RoomMentionsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990FF6D7207438D4007B4A53 /* RoomMentionsRequestSpec.swift */; }; + 99100B6C20CF3B3F000C5FCC /* LoginTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99100B6B20CF3B3F000C5FCC /* LoginTableViewController.swift */; }; + 9911CF3420C1CF58001471C3 /* StyledButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9911CF3320C1CF58001471C3 /* StyledButton.swift */; }; 9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */; }; 9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */; }; 992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */; }; 992B5AB8209A2890009C8123 /* RoomFilesRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB7209A2890009C8123 /* RoomFilesRequestSpec.swift */; }; + 993417F520D1B31F0008B643 /* LegalTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993417F420D1B31F0008B643 /* LegalTableViewController.swift */; }; + 99363FC820C8650B00AA68C0 /* AuthSeparatorTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 99363FC720C8650B00AA68C0 /* AuthSeparatorTableViewCell.xib */; }; + 99363FCA20C8657400AA68C0 /* ShowMoreSeparatorTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 99363FC920C8657400AA68C0 /* ShowMoreSeparatorTableViewCell.xib */; }; + 99363FCC20C8758500AA68C0 /* ShowMoreSeparatorTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99363FCB20C8758500AA68C0 /* ShowMoreSeparatorTableViewCell.swift */; }; 993E513A1FB1E18D006403D5 /* DraftMessageManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */; }; 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */; }; 994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */; }; 994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */; }; 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */; }; + 995F710B20C7822A00B7535F /* AuthTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995F710A20C7822A00B7535F /* AuthTableViewController.swift */; }; + 995F710E20C7837300B7535F /* AuthSeparatorTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995F710D20C7837300B7535F /* AuthSeparatorTableViewCell.swift */; }; + 995F711020C7842100B7535F /* LoginServiceTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995F710F20C7842100B7535F /* LoginServiceTableViewCell.swift */; }; + 995F711620C790AB00B7535F /* AuthTableViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995F711520C790AB00B7535F /* AuthTableViewControllerAuthenticationHandler.swift */; }; + 995F711820C790D800B7535F /* AuthTableViewControllerConnectionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995F711720C790D800B7535F /* AuthTableViewControllerConnectionHandler.swift */; }; + 995F711A20C7910800B7535F /* AuthTableViewControllerLoginServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995F711920C7910800B7535F /* AuthTableViewControllerLoginServices.swift */; }; + 995F711C20C7978C00B7535F /* LoginServiceTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 995F711B20C7978C00B7535F /* LoginServiceTableViewCell.xib */; }; + 995F711E20C799E000B7535F /* EmailAuthTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995F711D20C799E000B7535F /* EmailAuthTableViewCell.swift */; }; + 995F712020C7A7CD00B7535F /* EmailAuthTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 995F711F20C7A7CD00B7535F /* EmailAuthTableViewCell.xib */; }; 995FEB2F206286D9004EE38F /* WebBrowserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */; }; 9960C8302063F0C8004A034C /* WebBrowserTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */; }; 996154B1205197E7009B9857 /* NewPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */; }; + 99619B4820CE3E8D00E1ACCA /* WelcomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99619B4720CE3E8D00E1ACCA /* WelcomeViewController.swift */; }; 9977302720725B5C009AF465 /* CustomEmojiRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */; }; 9977302A20727E17009AF465 /* CustomEmojiRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */; }; 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */; }; + 99805D7520C191BE00741B8E /* StyledTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99805D7420C191BE00741B8E /* StyledTextField.swift */; }; 998165CA204EBBA10059D346 /* UpdateUserRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */; }; 998165CC204EDBA30059D346 /* UploadAvatarRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */; }; 9987B5962093E4BA007D277C /* FilesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9987B5952093E4BA007D277C /* FilesListViewController.swift */; }; @@ -658,6 +673,7 @@ 99B802EE20BC3EF700230109 /* ImageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B802EC20BC3BD400230109 /* ImageManager.swift */; }; 99B802EF20BC3F0800230109 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */; }; 99C577EE207E4F1500CE9B4D /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C577ED207E4F1500CE9B4D /* File.swift */; }; + 99D86ABA20D0C5240036C127 /* LoginTableViewControllerAuthenticationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D86AB920D0C5240036C127 /* LoginTableViewControllerAuthenticationHandler.swift */; }; 99D888F82045DFC500E51306 /* EditProfileTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */; }; 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D888FA204623A900E51306 /* UpdateUserRequest.swift */; }; 99DBB872208FF6FE00382DB2 /* SearchMessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */; }; @@ -665,6 +681,7 @@ 99DBB87620903A7F00382DB2 /* SearchMessagesRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */; }; 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */; }; 99F41BD020658C3400B240FC /* NewPasswordViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */; }; + 99F530A120D0F08A004EC060 /* BaseTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F530A020D0F08A004EC060 /* BaseTableViewController.swift */; }; 99F8FAED20B66F210025FEEF /* ImageCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F8FAEC20B66F210025FEEF /* ImageCoordinator.swift */; }; A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */; }; AB2AC99226FB9C7C9DA45E94 /* Pods_Rocket_Chat_ShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6787D07A45177F339DB234DD /* Pods_Rocket_Chat_ShareExtension.framework */; }; @@ -885,7 +902,7 @@ 4124FCC41F7A61C5008ED4C3 /* ChannelInfoActionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelInfoActionCell.swift; sourceTree = ""; }; 4124FCC51F7A61C5008ED4C3 /* ChannelInfoActionCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChannelInfoActionCell.xib; sourceTree = ""; }; 4124FCC71F7A6252008ED4C3 /* ChannelInfoUserCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChannelInfoUserCell.xib; sourceTree = ""; }; - 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterUsernameViewController.swift; sourceTree = ""; }; + 412719451E6B403700461FEE /* RegisterUsernameTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RegisterUsernameTableViewController.swift; sourceTree = ""; }; 412731D41DE0A55C00FC45A0 /* ChatPreviewModeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ChatPreviewModeView.xib; sourceTree = ""; }; 412731D61DE0A89B00FC45A0 /* ChatPreviewModeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPreviewModeView.swift; sourceTree = ""; }; 412A95D41FD94ED000954AA6 /* ChatMessageVideoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageVideoView.swift; sourceTree = ""; }; @@ -937,7 +954,7 @@ 4156250A20BEDFA500D20576 /* ServersListViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServersListViewModelSpec.swift; sourceTree = ""; }; 4159720B1D3DB854002258F4 /* Email.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Email.swift; sourceTree = ""; }; 4159720D1D3DB882002258F4 /* Mention.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mention.swift; sourceTree = ""; }; - 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoFactorAuthenticationViewController.swift; sourceTree = ""; }; + 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoFactorAuthTableViewController.swift; sourceTree = ""; }; 415D4B8620C57FF700EB72F2 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; 415D4B8720C57FF700EB72F2 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/VoiceOver.strings; sourceTree = ""; }; 415DC7F51F67F5D30039FB4F /* NetworkManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; @@ -957,17 +974,18 @@ 4174CB0E1D2D995F0086DAC8 /* Auth.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Auth.storyboard; sourceTree = ""; }; 4174CB121D2D99960086DAC8 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseNavigationController.swift; sourceTree = ""; }; - 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthViewController.swift; sourceTree = ""; }; 4174CB1B1D2DB2080086DAC8 /* LogManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; 4174CB1E1D2DB3350086DAC8 /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; 4174CB201D2DD4690086DAC8 /* Rocket.Chat-Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Rocket.Chat-Bridge.h"; sourceTree = ""; }; 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResponseMessageSpec.swift; sourceTree = ""; }; - 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelInfoViewController.swift; sourceTree = ""; }; 41833F4D1DEF16B600E54655 /* Keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Keys.plist; sourceTree = ""; }; 41852E881F92BBEC00D1C499 /* ChatControllerReplyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatControllerReplyHandler.swift; sourceTree = ""; }; 41865AF11FC8B23400A5E48F /* WebViewControllerEmbedded.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebViewControllerEmbedded.swift; sourceTree = ""; }; 41865AF31FC8B25100A5E48F /* WebViewControllerEmbedded.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WebViewControllerEmbedded.xib; sourceTree = ""; }; 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerMessageActions.swift; sourceTree = ""; }; + 418BBC4C20D02E0100EC09F5 /* SocketManagerConnectionHandlerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocketManagerConnectionHandlerSpec.swift; sourceTree = ""; }; + 418BBC4E20D02FC200EC09F5 /* SubscriptionsTitleViewSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionsTitleViewSpec.swift; sourceTree = ""; }; + 418BBC5020D0309400EC09F5 /* ChatTitleViewSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleViewSpec.swift; sourceTree = ""; }; 418C4DC51DC4C07800ABED4C /* SubscriptionSectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscriptionSectionView.swift; sourceTree = ""; }; 418C4DC71DC4C08800ABED4C /* SubscriptionSectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscriptionSectionView.xib; sourceTree = ""; }; 418C74401FA3627F00499577 /* PickerViewDelegateSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PickerViewDelegateSpec.swift; sourceTree = ""; }; @@ -1194,9 +1212,6 @@ 8069D26D1FFF876D00C75926 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = ""; }; 806C59A11FBB0BD600C32D0A /* PostMessageRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostMessageRequest.swift; sourceTree = ""; }; 806C59A41FBB2F4C00C32D0A /* PostMessageRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMessageRequestSpec.swift; sourceTree = ""; }; - 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerLoginServices.swift; sourceTree = ""; }; - 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerConnectionHandler.swift; sourceTree = ""; }; - 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewControllerAuthenticationHandler.swift; sourceTree = ""; }; 806DB94D20698C25004ED8ED /* ChatMessageCellAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageCellAccessibility.swift; sourceTree = ""; }; 806EFA5D209BF1AC00D0D650 /* SubscriptionReadRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionReadRequest.swift; sourceTree = ""; }; 806EFA61209BF30500D0D650 /* SubscriptionsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionsClient.swift; sourceTree = ""; }; @@ -1353,21 +1368,38 @@ 990B4B632069DC9900999FE7 /* EditProfileTableViewControllerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewControllerSpec.swift; sourceTree = ""; }; 990FF6D520740C79007B4A53 /* RoomMentionsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMentionsRequest.swift; sourceTree = ""; }; 990FF6D7207438D4007B4A53 /* RoomMentionsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMentionsRequestSpec.swift; sourceTree = ""; }; + 99100B6B20CF3B3F000C5FCC /* LoginTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginTableViewController.swift; sourceTree = ""; }; + 9911CF3320C1CF58001471C3 /* StyledButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StyledButton.swift; sourceTree = ""; }; 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequestSpec.swift; sourceTree = ""; }; 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModel.swift; sourceTree = ""; }; 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioFileViewController.swift; sourceTree = ""; }; 992B5AB7209A2890009C8123 /* RoomFilesRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomFilesRequestSpec.swift; sourceTree = ""; }; + 993417F420D1B31F0008B643 /* LegalTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegalTableViewController.swift; sourceTree = ""; }; + 99363FC720C8650B00AA68C0 /* AuthSeparatorTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AuthSeparatorTableViewCell.xib; sourceTree = ""; }; + 99363FC920C8657400AA68C0 /* ShowMoreSeparatorTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ShowMoreSeparatorTableViewCell.xib; sourceTree = ""; }; + 99363FCB20C8758500AA68C0 /* ShowMoreSeparatorTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShowMoreSeparatorTableViewCell.swift; sourceTree = ""; }; 993E51391FB1E18D006403D5 /* DraftMessageManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManagerSpec.swift; sourceTree = ""; }; 994D1EDE205AB945007F29C8 /* UINavigationControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UINavigationControllerExtension.swift; sourceTree = ""; }; 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManagerSpec.swift; sourceTree = ""; }; 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModelSpec.swift; sourceTree = ""; }; 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordTableViewController.swift; sourceTree = ""; }; + 995F710A20C7822A00B7535F /* AuthTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthTableViewController.swift; sourceTree = ""; }; + 995F710D20C7837300B7535F /* AuthSeparatorTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSeparatorTableViewCell.swift; sourceTree = ""; }; + 995F710F20C7842100B7535F /* LoginServiceTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceTableViewCell.swift; sourceTree = ""; }; + 995F711520C790AB00B7535F /* AuthTableViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthTableViewControllerAuthenticationHandler.swift; sourceTree = ""; }; + 995F711720C790D800B7535F /* AuthTableViewControllerConnectionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthTableViewControllerConnectionHandler.swift; sourceTree = ""; }; + 995F711920C7910800B7535F /* AuthTableViewControllerLoginServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthTableViewControllerLoginServices.swift; sourceTree = ""; }; + 995F711B20C7978C00B7535F /* LoginServiceTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoginServiceTableViewCell.xib; sourceTree = ""; }; + 995F711D20C799E000B7535F /* EmailAuthTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmailAuthTableViewCell.swift; sourceTree = ""; }; + 995F711F20C7A7CD00B7535F /* EmailAuthTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EmailAuthTableViewCell.xib; sourceTree = ""; }; 995FEB2E206286D9004EE38F /* WebBrowserManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManager.swift; sourceTree = ""; }; 9960C82F2063F0C8004A034C /* WebBrowserTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserTableViewController.swift; sourceTree = ""; }; 996154B0205197E7009B9857 /* NewPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModel.swift; sourceTree = ""; }; + 99619B4720CE3E8D00E1ACCA /* WelcomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeViewController.swift; sourceTree = ""; }; 9977302620725B5C009AF465 /* CustomEmojiRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequest.swift; sourceTree = ""; }; 9977302920727E17009AF465 /* CustomEmojiRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEmojiRequestSpec.swift; sourceTree = ""; }; 9977302B2072B746009AF465 /* PublicSettingsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequest.swift; sourceTree = ""; }; + 99805D7420C191BE00741B8E /* StyledTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StyledTextField.swift; sourceTree = ""; }; 998165C9204EBBA10059D346 /* UpdateUserRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequestSpec.swift; sourceTree = ""; }; 998165CB204EDBA30059D346 /* UploadAvatarRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadAvatarRequestSpec.swift; sourceTree = ""; }; 9987B5952093E4BA007D277C /* FilesListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilesListViewController.swift; sourceTree = ""; }; @@ -1380,6 +1412,7 @@ 99B060CD1FB1225200F471C2 /* DraftMessageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraftMessageManager.swift; sourceTree = ""; }; 99B802EC20BC3BD400230109 /* ImageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageManager.swift; sourceTree = ""; }; 99C577ED207E4F1500CE9B4D /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = ""; }; + 99D86AB920D0C5240036C127 /* LoginTableViewControllerAuthenticationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginTableViewControllerAuthenticationHandler.swift; sourceTree = ""; }; 99D888F72045DFC500E51306 /* EditProfileTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileTableViewController.swift; sourceTree = ""; }; 99D888FA204623A900E51306 /* UpdateUserRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateUserRequest.swift; sourceTree = ""; }; 99DBB871208FF6FE00382DB2 /* SearchMessagesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMessagesRequest.swift; sourceTree = ""; }; @@ -1387,6 +1420,7 @@ 99DBB87520903A7F00382DB2 /* SearchMessagesRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchMessagesRequestSpec.swift; sourceTree = ""; }; 99F41BCD20658B1300B240FC /* EditProfileViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModelSpec.swift; sourceTree = ""; }; 99F41BCF20658C3400B240FC /* NewPasswordViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordViewModelSpec.swift; sourceTree = ""; }; + 99F530A020D0F08A004EC060 /* BaseTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTableViewController.swift; sourceTree = ""; }; 99F8FAEC20B66F210025FEEF /* ImageCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageCoordinator.swift; sourceTree = ""; }; A0FFC1601E8A9D8D00A1B5EA /* TintedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TintedTextField.swift; sourceTree = ""; }; AAC8D92081FF042E089F3063 /* Pods-Rocket.Chat.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.Chat.beta.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.Chat/Pods-Rocket.Chat.beta.xcconfig"; sourceTree = ""; }; @@ -1827,6 +1861,7 @@ children = ( 4156250A20BEDFA500D20576 /* ServersListViewModelSpec.swift */, 412435C720CAC89C00A3602D /* SubscriptionsSortingViewModelSpec.swift */, + 418BBC4E20D02FC200EC09F5 /* SubscriptionsTitleViewSpec.swift */, ); path = Subscriptions; sourceTree = ""; @@ -1834,6 +1869,8 @@ 4161332F1D46CA2800E09DA2 /* Views */ = { isa = PBXGroup; children = ( + 9911CF3220C1CF3D001471C3 /* Buttons */, + 99805D7320C190FC00741B8E /* TextFields */, 80D41DFB2092152A00034D1F /* ActionSheets */, 41C275DD1D847FEE003C88CF /* Avatar */, 416133301D46CA3100E09DA2 /* Cells */, @@ -1851,6 +1888,7 @@ 416133301D46CA3100E09DA2 /* Cells */ = { isa = PBXGroup; children = ( + 995F710C20C7833500B7535F /* Auth */, 416133351D46CA7400E09DA2 /* Chat */, 4153E80320504BC800FBC26B /* Preferences */, 4192054A1D52F4E7004EEC5F /* Subscription */, @@ -1981,18 +2019,22 @@ 4174CB101D2D997E0086DAC8 /* Auth */ = { isa = PBXGroup; children = ( - 4174CB161D2D9BB70086DAC8 /* AuthViewController.swift */, - 806DB94920695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift */, - 806DB94720695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift */, - 806DB94520695A46004ED8ED /* AuthViewControllerLoginServices.swift */, + 99619B4720CE3E8D00E1ACCA /* WelcomeViewController.swift */, + 99100B6B20CF3B3F000C5FCC /* LoginTableViewController.swift */, + 99D86AB920D0C5240036C127 /* LoginTableViewControllerAuthenticationHandler.swift */, + 995F710A20C7822A00B7535F /* AuthTableViewController.swift */, + 995F711520C790AB00B7535F /* AuthTableViewControllerAuthenticationHandler.swift */, + 995F711720C790D800B7535F /* AuthTableViewControllerConnectionHandler.swift */, + 995F711920C7910800B7535F /* AuthTableViewControllerLoginServices.swift */, 80D955C1202154A300E3F281 /* CASViewController.swift */, 4174CB0C1D2D994A0086DAC8 /* ConnectServerViewController.swift */, 80113DF71F98330B0048F2C2 /* OAuthViewController.swift */, - 412719451E6B403700461FEE /* RegisterUsernameViewController.swift */, + 412719451E6B403700461FEE /* RegisterUsernameTableViewController.swift */, 80B3DC0A202DCE1D004249AD /* SAMLViewController.swift */, 414D99151EA0E7CB0020F7E9 /* SignupViewController.swift */, 35E892CB201CDDED00B4BE5A /* SignupViewControllerCustomFields.swift */, - 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift */, + 41597DCD1E8D3C5B00638E3E /* TwoFactorAuthTableViewController.swift */, + 993417F420D1B31F0008B643 /* LegalTableViewController.swift */, ); path = Auth; sourceTree = ""; @@ -2003,6 +2045,7 @@ 4174CB141D2D99A30086DAC8 /* BaseNavigationController.swift */, 4174CB121D2D99960086DAC8 /* BaseViewController.swift */, 414B3B24203E2F2C0078D3D9 /* MainSplitViewController.swift */, + 99F530A020D0F08A004EC060 /* BaseTableViewController.swift */, ); path = Base; sourceTree = ""; @@ -2074,6 +2117,7 @@ children = ( 417A70021D47918200FF46EE /* ResponseMessageSpec.swift */, 41552F671D3035D80081438D /* SocketManagerSpec.swift */, + 418BBC4C20D02E0100EC09F5 /* SocketManagerConnectionHandlerSpec.swift */, ); path = Socket; sourceTree = ""; @@ -2384,7 +2428,6 @@ isa = PBXGroup; children = ( 41D8EC931F78151A00764B36 /* ChannelActionsViewController.swift */, - 4180204E1E718E370012A092 /* ChannelInfoViewController.swift */, 41EE157D1E05BED600754D45 /* ChatControllerAutocomplete.swift */, 419ECCA51F3CA58A005F224B /* ChatControllerDocuments.swift */, 418688101E53CC86002F785C /* ChatControllerMessageActions.swift */, @@ -3053,6 +3096,14 @@ path = Preferences; sourceTree = ""; }; + 9911CF3220C1CF3D001471C3 /* Buttons */ = { + isa = PBXGroup; + children = ( + 9911CF3320C1CF58001471C3 /* StyledButton.swift */, + ); + path = Buttons; + sourceTree = ""; + }; 99282260204DE0AE005D2067 /* Profile */ = { isa = PBXGroup; children = ( @@ -3074,6 +3125,21 @@ path = "Web Browser"; sourceTree = ""; }; + 995F710C20C7833500B7535F /* Auth */ = { + isa = PBXGroup; + children = ( + 995F711B20C7978C00B7535F /* LoginServiceTableViewCell.xib */, + 995F710F20C7842100B7535F /* LoginServiceTableViewCell.swift */, + 995F711F20C7A7CD00B7535F /* EmailAuthTableViewCell.xib */, + 995F711D20C799E000B7535F /* EmailAuthTableViewCell.swift */, + 99363FC720C8650B00AA68C0 /* AuthSeparatorTableViewCell.xib */, + 995F710D20C7837300B7535F /* AuthSeparatorTableViewCell.swift */, + 99363FC920C8657400AA68C0 /* ShowMoreSeparatorTableViewCell.xib */, + 99363FCB20C8758500AA68C0 /* ShowMoreSeparatorTableViewCell.swift */, + ); + path = Auth; + sourceTree = ""; + }; 9960C82E2063F091004A034C /* Web Browser */ = { isa = PBXGroup; children = ( @@ -3099,6 +3165,14 @@ path = Emoji; sourceTree = ""; }; + 99805D7320C190FC00741B8E /* TextFields */ = { + isa = PBXGroup; + children = ( + 99805D7420C191BE00741B8E /* StyledTextField.swift */, + ); + path = TextFields; + sourceTree = ""; + }; 998165C8204EBB5E0059D346 /* User */ = { isa = PBXGroup; children = ( @@ -3223,6 +3297,7 @@ children = ( 4151807A1EAE249F0000A039 /* ChatMessageTextViewModelSpec.swift */, 411498E01FC7A85400D66542 /* ChatTitleViewModelSpec.swift */, + 418BBC5020D0309400EC09F5 /* ChatTitleViewSpec.swift */, ); path = Chat; sourceTree = ""; @@ -3431,6 +3506,7 @@ 41FC9E0E209B44CD00FED485 /* ChatLoaderCell.xib in Resources */, 809B53121FE2F2F900833DD2 /* ReactionView.xib in Resources */, 41C955FA20A3931C00FC8314 /* ChatMessageActionButtonsView.xib in Resources */, + 99363FC820C8650B00AA68C0 /* AuthSeparatorTableViewCell.xib in Resources */, 14F8A270202E653E00175FDC /* Grey-76@2x.png in Resources */, 14F8A295202E65C700175FDC /* Blue-76@3x.png in Resources */, 80A2F39420057B48005D2DCA /* EmojiAutocompleteCell.xib in Resources */, @@ -3462,10 +3538,12 @@ 412E1F3C1DB6D55000531FDA /* ChatMessageURLView.xib in Resources */, 41FC9E0F209B469C00FED485 /* AutocompleteCell.xib in Resources */, 413FB6E01FE17EB700F010AA /* SubscriptionsTitleView.xib in Resources */, + 99363FCA20C8657400AA68C0 /* ShowMoreSeparatorTableViewCell.xib in Resources */, 14F8A242202E5D0600175FDC /* Red-40@3x.png in Resources */, 806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */, 41833F4E1DEF16B600E54655 /* Keys.plist in Resources */, 4124FCC91F7A6BF9008ED4C3 /* ChannelInfoActionCell.xib in Resources */, + 995F711C20C7978C00B7535F /* LoginServiceTableViewCell.xib in Resources */, 41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */, 140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */, 8041C0442028C828007E21FA /* ReactorListView.xib in Resources */, @@ -3485,6 +3563,7 @@ 41DF76EA1D2C50710028DBF8 /* Assets.xcassets in Resources */, 14F8A240202E5D0600175FDC /* Red-76@2x.png in Resources */, 41FC9E0D209B44A500FED485 /* ChatMessageDaySeparator.xib in Resources */, + 995F712020C7A7CD00B7535F /* EmailAuthTableViewCell.xib in Resources */, 809B53141FE3294400833DD2 /* ReactionListView.xib in Resources */, 14F8A293202E65C700175FDC /* Blue-60@2x.png in Resources */, 8041C048202BA234007E21FA /* RCEmojiKit.xcassets in Resources */, @@ -3830,8 +3909,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 995F711020C7842100B7535F /* LoginServiceTableViewCell.swift in Sources */, 14BAFAE020308EF30054A2E6 /* DrawingBrushOpacityViewController.swift in Sources */, 41499C8F1F2A116900790EA7 /* ServerManager.swift in Sources */, + 995F710E20C7837300B7535F /* AuthSeparatorTableViewCell.swift in Sources */, 41B554C51FBF0C71000510B7 /* UIWindowExtensions.swift in Sources */, 8062E33520A5ECF50044F407 /* APIRequestOption.swift in Sources */, 807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */, @@ -3847,7 +3928,6 @@ 7758A7641F8FA44400FAA244 /* PickerViewDelegate.swift in Sources */, 8076FDAB2048549C00114F28 /* AuthSettingsHiddenTypes.swift in Sources */, 8076FDE42048CC8600114F28 /* MigrationCoordinator.swift in Sources */, - 806DB94620695A46004ED8ED /* AuthViewControllerLoginServices.swift in Sources */, 4151B4561E2D1AFF00F8AA1B /* SubscriptionModelMapping.swift in Sources */, 8013F86B1FD6B59A00EE1A4E /* Version.swift in Sources */, 994D1EDF205AB945007F29C8 /* UINavigationControllerExtension.swift in Sources */, @@ -3882,7 +3962,6 @@ 8039441820AF620C002F317A /* ResourceWithError.swift in Sources */, 416133321D46CA4E00E09DA2 /* ChatMessageCell.swift in Sources */, 33FB9D4420D0EE7F005AF504 /* ServerInfoCell.swift in Sources */, - 806DB94A20695CD0004ED8ED /* AuthViewControllerAuthenticationHandler.swift in Sources */, 41F3704D20A31A3E00C5449E /* UIViewControllerExtension.swift in Sources */, 8041C0422028C7EF007E21FA /* ReactorListView.swift in Sources */, 41DC7A1B1D38454500896FC0 /* Message.swift in Sources */, @@ -3916,8 +3995,9 @@ 41B96362207E48260068F1A6 /* MessageTextValidator.swift in Sources */, 809B530E1FE2EFA100833DD2 /* ReactionListView.swift in Sources */, 4159720C1D3DB854002258F4 /* Email.swift in Sources */, + 99363FCC20C8758500AA68C0 /* ShowMoreSeparatorTableViewCell.swift in Sources */, 8013F8861FD6B76600EE1A4E /* CommandsRequest.swift in Sources */, - 412719461E6B403700461FEE /* RegisterUsernameViewController.swift in Sources */, + 412719461E6B403700461FEE /* RegisterUsernameTableViewController.swift in Sources */, 806C59A21FBB0BD600C32D0A /* PostMessageRequest.swift in Sources */, 41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */, 4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */, @@ -3933,14 +4013,15 @@ 41DE687D20C6D57F00AA5EC8 /* SubscriptionSortingCell.swift in Sources */, 8013F8651FD5E13600EE1A4E /* APIExtensions.swift in Sources */, 4147CE7F1F5EB27B00C322C3 /* AddServerCell.swift in Sources */, + 995F711620C790AB00B7535F /* AuthTableViewControllerAuthenticationHandler.swift in Sources */, A0FFC1611E8A9D8D00A1B5EA /* TintedTextField.swift in Sources */, 80D41DFF20923AA600034D1F /* AuthCanStarMessage.swift in Sources */, 8069D26E1FFF876D00C75926 /* Emoji.swift in Sources */, - 4174CB171D2D9BB70086DAC8 /* AuthViewController.swift in Sources */, 80D41E0B20993CE200034D1F /* PinMessageRequest.swift in Sources */, 41D3668720C0323100970B99 /* SubscriptionsSortingView.swift in Sources */, 418688111E53CC86002F785C /* ChatControllerMessageActions.swift in Sources */, 8062E32C20A1F8100044F407 /* RoomsRequest.swift in Sources */, + 995F711E20C799E000B7535F /* EmailAuthTableViewCell.swift in Sources */, 411498E31FC7A99C00D66542 /* ChatTitleViewModel.swift in Sources */, 80213C0E1FE0639E00809E14 /* HTTPMethod.swift in Sources */, 0B3A9766202C738E0019CA92 /* ChangeAppIconViewModel.swift in Sources */, @@ -3948,6 +4029,7 @@ 41F3C1001DB577ED000E0C76 /* MessageURL.swift in Sources */, 4174CB1C1D2DB2080086DAC8 /* LogManager.swift in Sources */, 41DC7A1D1D38471700896FC0 /* MessageManager.swift in Sources */, + 99D86ABA20D0C5240036C127 /* LoginTableViewControllerAuthenticationHandler.swift in Sources */, 412F8DD91F599EF100AF7786 /* DatabaseManager.swift in Sources */, 41D8EC8E1F780C3800764B36 /* ChatControllerTitleViewProtocol.swift in Sources */, 999F25B5207EEB0C002E0F68 /* FileModelMapping.swift in Sources */, @@ -3959,6 +4041,7 @@ 8076FDA02048519D00114F28 /* AuthManagerSocket.swift in Sources */, D32E28241DFD86C300D6019C /* BugTrackingCoordinator.swift in Sources */, D1D535EC1F7081FA006625D2 /* API.swift in Sources */, + 995F711820C790D800B7535F /* AuthTableViewControllerConnectionHandler.swift in Sources */, 41DAE93E1D318F350098E068 /* Subscription.swift in Sources */, 806EFA62209BF30500D0D650 /* SubscriptionsClient.swift in Sources */, 41DE687B20C6C52B00AA5EC8 /* SubscriptionsSortingManager.swift in Sources */, @@ -3969,7 +4052,6 @@ 80E9DBD6209CA8FE00A48CA9 /* Closeable.swift in Sources */, 9987B5962093E4BA007D277C /* FilesListViewController.swift in Sources */, 41C955FC20A3937A00FC8314 /* ChatMessageActionButtonsView.swift in Sources */, - 806DB94820695BCF004ED8ED /* AuthViewControllerConnectionHandler.swift in Sources */, 339B692B2050449700F97392 /* KeyboardFrameView.swift in Sources */, 0B9AB2C320444ED600ABEA05 /* LanguageViewModel.swift in Sources */, 33D08E2620BD5EDC008D03EF /* ThemeManager.swift in Sources */, @@ -3989,6 +4071,7 @@ 14BAFAE220308F010054A2E6 /* DrawingBrushColorViewController.swift in Sources */, 8076FDD6204864E700114F28 /* UserQueries.swift in Sources */, 33FB9D3E20CEF610005AF504 /* SubscriptionsSortingSeparatorView.swift in Sources */, + 995F710B20C7822A00B7535F /* AuthTableViewController.swift in Sources */, 800FCD4D1F728EC800D9A692 /* ChannelInfoDescriptionCell.swift in Sources */, 41DD613A203D9E6600B02D8A /* UISplitViewControllerExtensions.swift in Sources */, 41A79C0F1D2F085F00A1968E /* User.swift in Sources */, @@ -3997,6 +4080,7 @@ 8013F86C1FD6B59A00EE1A4E /* APIError.swift in Sources */, 41E2FA071D41513C00238DFD /* ChatViewController.swift in Sources */, 41FC9E0A209B3A9800FED485 /* MessageExtensions.swift in Sources */, + 993417F520D1B31F0008B643 /* LegalTableViewController.swift in Sources */, 805DEC371FFC08870033151B /* CustomEmoji.swift in Sources */, 994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */, 4151B45E1E2D32EA00F8AA1B /* MessageURLModelMapping.swift in Sources */, @@ -4016,9 +4100,11 @@ 80D955C2202154A300E3F281 /* CASViewController.swift in Sources */, 4124D833209A0517005374CD /* ChatLoaderCell.swift in Sources */, 8013F8871FD6B76600EE1A4E /* RunCommandRequest.swift in Sources */, + 9911CF3420C1CF58001471C3 /* StyledButton.swift in Sources */, 41DAE93C1D318E280098E068 /* SubscriptionManager.swift in Sources */, 80054CFC1FDAFD7700F5ECF9 /* PushTokenDeleteRequest.swift in Sources */, 41D8EC941F78151A00764B36 /* ChannelActionsViewController.swift in Sources */, + 99F530A120D0F08A004EC060 /* BaseTableViewController.swift in Sources */, 8076FDD12048646500114F28 /* MessageReply.swift in Sources */, D10E9C1E1F643474007F1796 /* ChannelModelMapping.swift in Sources */, 4101BF011F8D0A1700F67E89 /* AppManager.swift in Sources */, @@ -4032,7 +4118,7 @@ 33D08E2820BD5EDC008D03EF /* Theme.swift in Sources */, 4192054E1D52F5F1004EEC5F /* UIColorExtension.swift in Sources */, 41DCB8281DDC82E000E1197F /* SubscriptionSearchMoreView.swift in Sources */, - 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthenticationViewController.swift in Sources */, + 41597DCE1E8D3C5B00638E3E /* TwoFactorAuthTableViewController.swift in Sources */, 807371A01F96937100D53ADF /* LoginService.swift in Sources */, 802498F51F7ACDB7005477EC /* ChatMessageAudioView.swift in Sources */, 41EB22331E5E474200AA3AE7 /* UploadVideoCompression.swift in Sources */, @@ -4049,6 +4135,7 @@ 1435BFA31F9B601600FB2768 /* RCTextView.swift in Sources */, 8076FDC520485ABB00114F28 /* SubscriptionUser.swift in Sources */, 412731D71DE0A89B00FC45A0 /* ChatPreviewModeView.swift in Sources */, + 995F711A20C7910800B7535F /* AuthTableViewControllerLoginServices.swift in Sources */, 809B53101FE2F17D00833DD2 /* ReactionView.swift in Sources */, D15C83861F70991F001AB155 /* APIResponse.swift in Sources */, 800FCD3E1F72893E00D9A692 /* MembersListViewController.swift in Sources */, @@ -4061,7 +4148,6 @@ 33D08E3120BD92A5008D03EF /* ThemePreferenceCell.swift in Sources */, 992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */, 8041C0402028C7A1007E21FA /* ReactorListViewController.swift in Sources */, - 4180204F1E718E370012A092 /* ChannelInfoViewController.swift in Sources */, 99D888FB204623A900E51306 /* UpdateUserRequest.swift in Sources */, 8013F8721FD6B5B000EE1A4E /* CommandsClient.swift in Sources */, 4147CE7D1F5EAAB300C322C3 /* ServerCell.swift in Sources */, @@ -4088,6 +4174,7 @@ 800FCD4C1F728EC800D9A692 /* ChannelInfoCellProtocol.swift in Sources */, 800E22841F8500A200DA84F1 /* MessagesListViewController.swift in Sources */, 33D08E2720BD5EDC008D03EF /* NotThemeableViews.swift in Sources */, + 99805D7520C191BE00741B8E /* StyledTextField.swift in Sources */, 419ECCA41F3CA21A005F224B /* DownloadManager.swift in Sources */, 80307E3C1FD75BE1006AD9EF /* VOTextField.swift in Sources */, 419D85001DF599DA0021F034 /* ChatHeaderViewStatus.swift in Sources */, @@ -4132,6 +4219,7 @@ 80054CF11FD9505A00F5ECF9 /* SendMessageRequest.swift in Sources */, 0B7A210D204680D500D11085 /* ChangeLanguageResetCell.swift in Sources */, 4174CB131D2D99960086DAC8 /* BaseViewController.swift in Sources */, + 99100B6C20CF3B3F000C5FCC /* LoginTableViewController.swift in Sources */, 897083D31F8CF08100233561 /* CheckTableViewCell.swift in Sources */, 99F8FAED20B66F210025FEEF /* ImageCoordinator.swift in Sources */, 8076FDC72048632300114F28 /* SubscriptionQueries.swift in Sources */, @@ -4177,6 +4265,7 @@ 807C7C12207522EF006B600E /* LoginServicesRequest.swift in Sources */, 80B3DC0B202DCE1D004249AD /* SAMLViewController.swift in Sources */, 8067DA9B206BC71A005E3369 /* ReactMessageRequest.swift in Sources */, + 99619B4820CE3E8D00E1ACCA /* WelcomeViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4190,6 +4279,7 @@ 805DEC391FFE54820033151B /* CustomEmojiSpec.swift in Sources */, D18675EA1F70A58B00406FB4 /* InfoRequestSpec.swift in Sources */, 808792361FB145B200EFE77F /* PermissionManagerSpec.swift in Sources */, + 418BBC4F20D02FC200EC09F5 /* SubscriptionsTitleViewSpec.swift in Sources */, 99F41BCE20658B1300B240FC /* EditProfileViewModelSpec.swift in Sources */, 8062E33320A3AA760044F407 /* SubscriptionsClientSpec.swift in Sources */, 417A70031D47918200FF46EE /* ResponseMessageSpec.swift in Sources */, @@ -4220,6 +4310,7 @@ D1411A2A1F6777F300D6EDF7 /* ChannelSpec.swift in Sources */, 80A63C571F71D2E400FE5AC4 /* APISpec.swift in Sources */, 8067DA9D206BC7D2005E3369 /* ReactMessageRequestSpec.swift in Sources */, + 418BBC4D20D02E0100EC09F5 /* SocketManagerConnectionHandlerSpec.swift in Sources */, 77C2612C1F97453600724A1F /* CustomFieldsSpec.swift in Sources */, 0BC0E8652032DF9B004BFAAF /* DrawingViewModelSpec.swift in Sources */, 80E99F2C1FD8B4BA00B70B59 /* APIExtensionsSpec.swift in Sources */, @@ -4285,6 +4376,7 @@ 8013F8811FD6B6C600EE1A4E /* CommandsClientSpec.swift in Sources */, 99DBB87620903A7F00382DB2 /* SearchMessagesRequestSpec.swift in Sources */, 0BC0E8612032DB20004BFAAF /* DrawingBrushColorSpec.swift in Sources */, + 418BBC5120D0309400EC09F5 /* ChatTitleViewSpec.swift in Sources */, D1A403D91F6760BC00798EDA /* NSAttributedStringExtensionsSpec.swift in Sources */, 8067290120081046009FE94D /* DeleteMessageRequestSpec.swift in Sources */, 807FB53F2045F36E00E21429 /* EmojioneSpec.swift in Sources */, diff --git a/Rocket.Chat/API/Clients/InfoClient.swift b/Rocket.Chat/API/Clients/InfoClient.swift index 2a2c0e30ec..323e25aee6 100644 --- a/Rocket.Chat/API/Clients/InfoClient.swift +++ b/Rocket.Chat/API/Clients/InfoClient.swift @@ -25,10 +25,11 @@ struct InfoClient: APIClient { } } - func fetchLoginServices(realm: Realm? = Realm.current) { + func fetchLoginServices(realm: Realm? = Realm.current, completion: ((_ loginServices: [LoginService], _ shouldRetrieveLoginServices: Bool) -> Void)? = nil) { api.fetch(LoginServicesRequest()) { response in switch response { case .resource(let res): + completion?(res.loginServices, false) realm?.execute({ realm in realm.add(res.loginServices, update: true) }) @@ -37,6 +38,7 @@ struct InfoClient: APIClient { case .version: // version fallback LoginServiceManager.subscribe() + completion?([LoginService](), true) default: break } diff --git a/Rocket.Chat/API/Requests/General/LoginServicesRequest.swift b/Rocket.Chat/API/Requests/General/LoginServicesRequest.swift index 4e52b34308..5304bdc394 100644 --- a/Rocket.Chat/API/Requests/General/LoginServicesRequest.swift +++ b/Rocket.Chat/API/Requests/General/LoginServicesRequest.swift @@ -18,9 +18,14 @@ class LoginServicesRequest: APIRequest { class LoginServicesResource: APIResource { var loginServices: [LoginService] { - return raw?["services"].arrayValue.map { + return raw?["services"].arrayValue.compactMap { let service = LoginService() service.map($0, realm: nil) + + guard service.isValid, service.service != nil else { + return nil + } + return service } ?? [] } diff --git a/Rocket.Chat/AppDelegate.swift b/Rocket.Chat/AppDelegate.swift index da6f808441..d1cc07f4a1 100644 --- a/Rocket.Chat/AppDelegate.swift +++ b/Rocket.Chat/AppDelegate.swift @@ -58,6 +58,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func applicationDidBecomeActive(_ application: UIApplication) { let center = UNUserNotificationCenter.current() center.removeAllDeliveredNotifications() + + if AuthManager.isAuthenticated() != nil { + if !SocketManager.isConnected() { + SocketManager.reconnect() + } + } } func applicationDidEnterBackground(_ application: UIApplication) { diff --git a/Rocket.Chat/Assets.xcassets/iconFacebook.imageset/Contents.json b/Rocket.Chat/Assets.xcassets/iconFacebook.imageset/Contents.json new file mode 100644 index 0000000000..b996c9e203 --- /dev/null +++ b/Rocket.Chat/Assets.xcassets/iconFacebook.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "iconFacebook.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "iconFacebook@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "iconFacebook@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Assets.xcassets/iconFacebook.imageset/iconFacebook.png b/Rocket.Chat/Assets.xcassets/iconFacebook.imageset/iconFacebook.png new file mode 100644 index 0000000000000000000000000000000000000000..8efd73ad1f98403346e8b2b0be925c3a10b61a91 GIT binary patch literal 495 zcmVPx$sYygZR7eeDbjsM=&hVe1n1SIxD+5&l<8KB=hF&Jx7!GnN(7`~5Gg05=$ieWR zl?9ngDw~sy<(s;qz#tQlfBnr5GmC5s;=I+4#QCUcGcq!2 z!wdt_&2!G3J#gl!F-(js3*5|Q&cyqw+rSLLM+4)4bWj+hFF>p=l6}C+!u*4cl}QO^ z!QX%XpX7BN`F8u!N9BM28JPb6{|^rykQ$PGAS=%E3|ZgJ2On?Wc<@0DXc05ea7LKL zFq&iwSXdeV!Zd^EpMU=TN9LomNwxsp07865r}RyDT>vt`!9?n8O|r2(#IXO&z@#aN zWbpU@{~5l*_+jNc|GfM3O9I9xDw5e)nEo*`GKfGlVFWWLP>vI7;E(s8f3d*~2hmgw zqThf2Jq7v(#Z01n@ap{!uD2h5oB_Frot2r5hl^DY#0G)CfB!xC@a5MF5c|%fPoIF4 zGKdWWM8yG2F^E=E5V$?P!d4X~cK+s@110^(9bkNP8pS*4lGNajT0k%qheZ$pYk!&n l#@|e!rUe57Ei8dFTL7~pg~_)Hw}=1$002ovPDHLkV1oZY=T86t literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Assets.xcassets/iconFacebook.imageset/iconFacebook@2x.png b/Rocket.Chat/Assets.xcassets/iconFacebook.imageset/iconFacebook@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..baefdc1a97e02fa1cc5a27bfdcd27671e8aae41a GIT binary patch literal 772 zcmV+f1N;1mP)Px%zDYzuRA>cb^vvBR`t#SH8H@~!9{(Bsb1@770Cej&pj&sav$15bfE*8Wa}ZEq z2sj<$L})+<0o~5P1Pb{f<8m~Ig51tDRFVyv+reCr+nKOQ3?;Eq4-9l{u?(aG^i@T! zd05H3R+krG=HX^#XJTMv`u^+p@9#hU{rUFu_unsH|NP%|@(JIebI*)$xpP1~U}q$C zt~6esgNvO-3*BLY4D2XE930FCfF3{*L*~%k1C>dJ2VKl$?0}A7M0N5hi z9*`2_dBV)hB!kDXe~w>zd1&d5JJJuIeU|?D`wzTT{O=zF-aJDW56FshzXduTrw7hl ze|4Z{+9?-29>gg{mn0-E$oUKcH9-hCy!5#E*@ZGWBP~B5wG9=;KL`6PmV4g zz~=yv+~0ry$aV+W8VNayUh<YzJCAn3f;lz{6X!3H}8LZL3c1Z ze^7hi@r%#D(H)G=r)q0-#jZQNhU%gR(Jj$e6J}PF;s26H2sH zGa3W53|(T(9*qHFLW!1YMq_}Mp-YU}qcK2CDA7{QXbjLYbcr#0=*IwP;RG>09gJ!~ zZU-$j*fAI#M~s_5Zf625Sph0uHeh82w*vqPx(2T4RhRCodH+)YRnQ5*p9_hxl>{Y=;VDpOM{6|}VQ5TW#O=^#N7bnqhd0e0vR zgk2)(65XOhrw-lf6jYa}gQAd75FIMXG~5(hGnHLk_hWXZ_q2yA?wdDHk(qV=1M+77 z|Nrdn|L2?inqe>^%b6RmD)k6@pkvg5biItm9J^rr8|!EQd(o|T4?F#s;%E{5GXW`Z zEJ~`zF`idE=!imR4&bB^()B`Wqpa*!De@3Ph}tNQf6XzP3FP%yG0H;@ApjE00ssOa zfq)tR@nXxT;4cXO`x#-ydve1)?$SfXa%prhB_vN1N(=ZKSyq zf(AVpBM-qVa=9{)$Bj_U-uzL)HtW)91$5zb?QqY<#wOB%=^3!D+fCd^8=!kVZ3D-f zOFK5v3y>ck)lXEk-cGiO{>`uGYHrgsIk@;AkW)0(0nL1eChVv7FE^i4f>T%*>)Ez@nuD2 zy1DcCqnqG(WVSI=YhR$ktb~~cXpO4s-@lIkZ8cjjQ)gQs^0S5MK9*zZw!Pcg76@U} zK4>YdM$A{sRoWLwrVosCnR1!hodG1%v1Ba(3BUjdfCK`9G|V6Y5I%M7<+i;8@E-eV z-^urRIc_g6Pvd#nnZ@M0ScOpy%aJ1&e?sB-FLv8#eDdO3==IP?2$>r1uMpk_sHRi;ek1QfJaR4rn3}DovUo!d0gM1tQUe z)Jdw20*c18>6H`fg!5*tz)?VR!R3Xu*3GRs3TSF3Ed8zDQ9xr;L5UwxR%e)_fPVOc zS>|@EwJJvejZX%BYpt7Gv*eTX<-Y!yD?=GKdWtu@nkO6f7n(ZFg&gAf(EDh(#OVHL zZX&QKeZ<2OAb(&{csOS+81;)9W_fbTUHs=%NO+&DUS@REE+zxRY5|Bza7F;)z_2g? zF$vBHKpYqr1|TNE83Bj`!@>Z>Bse1gabQ>&fS3el1RxF!3j+|7;EVvofni|)ViKGY zfH*KL3_whRGXf9?hJ^u$NpMC0;=r&l05J*92tXVd76u?D!5I}quGz)OL73Pm^nzv} zky?P-DD-M?BrSbfNb0-XK~Zv%H)^BMOW`SAd>AAA9CkPI52lw1Bo_1vc+}<}^@8pm T8wIR_00000NkvXXu0mjfz6Sm@ literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Assets.xcassets/iconGithub.imageset/Contents.json b/Rocket.Chat/Assets.xcassets/iconGithub.imageset/Contents.json new file mode 100644 index 0000000000..7aaa97e7db --- /dev/null +++ b/Rocket.Chat/Assets.xcassets/iconGithub.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "iconGithub.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "iconGithub@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "iconGithub@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Assets.xcassets/iconGithub.imageset/iconGithub.png b/Rocket.Chat/Assets.xcassets/iconGithub.imageset/iconGithub.png new file mode 100644 index 0000000000000000000000000000000000000000..9afef70edfb6432e672ff7aa1c3160741d76c58a GIT binary patch literal 911 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 X=7SpyrXr2{00000NkvXXu0mjf&l%&L literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Assets.xcassets/onboarding.imageset/Contents.json b/Rocket.Chat/Assets.xcassets/onboarding.imageset/Contents.json new file mode 100644 index 0000000000..b2b9826a5b --- /dev/null +++ b/Rocket.Chat/Assets.xcassets/onboarding.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "onboarding.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "onboarding@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "onboarding@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Assets.xcassets/onboarding.imageset/onboarding.png b/Rocket.Chat/Assets.xcassets/onboarding.imageset/onboarding.png new file mode 100644 index 0000000000000000000000000000000000000000..c3b3f90fb1927a1de48784afe7b2f5e736d103b5 GIT binary patch literal 48612 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

(IYh?}$SDwOxhnUIcs{160;^#XTxcs0E9 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

Jox9NFV(h;SFMJMzT#!cOo*G9G#} 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 literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Assets.xcassets/optionsHide.imageset/Contents.json b/Rocket.Chat/Assets.xcassets/optionsHide.imageset/Contents.json new file mode 100644 index 0000000000..10a333cf84 --- /dev/null +++ b/Rocket.Chat/Assets.xcassets/optionsHide.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "optionsHide.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "optionsHide@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "optionsHide@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Assets.xcassets/optionsHide.imageset/optionsHide.png b/Rocket.Chat/Assets.xcassets/optionsHide.imageset/optionsHide.png new file mode 100644 index 0000000000000000000000000000000000000000..b63aa20bd413e8771f413e5f92fec05b03749dea GIT binary patch literal 862 zcmV-k1EKthP)Px&7)eAyR7efQS3hVIVHAJwyR;$>Qgo_+2T`%+%s(AE2#Qi&q>Bz6iaIDR4mvpL z;^yciI0>B;6ckZtu_zKmlQg;5q2QnmN-34#rlFV5_q*JMGk3XEP0|~3-@QM--+S-A z``!!F8n0q;VcTlGc7|A=BuzWTZJ3z0$ojjizsY)$G*8FW;L}86-`BOkawnr)@#8Vl z_H7~_)mnG7XJ$>Lv&6>DOyb~d6n6hIg1~zbj2i#V!KQc$gFcc%B z)vycCwn2Q#Ux6k$-m$LP@4J<8Sg?2nJZK#8_CT}j*j&9NMlis4HnAI-lQ}*oUAJF_ zMcWG*E8{pm!$#)Lcian_Hkd9SJ13X^Rgsc3-+vpIfS8#+YfZZYiVgxCL^0m5L*dB$ zCt~7TlrZ-a^Hc|}fEs+@jk#xaz#u|kE9NWdqwfgdG zZed|-CK-P&6?o^@hpvT}a|J6Wn>^^rrJj4!ip(V-bJ;S0RSI79!HZLqYb7^QP`fc z%Xb_2-UtQkCOIB3+!;z;l4Z98uz~9z9>FJvQt(>0xgDV(LQI*`CjV~}ia&5#GxpLA o&D>MszApdO`~hIyi+`!V0SGr#iL<3VO#lD@07*qoM6N<$f>>;k3;+NC literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Assets.xcassets/optionsHide.imageset/optionsHide@2x.png b/Rocket.Chat/Assets.xcassets/optionsHide.imageset/optionsHide@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5ff340df1e8ca836fb83863661030a597a67f91a GIT binary patch literal 1798 zcmV+h2l@DkP)Px*z)3_wRA>d|o9}BJMHt8D*-g@F8ltqszLSt*q{-#(l1qy%Rs?JPQ3ORSlorHy zQiS$}i1-JjAV?9!H$sKh`s0O&r7b0(SZt-{a=+4$q&6smC>7DrG_9BJj^Af@Fb)b@XnJg{OWrdN3qj9;svq+871m)0q70hm zJT+;jQnA?d3gvh{76`bMQXkEY9gspC0qic%nrh7?x&mcC7)ZoECnBR}akU6w;B@xd zt0d&xQpm1aWchuT1WijpL#br%$F(%TiY=bbkMES`y${iMlYW&Bv>b^nX-%)E;yqVa zB3G;SA`Y|eYyH*?%KY2LtJfGXeNb0 zSVz{?5BRbcXF-^NoP)5c`;i|7LMUTk0`&YqqW5AY*%iUry}1?fer~TMq|xpHYNlBi zJ1e<;Sy$(QjQjLjgJvVJ&a68#lrxGaIKLiv^ls=rU5?1kN1rdffjqmYCwL||_HLuS zvTUAe&dk6pUe7G)<2)ndi2)v3a?eXZqvzorFNLN*ws?l;vN*dqPeY>u%|>CC5|hj2 zUEut|fquO@bMG)+2TT^5QilW1*5-fi#TVAdT=&DjAUchO#p~f$`5!*>{-k-?$qKiX(Nb8dWW@5-$PEnc2UP<9g49p^P<|kaRTFAA8@HpU?l% zI&a?m5^t5K?YxlB2DNY6tns=xDyj!`QPZ@8Dl`Me<6CcwL~K7AP_tMW-QOSY{miS56wy4EjSs=?Pk7xAI*&Iv0B-GW1TEWmnwh!9JJige(y&}XY-rw4l{u0d-+@(~?=hKp z82Jb0ipIIg$w_M;%`P{P=sT(D`ir=}W9J2Y?trV4tI}X9pi82?bx&&h_TN=`ynaXW z-Zy~W;^a&D)a+dG+kF0p%K!uM-m`-Az32jeJ7oh(FtcXwS_UK&;}dZy0|XPqX*`Vxy$+dWT$#>Fxh*#iS);z<8Nwyt!ZX<2A5ie@$-QG6r=OY zot>R`Re2-1!ZBQ*hNYX;d^HXDZAGJaC6l@4ddnmdJ>#OKX;;wjJgW2FbRb9T#^yHw z?;4cSnZj{lO5W!2v7#fln!@-llPNr*DwOK!`4wZvkeXLZnwjD1)~0+da-3&P({wBf z&?dO|Nm%kNr+|+HyrSJCaS@-8FR8_m=NkRhd)20ynbO((RkXm4Y9ID2PjsP0YdIps zzb!>W@MPo}&vHI8;W;K&gWeIX8$QzR-i;e3eS&qQhkQJ`Y!P&uA8908I0b=+mMtBv z0;e#z$;oIj`Jl1lY!GPUqiCdxaBz{v(M6zgjl_|nTnb|_vt~^+tmvYpB_f#vR%R|u zVC4BoLV7|iuv*|8N9I{3f|)j}1#Sh;A&xA9oNgpA+JS;4SI0aX!E^3X(YsO^o%u7S znEGgTY>IarqKC|erRjlW4DqxJ-xB{@92p!j7)5AiVm2F^uN{k9H(~X3t}qh09aBU> zrV@RFD!5~Ds}*2%4wFOyd?ZEVV3rb-Ym(*yXHQ_ohc<}-9>1}|uq?Fr5| zI3Si|L*WuLe7%+q)|qv$6x3T5oIyD|H9sR_yG8fAFJE9i0?Hin%XI%#B+kU~XIxFN;h@(hX)o`|qpw1YvS%DM%iP)Rv zM(=WUtyuB3{xi;s!MP>b`s?oZE7gU#0oK(IcPhM{URS?Z+R%&7_D{7OXM=63?o#wc o`JZY9UB~v$6p@w>`={Ff0O!`blQX3AN&o-=07*qoM6N<$g1x7OMF0Q* literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Assets.xcassets/optionsHide.imageset/optionsHide@3x.png b/Rocket.Chat/Assets.xcassets/optionsHide.imageset/optionsHide@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c474eb9f0ddb46b87e1cb0e6e60344bb20ad331b GIT binary patch literal 2971 zcmV;M3uN?(P)Px=RY^oaRCodHoquc`M-|6s_UudS#-**Cq)KY2sEl#l^ZCwagwha{R85hHno@*R zpn*hykN|}rY6Subi9bLpEh;HgLgH6ST0n}Ziue(=rK#M~s8amn&KD;!2BqKzM4Ki~ zYR-*w-r@VkUU%E7`j{JM-R~&&|!w&v%?P;E~B>ZdhcjN7q>oNOFg6vB$6sxM$Xzb+4 zcZr4k4qX@9IcGbBV4K~t3-ZoF-ce2C&+}-@(d5lH|I;nmPUX}M`pD$uJNZKXULp7% z!Nhx=W}w=1obl6~i$fyX@_4GR?_brXcO$;9&?hG+qw@>-kE5#C3*$d1K-`T?IFZ3Y z9_fZrB^_*ww*02AuW!ML94Bdf$@I+3Oxu57pZy%_-uqD(-{8bhPt$PzD&7eXZd`xO zPrJIh<~`K~;hsXDo}ONFX)d=PMe07(s~fz|Os(=!|Gx$x4_&>k{gLkO?#s2xQ>FI| z`bavvlL`IDfZeT9-l*Y#KP{N{#i2y(SubpK9eO%FwK*>?KaBeNV_q2Sr%crQhgunSpa_l)#JXQME~#IvcnbV)GEm>EIxpj ztl{Kv{=@cYQ}_mXzO;l zoxjGF$7i%we#c-ecFL)Zn$v`%naun3y!dN#0Vi6bi}FqRcgoHYbZQQYMfM!3lznRVmF{!mY@1 zeqL+gTdS$#Z9|u>ltq55`RZ^h(#2tXCK?f2?6zub)#=m@m(9YaYNZr|Eq5=vh!1fp z7t45N3;O(m{{5zChZ|I!oY7B_9Yh;xD^@SmwFmI0Y{&|u5CP8bsx)L!7W(qwRdzLv zrFdO3XsiZP1ElNd;)jPL0$kgv8jrUu z=``a*6A+G+g^45q&h$qmM++X7(B%|c0B3wG@>jPYnlU4eRtA(*FLDz3-1%36FsEsi zp+*X$IoFMy*WFk=*=cXHM^e|T^pwkMhF{|j%`wqfb>f1JqiI}I%dC(fi- zLZ=1!ejDLLAJ_Od1{3{XlXWBnV2W%a!dth{+CwMu{7z$Vme6Sjgx>~KsV|QbzArV< z|3GoNM56Z6aAq^r3h*O7AYQ-=b5|k}!-RO{L-wdI=O07Ndn(7SPmE}Ub!oJVtv>22 zXhru~6OpZUfs-`qYNrzYpTNuYM-`;k?J@Dzux zh*YwFzsA|O)UoRKgm`OmpJx4RDA5eyFJINx`hi$1rmXUgk7sWm8P7bXnj|2hgNgX} z&^Y@nE>XA|=)k^MZE0g{gBZp65q5p&ZN0s{Z>TI9%bd7}Gx0|Zn||uzT~_dS`M?SIR1w7PK~yH`>V868`szm@B;ia>f?Or)1?qpDc==L zKTtA0B-p@Pd2wtco4rYu77ILIWD$8@%!ky z_&MDJa%3c(`57k4ziIVch6(X*krywe(~}8RoK$~*R$JS;1@ExGsp9w%PQ2+wS}*8% zA+)`zMC>6|X3v~CvvxF{{hiR+XH;=k!iCs)MJx`FW+s&#J@N~{+t=QTdj9xII=?T# zTSG}|^ItE^A>+G;lDGUyrF(q*%r$S!UV0Yx?N-Gp2^XS6=!-{2#wV29DN{W?=c3w% z?f7OrQ`1Su|1F>Cb)x4mJ<5@V|rD*Vt0zWCf9#1CY@#j<;)9F+1(Q}uN!LD0W zaVmuaJifu~(UJ7TcT{mxoL_0-kuR&BdlgRpX{hz$FLch7z0C3P6GM4@;U&CL<+yXL z85g?v_UPEePv}FilC^GK)bS2ED|vRph&Q!f{Dm$=(#p8e^octb+2Zp6?rOh5XX5jy z;}2W)UN7Zx%GQpRjc$YyZNi)N$oQFwAn78`#9OvsQNJAxlJP;c)!;0llcUI> zW+X^<8=NI{^2`||o@%Dv&7yt@m)XKCOmxti1#K&Q2U81H@1^gO(*kpS^DZ)YTN1<)yg+*zZ$`Wjt_ zM{NX%Bk?SjQUaZ}RAby(xh$esKzOevKpcy=s8j3`=oCo)!|^Fi({*?_BS8F!qg854 z=+a?3*S=(xAPlof0Q^*r?=7K|SS;pz295f|HdTbtOazD<@iPS#Tq>bcEOOWm0T&8V zgg0dg5HI3ZE>cu@tOx~>U2381$&+NWEwHSqx5uhxU|NBOL#m7-!%Q}t3T z6gwX7Lf9{`{`=bEXFK@kV258lpeEX8CS*#1WmmEc^;<+78t7ox+_His*K4f0%=C+=4@_a4nDnq0PR5;`$ zzlE4Z-+>(qn^keE4Trq5v;%?`sH5YUS=L~aYotDAJ{2A@|;F0Xhe zIjF%mqXTWO4)g`u(4?Cu-v+ex8{ydbjg82(TTpHrWK*=M%8kxUv3<4P{~zW56%WNP Rmcjr4002ovPDHLkV1n-w@9qEq literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Assets.xcassets/server.imageset/Contents.json b/Rocket.Chat/Assets.xcassets/server.imageset/Contents.json new file mode 100644 index 0000000000..10b396bde9 --- /dev/null +++ b/Rocket.Chat/Assets.xcassets/server.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "server.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "server@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "server@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Assets.xcassets/server.imageset/server.png b/Rocket.Chat/Assets.xcassets/server.imageset/server.png new file mode 100644 index 0000000000000000000000000000000000000000..68d0a3a91ddb55a457f0b9ecfc37f2dc4a20df03 GIT binary patch literal 21299 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 literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Assets.xcassets/server.imageset/server@2x.png b/Rocket.Chat/Assets.xcassets/server.imageset/server@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..faa77e0bcc1e726b5a0218a2115d6f0d82dda291 GIT binary patch literal 46941 zcmXtg18`*D({{AMMibjMH@0n?8{5VP6C1m+wXtp6wr%Un{@(9jT{BZNb*oRG)4bi! zoiGJCarp1p-$6h?;3XwQlt4g0^S@qd(2!rhkfR?{e0_jADTxb#R7~I=gMbKtNQwxm zxPzYQLV2r-E@U-7wzGQ5=KUH8&y|o3q-PWO_E&=l2DpSyYo$Gk{jTFeXQhjjm}~$p zsty34>5_q>s{Ao6fFTMd4v2l(Xuo|wBx6{6(7M?em1e$uCA*yX?R$~I=`@k<6oQNd z0r`*q5J5)kq&pxO?{VeUC6ag}!khVg&~NkGcm13Qn3(>#>1IhAO$cTz_?%v}Skwr0GXAz{guv2~}Kh z9OZ_nf0sr3S>1#WG8zj2&w3*5r_;Oqy9BP71WLI2RA>qa8WvGV)X_2EEC$|^T`*a~ z+$ER@p_L@2X{a$U0hrKGkeE5-2T?{cYh*DT(C_qzYVIrykA z?ad(f?fn(NMVD~JN}+}HCE}Nme2^My$>k>N6InT&i<7wzyNtf;L)#n_J0pnX6)>>d z(GOHUpCYw2>FE34C}sXFCj&$uhyJ%5I=DFfNLyq{xTM!amRbp^{)XXxV9eVv%}o#j zxR413*IM|W|I`lzl~bUM%S5b`)Dr{b2~?y1c?%>AhOEq0`=@TPE`e87*o$ug9=N## z5|?dInW2aKrfr9)CEGpzfaPG=*<8GT*HsyA9f|%XQBe){<6@IKjSFzg4$+vdB$f26 zS|9m_ZBow2%{LvsE&`{+AhmNT8`@0_s!j-h54yn`aRRmpCf-|@? zEs{v%c8A{;dpvC~0n2WXc3~cU=beA74?o zR}tZXF)0buAt;MQ2z0py#-8^{z9DEDag+Y=6gM(@^$9fi0nwXlO=|e1eF;yTT!!)Q z;9jud{9x*Rm7>t5AcLZAyH_9VQUwItHd|i5m)Ob3T-I<##6;J@z;n9%n-Hl`HPBqX z!_65Oh+_hfz8N`xU*Qa9a>4EM6(O59u@gk9*e%>7u}KgqxU^xlR2CBQ0?>a&3u25f z?+RaYBk^45W3t~HihCHOE=?91bG0Rf`-c7VmFPkn9BC69r?wnPM}@QvZ5oR1>y&4V zgn3}$f!uFoGC~ z+#(Xl5hE-hN+G{PtG<>5J$yS1HhW`QAjjk_a}jvSiCRh~Cv*8A!*mJff`A0;_9v7G zFp%Cu!vqSzp`siDPej?~%2R`2mqWrxX;O(G$SD7=$gmV$sslMJtlCUwzYB-cw%n3R+p zbDNS$w^!wvp){T1f+Us7+3kTseQN1W;}N;#8-dgGk#3@2zKQ=Y;u6wV>fD~#Qz$PQ zK5B+aOXfcMxNnS^;b_!T(lY{>;p`nYKER0OnO7 zs9i`eV z+6N+CRuJxqyAD)IzQX9&1HSJyQQ)7j}Pma;+Am#MPeuKG9wupy)K4nl><^{WCDJen7Q&fd(!>Oy8&sBk9{v31G?XncK``{uB41mH{cN%+pE>p&sqNB#d0$Lsk> zAdct~Naz9)@l0AzK;Afu!{ir;&zGJ${*lQQeW?#T=OGgB(*3f@;TS|gQ|d-X#P953 zmSWG-`9s8vQ~8V_J$)?{uDa7KoZH^Z^zc2L$_O90F2Ax(8t15gO6uzHK*MPm5I*4t z(P3Mh5GGA;cI`r#VMb>Eix+bW&h=2M5 zVK}d0(7S-$53;pa(F|pOx*s9@K02pLvQ2FvburVk#eD`mUkkF4KAP|84@YO((fqG& z$wmivfi3HjcxSX<#$YfFaPm~q#=bl0B*@@*N<=5m{Fj6NQJb*<qwHZr0ecDAi=;4wf7u-xP6Qv)Q*JZ$sMzsN z5p5ww;xFPE3(7Wl9jvY7QDm7^OV_R}H?D=qBG+_QB$z-{ zk4x1%iT}708Zk|sSF~vi5^*Wyp2?`HLIn(6(VWVI=Y*A+6`=vju|y+ge!>K*$isyj z{h#=Bpy1aD?2Yl7qNPHKidPA*W`LL+``_qyWg?`@Y$AaCI0&I& zovT>(d)rI2YXkCQjdWG$|FaK3Gp2;x=9Hvj(kZkl79m0tR;!>OsNyngv?UbTjGQ?o zYW754qLesU5}qpAeKF~%xTz}diNZ2f z-pG;Kzi=l@3Ik`(q>!iE_p(BYT?tqTqqL+rgXS)YbQbH7ORSPpFg*{#Gop}bkPA|T zIYub%Y_XIwpV-1cmJKX%^`o_u4r@S7^hggWC*9_D4+l^RVZJZxd&=XUYSz6ZXIV}R2~n-5MOD@^-x*bC)%!xp?6o4&^K!iIe7 zfv}*S;wLXW4B#kbu*`YN{8Ue5xj_|-t(?4_{L$jCJb1PX84an>&AJ zF$0~Q4=rMemor0AU2~pbKu0KxO+i<6tEnmTr=8^z5|BICrTX{~29^%B-RgmudldYg zWR{75nQr8--7JysT(r7eX^jLdbRr|C8~h4~x;FGc{UpYI{yGVCJUY!zv!;>16>>?R z2NL-q+0+RZIDN5jEpD-`0tYeVV^G4*e!Q%n9wYz0mu?M^RT_@e^lt{p^csKF)~m|u zz)$N|k>LnMrJGz{SWk7wpu4ndZD)(&00t&`rATO@4{LiSEHQV&YrWt6b(QwXcp_LC zAAzK^{7#R8frQ@zW#bx$4G4W5ZPjJ6%Yaf9{Uhmx$_zF`lufQkd7Xj~j?k86p^Ec{ z#q_x3)Z8K_$5k>*hJb+H$Q49!!GN4U$gMjjY&f4u*JS{lxBMm5q-7JS^I{6fitPj{ z#dt-1_B)hAm5SO@Tf%Hz>={*EO`tB|GYDYO+|KgK^BFw%UAG0uY5_NwKFYD#_2}I3 z7|_Hyd3NN9tt zO%s^K$e*|DS%#Mo1$GIrbPHr1BqG3O(C+Q-pQeAm^?2 zddT&o%L80i_#S6^1Gytm0_1D^lVhwTRRA_@nbv}|&Pf`uxSF^>|5Zjp; z`bQl8JRf_7Wo6CkW1kt(zP#Gtua>;|^}I~d;66Gy8(;XBTiT`AN-)vL#iLn}CTRf8 zwCL|#_j{zkI*!Pc04tSG83%<8a-|S}lpl$zMwA{ho@Ft{-(l04c5cz28)2=RqyS-L zQjhe7vnlP;0kXE;{sXuv7%Q+!%wT`-bY);hO^qi5!AZdi@l*!e?s~^oy{a{rR+^2_BO=`V192j zP=pJzWj%Fq`q+S_8)h9;XpYbS1Knu)9j>*1GS4WF|I=q8wg+V7q=r2IP%pRvW5M3I zu1m}s<5Hj1yOv&=M7&9#c}HcykbNW!g+Kct%?qsh1B*DDU8}xveEoU^XdK0ZI^6~d z4)goe6G_yA;1YGM+NI0Q7tr>u`;F7Wjy-X7kX;UC<~BKyQun7N{Oxi2wFO3VSQwQq zc(I}&e+>aKl&y#!Mpp*EUSh&aG0s+E$KT4SFBQ4O^?M&)gH`Ft%xRz22VpYnMl=Vc839jG$o>9s^=H3g#Lo4)Z8E zGX+jO@^MFaAJX>)TrC3M*bRCb$45T-XqEk5?wMI*VgI5qeun))VQyq|-C>cT4}l}` zhXv{Jjfg~0!~--{D>^Qqksa$mzOicbAOfe4uKW|P*nBqYMHGJ%Q$j-Di$Qr5mDzYj1YPT zMh92~-6IfX9=IMO{7SVIp6lZl^#R18HEXO-X!OlsubFfEc-fc8tlNg8aCj@Gkv&EL z^+0Yu_wZYx5AUxhi4i_}!cdk?m;Pp<`{(q@*+ zSEV0Awc1ATYK)YhusHBqTNwzcH3_L>ns?PY>GxraUTT?SlZOkw!HWC-4gNCg{t$Ot zXSlC!5d@kV2kp3knRf}>E@5Jau+83n?l+6g;JjOyF9jQw)(EYllkc;qCa&EpNC?d& z+O?L+4W4Qw(l7iFD1eG^QhKhyvVzD9J8s?#a9_-zdt#6ST@)Fu=qBQ9B4^fF3{eg8 z3L?BKVLNY~KnU6IP(=X~gYG1)98tW_p(w!fRU?(2ae2ik^hKigCX>+{?d-<5YVH>X zH*`4cIRC8SwGyard{BfuEGN}X8O$Erl0*5=T2_lO?K8&DMq0nYp7MKB(+J4oh|u6v z$YriHGTNANaA$IGUdjz!>rXX=;hnSsv~`MtzwIuInlRtk_M7-(qZUO~%hhR9&`V0` z^D8N4aGi6|YTy`X^7m*=Xs`8yDh>J&a_AgXw&HiGAVhqxYr3Ga)0dI-21Kep3@(dQn`Ggj#^UzQ*gKUp1+t4NKqN^`-pqJN4goAzI;1sZ%Ux#;ETnt~`Lgf8xIoda4C%k`{saOmN%XP>c7 z{h$#Bt@PGt1hejN>6s8tmnS!1=GGykZot?R1V)EvFnvBo$mDmJ(M#Ch%EMj_?VEdB z0+TBLK~sw}8Jpyg7LRQgm(elq^%8q849{lqo*?fEx4!(pwG{bnTQS&G4O!#&zr9u{ z`90k!D>}HKp14uc{TMLy9&cXgkWPXq;lMy{y+PDf;49q44CPMJ1sv2!0yOxsb`H|6 zYLx2k^CrNToP8vU-?RETd)=V48jIdwur?74N{u5L=+yP3vbwxI`byIYCDb&Ks$z|@ z#Zc?{G8p$YD-%$-sbqH4_nM9{>=oB@VqL!{QOIj=%9f~XzeejuyBfCc2Cz)ILL5?M zyt*D8OGj7G8QtrgMw}sVg!(Vd)FMNXpAo&SYc`qhXlP?BgEaiRvnF=>G(F`#=wVN=D}o z6-To*Z6Iv04_%@NP)ae{fWJ{oM&Ti@4vnZ0=R2j#>a^HOH)QCqm^&;IH&j?%O%N<6 zl<>3;(*QDcxyg!@4}i8~D5Ab}O`7H!=Uv(YLCg4sOP2fb+ms9~$+dVl>(Xu&VO~5C zCt@-mZ>cuy*YF4cT2vhC@lq*1V<*{S|#&K@#`MHcO3uTxOtK)TkrC=Tbm0w@|Yj_ ziWV3@MLnk&V>vh<$pN`3ZObUzzur}okI!=!aHUdjd@y#3o8WiiR;z%{<%5I{-#C4+ zR$Tnl+@5uZeirg1E? zg3Vp+-l)NVZ(%dX9b=Gf^U&j5lqRv&D?Eg3;#zK1_cw)^^k22S@eU^`CWqsbwFIzn$O_7U_*`A*@XUMQMU~jzq(& z5@$>_QR(5_e&d|6%!zW>0(2mg1SLAG=Ky8|lF1V3Z=0B%KC z9uIxZ)P$Nl2+}9{H@GQ>x20O@Jmo0vZIp6BchTX5EA7jYAzIDf8xW7 z3j&joG&42p2uVmVnt6L{x#Fo^j?w%;UOXy3>bOU`o^v7g z5ABOwb28B3#_`$0AEW~xs3T|7>hOI`BMGNt5#gBXx0zCEDkpvneDYGWXNvlTzV-S6 zd3kF^U0t3icK&BzTY9#Z%q0qsD?tX(sQeXF zA3#dC(C4JU1VWL&cDdHc7(mBMXHfLiN?Q9{%<4Sb6)ef&QCLn@7ea`2#BBY?$K^)6 z^~~yqt!6OjrAI1Hg5qX>>K#0>0L6<)V^6`PI8#IM;@djfBBd~gvl(o9c6X!zN^hMkP*{WOP;~X zyE@WWVvjZB--55jQSCJx8?-K2f}4ySgT|&dKUmL8cCe8fPpm^S-O|#n?aPHH*@FI! zL7!kp;*jRjhrPXz^k9NAZW&HRbdeR*g^jc~)&Y=`h>5gyV-~klUdjT0RNUxb`4st} zwsOveZq&Cvl5K=Rx^)Jws+8QVEbof_eIVD88qr88r2cO0{6=V-33VwYn5J3`)oS*_ z1SgX+A1Zt&5Q|`NvnZXump96npc{IGa6=A^r+B5JK&JrODrLb_bl)vIM8MHUaZ-3; zNs`dU!xLJQliswTqO>oih?z$np2kly@lUX+^voYN4)zb^pZ{UmD`ujL<$!A{>h;Gl zxhNsRe^rv}AOp+rsn33_i+VL|ROHfkqtdgfEy+^N+>c#aeE3O?ur4K2!(nm9o7A zV$*rqWZ7;XTQK%Sff^q>98^xkK6N-u@vo|GDqQE1iD$jnb>m2{A>)lVxaHU^V+l|y zgBrck%E4>|S^l|vYxuaCN@4#&Ceq$CC_}RGfI({AP;~>|iB4``6_GPzgm-CLta)3{ z?^#F`GbPWi&$B_XK@#Vj^h3N6sjSsH=QRhk^V(6xqGL3mKTJx%-?)j(%ZKh+eom#c zNDJZC?g`(qWTdA1n=9jDAGr#(>1MC$^#1+2ed?(-N08H;lqj05A(_r}mvS&*blNQk z{zarauuh-Hv?h>3X2b_|bDGo`8~uWrdU*hi7Pn?GRV|C7_{fmY4{jTkKCq5h%D%>m z>rLzQT;K*O!$B)! zV|(l3BRKAYV%gDv@l<^K`Y3(=u8RJ5=^eU4`mJ=HpqkN*-LwcoOL&IYUMgI-^f8u| z>XJFB3WJHs%X2jBL(nSx9iz0Sj54lMRpSh?W8k>FLtu7?qMT0j_ri)}4eD$yAvZ@v zTEm7wmQ@sU^N=&pMbjL4W$9^vPaT`bC(p;vV}6!U&<)G&dBt~^TaSEsxIGOdsN*XY9l@!58n>}%01>(e zD@?pj0f{`j$Olbe_gOUpT-V^-YJ7Fd9v$&}C1JJS*h2r;w9ejkBK2GshkXc|o z?NATjRRjiGl+m#~fdtN8z%gxk(-gus7H%k_iWv2^GT-df@t7~;4TuR)xc(A2C$qQE zz1MObY_8qn8z3^c@U;%Y+O5w#+GIl}0T%rxm7WDB5^J-?6J=o|-vI;PVC+(jHUz(= zW{u@R%F7Cq#Xn(S+OcscDoKUD8ZATwEa+E+Y792v;L+0l{QaYVn@oEys~w5N96AHi z*0`jUgUHf&1E@$e;a~V(qJL5%8lhB+lY|KhKUKgY`Drr1As7zqnjFqvc4?)RUd$67 zjLO&{7Hf*r`ol=Yu%3#3;%?-*u@7MR^bcN*$23Gy?mstsd6eeP>*xc<2vWI)fufA< z<}e82zT2_183Iz45@%9m>bK}g#$ssu726woG!-V&M^c^^T=)PUSYzG%xdltXg*VtB z{OmpTlxw`P(MR(?J(>*+r7Fl<^<%!qsKMlM!$449vFn!!9-ShYrh*nKf2SwN5SJ3s zTk$s&sk?6mcQ(f8X9|;SJ%4vp_f=DJ>XA@E3T%*^0Z!1%q+rfOXis`AA9A*pwY_sKtZL(I&!f z{W+qKsLTFU1yr&Y_&`j5SF)!&FURh3tNrRonK>9wgtS>*~ZKoO;uT5U)r^B|{@@VY47`k~o zz3tWWbEzhWR=c-=YJ+PlC9=dR9rSG=s^U4 zelm6WbTOH6Rxpv9xl{glO^2~)^s3#zR;WN26Ah?!-NWmysIkEVAhKz;bbWP*Xn%e( zU5GJt^NC)&IrKNnsum=`s80TBO&0vw+}Ke6$BY*DRUi_-2V$J5h>b63GcBKM`6sO> z7rcOGviO3y333IJLxivSGF@*j+l+8pt=)NwE6$_&7E!z27B-2+1JjjDvg$YY#pk(! z3dE53{$kpnucqR9_$%0!meTRILCC#4C_E7U241gn6FU502Z;IxC>TYj^mWpvB$kFnQo$EYWY6kCK!xxi#E1UBuDf!aZpCQWCTn^iaZnQ-uvf| z4horcrl&MS*=%-9#pctL?hYUla0&E+tH9;;DS=Uu0V6a5^V;{yX;%BC5FsZ%JzhvveTu@jK%Ww^7I78mp^&Oxq=aiLOh&uDGzoPkkW#EL@)XOS2P7-8(+qe=p5m{|N$lD^)uGQNKed3&Uk_cjtczNQsP7npiPjk^jT zAMp(WpjM_b_N`aM;+k@P1w=pNrXRHv2La;)4DRCwX7l{G zn0xVV{jL_!6@B4xK;xpiqqHSl8b>DADbfl}BwgNwsG11$R{qN{FEO{Gu{-sWANiWX zM?5jiZPp7fXXuMNkgN3z7C*w#_Tims^ON5ZY1TY$X7R4s<$cYs(Ed7N zG6Y|4y9MM@6A)KUs70joKWdAnvSwIGzbL14df2ly zW5)-?Z%Zr zWT}ZH_Tj0{ph^w_2qlGcUl1F_aHVJiCATS&w}+@P`&(jTf5xSnAhg;FX^Xv|>k5~! zF;SQ!(%czuv&EPsgYYN4@^43@z_bAz1B|Ut?~_YOF1iPLvh%P?dp? zNe!&fe)$QSyTR0D4K|CJ7g$x*ZOEb)7Pd^pbNpl~tWJK4AH|n^RJ@N$qNZX-ePNrY z_e5g!7#fM!t4XcKvo#!Qa(^uDUJP;F7<`KqS7gwa*j6=$TYRZCFWVrbU!kYttis#W(YGN> zcZ#x{eK3(%ceA=}$>KarP0f6T_N}>kUnrlq?|XH_ocROY*s89P>W2fv=-&ri4Tcw>>q^3rx_d z-1DImoC>A1t!tk@gBp}xo|ab7@{|L8F}M%?HMIy9{MVeEMrn8bX^gOU3h?p*UHBI> z?(Yt$T;G7rHCj46sGXnWVplDM;;RF5hv;g;Su)eR;s|SDZhuL{cu@Mr{a}MIubuD# zdAN6eJSVe_#x}2clPE!$ixbK;)cm5S6ltY-b*NIv#<1v-(AZzq#uv1urw+s(PC&$w z1U=YK%MiTv`qfbPViqG^RnyM^O?5m4&y_T>meBD>_x25N?sF2H8wq1qiz7J$pYU@ zB{CCl?(Dy9;nHAoH75WW^qaq1-9g>Q=U8$@#$+cltP2tF3S>>!FkiDFYv#fqta^ix zY<0wn9nS{Y3rxG%kwbNc-GNWID#F#Xh`L(?r5fTBQw{!zE)LVVaf{}LvfIrE0=mI( z>nvsvMz7#Aw^jBwAq)rON-}c|_S9-3#Q0vO7ttlo=zk#vnLLiV0-F|XDX3l#qG+!c z+|ngw2c8qius|yOpf>c+mI~L?I&7Kl7ed(J!#Q9DKA7tmt%(WA3P}i!UeypAqXW3p zfl-8w^2}5QSIFM@T~X8UIdi#tDe^`i0fZ;#AXZ*yiDaItg03rmmb-%QNDx%TN7gS% z^Wmda0$OL0q+Fep+%}e!;>Qk1Id?5P>2+?x%dV6sA;r-+fK0Q$ts&6UU#;ecYKj!G z0cJWnJ!2m25BMv$KMrSIn~lTO(HB`>)h6*}=u9>E&G|yYFNbO&Q=i zgKb9E;1QFVP6JS`1o73;13))veg3I%Ou?vUQ`_R949o9Ed(Y!dk!DnQ5yAFZOc+;O zk@^^hK~}rZPRgIzR~+!ExxuHI+k*(3Yv5M_O%z1DZupG^GX<|$0ptWCE|Bz?ebLK1 z9|vXMeKVdHM;)7K=%tNoeVi^cE2AaLs&^Y_53;5OO-TZ83PANWV@O^7@GrJu zBt6dcMhcm}Mmt6e*h63%Y(k5HkmJD}ulfx8g8lLsH#9dGqTRe$ql*)0dNeFZ;nM{1fpn$*xSOxUaOx>0~or$csy=}ZRQS-5P1 zj*v#+F>wvRQodkk*t;{2M77#^sK2)dx1BH9%WcopYI?;IVa1UPpZ$JV_Pt`9n^<0W4?JM*Tl)$+L_vVwapzKQLpj~5rt2mW-S}Weqbatg&QFm%uQI}Z0833 z!({4h3)@T#5hZCmy{pZ=6__KN87K;owq1xZ^+{@6>Cgus#fb#g57JoK1NPojjmz;O zw=~wa8)1Is_=V!_7+BZYC8LJlGUG0;9MQ;Pi*5-ONW0e6ac%^MdS_|YO<>F5rzo&H z1FdmyM?zRQP?g`fcs{Rt!)LmXh1m3oY^HVTN}7fPOh+o%KyY?6sk>16{1qW+NqqqU zIavS0c5ZXXx@SFJs%OXeh0ZagfVOxlK7ailUa_feZ}8J_J5Eoqn7LT>O1ePKGI!IlTOZuYZ4>58SX=Wqwv?awPlgeX>>2R#fLlXD}=j(%&kuZ(XI z68X-Dq5rGYZbUv4yFHiVdCl4zzzh~_b0 z2k>#^jjcN)qq?+{SoSgVxzQ@G0b|Xhu2bg+PiNbW^xg6bKfy&q;A4W*_Q;W{O|t>d zEsK^;s{@n_*F_LbRV7mm)Oec026BUJBHwJM-ASswetn=Dkx((CKjLyj3U;Q++lvak7#E?}${=Ynb}r^-s|2amf{clHKuvJ^|_6YE}%gi6Gm*7`P-8Q5uf&ORB$m`R!eSeAL9+$JV8M+dFy_ zczHuVw>pX;#Az1X7J+J+MZNQqKJw>!*AY@wuADm3>PxA>Q}k0zUyft>B7RKcFK zsnZ<5=4Tb){i9UB(AeJnye zf^9vp$*DGLQdRa$B-N|7@7>4NWsaEqoDPg*q_yS)y=TL)^zX(e z=nLx-{Om^{^jSgtd3aB7w_CR|NeFEkjFB@#M>oQXYyITb&TW{C?Y530C3J2BonI!C znH)qzxgEAUx6TiN4`(n-@4yJJunw{OrPm|>^Z5Z4q{?m(=ow2uK5YF{7uL+gMVPMq zfF19GwT&#iSIEGWMe(+mHOF0O^;NTrbmtt>M=4orBy`3IKhuOmz$0`kvyhsA?FTKK z2sp8SKqJ}*au`%aRv->1f$Ooql8<+EEU>yOx zz4F}tLKeOsx)HSPx6664UX|1-0>L13@zwLo^9*+96wY=FVaTvtmjf8J|D57BHA!m)n)_r7CLRQ9>$rU(3BI z%P`oNMg);O7wD8{mSgFeRr%4?J_JZoqy;%6)%Wn=!jSfd^o4JYskA}XthF;-k@Fk* zQP1#1$=mRye5P_?g^lt~{%=BmmTKQL z(W^|F;r;^&ii^ASAKp}Ki@&EAE;su8-+D_c>;UuD=U#XMg?Qog+OXkg+|HDmsG{Yb-@yvP>#GsIjV-NScK{=n*PGlHI&q*KaKU7OH@88Uv(p+$yl<&(ureXCmPxV#_5C&igz>#nE^;<~X8#m*l4cKMBtkvg;6N;@E{yS!7IK$Ffk z^X;nhjoasx@20_Dle{T2bfh5rGl+ZC0T`Gl?_nye1BkH#M$oHNiwF0DWRlVkG3Mb09D^}$@4ADOV!c7 zPFSR_eqyjg!{DvU=>s}#!(cV1_><`Dt7LQ<=uKRGjb~O<)6hj?ZLe02#ia7Bo$LVE zt_2-FfUgBv9QahSgKNv%v;5OiLhBe8YsX!&@v3@_rV7)?vHcN6Lc~Mb0byhoP~pSO zjb9IGu+q`4O-d##=obSHEuC8LGIm5Q@F{E>TW^dqLNyQuem;qvSUT=lpFKCF9u@tG zXmMR1;^DcnLZVLJ2kZjM#>I81Xd(BP&UiOE^-pf2%H^~dOMbp=aV?S-G(BuM`zkFJ z{wnX}$A?td{!CcfFg0A{G%+n|XT3?*8V>!E#Ui`$6EoTy zanc$b99rNn1eLySVV0xtBcaPAJZIoyU66?6$m|;L%K6ViR0P1rs>34oI`RbD2g7cU4ueCugrt1IVb9sCyKbGokLerD`xL~6V zRpd(1Is)q$myMH%bf>TZ^pgd49dW^>7I??a$RacpERvgaXsBlos7XRuh9Lp#Y+0jm z7(Q1oU|_VPuIvYzBYbsoY>27jMJ{^BW0FJu)YEG%_+x7R0Wr`i%ii$3ue_a+>g7xx zu%zK+c^q4GI~aeENVnpKB>qgGm1c1;{n6)69E1W6Sf>kyMtl4oSN-C;tZ(o85?O@v zlV;E~Q$?}dJ6yG@u_N8(OkG>tQTml>&u#g(-ESrS>1V|^!{-V{?r~Bz=fhncx1`!P z@1%Gpj%zGG9d-0O0i80VWsPE2PX-bM5eWYZ?<;v}o9jFqJ z_Mdr!gz9cQt?PKSPw{#(7WcVhN{X6ye{?2Fx~_V8YV7qfb|2wqXD3uhN176L=s*bv z*_`@7+LChiLPK3VrW(+}DU6R$?B*@_6g+8+Xp63HSjeb+VZ&SDf=pve5aSa~O+iL~ zT$fVoYyjoik^%%PMV5G%j@zq9R})vxK-QY(9f0G#UgxK#_HUNQ%S{j$mrX1O_SGqo z#8h{fL;8s=;5sv3pnWDcD|dc0CZ-w0i>B9AF=jeUyf z1%F4tn#u=>CZ-#<&)+D?ygxJtbRj}LAWTGeJ-QVFfZQdAN5l^A~P=9crV( zez18~SnLE6He*eqqX3hby9u1RrNQ8gIt2`TBC;tpy0c5m2%?c)rc*kKSj7pXsjk@~|9?&`z4_6r^i=rjy3ZFjI^S=@%&b>&!at;=u$`pQgJ zhb<3@B?;C31Q61n>LgIz^nYdwgdBWB9<{|Wd5E?UsY1rA-H3)Gq#DL%6w65&2;L*} z1G#sI^1N}DjV`75BB$j^07&WF%nW?{v}I6J1q~Tc_YZEyCabTu{0SRu{5pMb6?%Sk zfqw|ApBszRh(YC+A3ENF%E24CzHXN%xCNLjy}yzAoFkpYAdUK16l?qu)>z1pA!jvw zh8U=^b0|$Rs(mEm#a-mjZuCibbR2wF$y`mzJ*s8$M`6F3=lSPQ{8fWkFzN=3K7I69 zKawh_CnPls>1J`Wb}8(RWW!KC25Fl{RzQX0j1fOB=*Q&Vt2lSEn`6REO(pj|xT}#C zTOVq$AJw!m9IZm9uSTW@sDGzla7g@2`b#cZ`axNbJb?w}_FIU$*!R;`GmLC%U(1SQ zVexS*z{??92cDz4|0#sxq_og^@C&5bZi zqP+VeuYZ+@s#NnAWW-bS0I66##DO9Z%DEEl{bl1THFJ2Oq1m7<$^#h^D7?;9fh(8Qrt$ETo6Ft^nH2s2xvO}ly%y?^! z!GI)Wx%Fo2q)$j#j=T_FWG8=(CTHF$OVo|2%mlNU&CjUsvJ4bKubbV5E;rAl);ggG zeN6s&156%lPJ~gxNAZO)9fx;E-fc4y$6PYfTH^(uH(A=YcaOzfMO& z;UPhw{`X%1`U3R}yB56YvpnWQHiIF9b%`1&jUfxRB1Fk7?mzu|ml1qc%rG=CA~1_1 z2puZd&r*~J;!95&nE(lesU?l+EIWNik?RC$Gg_F0okv#+-h%5F##MWvvKTXNn|;!g;Bhs-!aLpi!6(wEAn2IsPA zjg$jSD`*}*ufrA#Op3*&S*S3cdDM>0mi6pWD|XxhAqY2c1Teq(m_oJzG)()SK|J6P zOr_mnQi(K?O+7uG?b<2y{|~xAMZfYn&04eFk_8IajbJ40tRdk~utlbSz_ zd0)k~5SD~0T;m8wJ4qR9CxCcc6C*;4sVtq(y+${M$s7)RHRU!c$D~gMG4jjsm5*~u z`BoCkPKe`%I10(K!|(e=jClFp%F*BXuP(qJQNhBLTq7~k<*8?c-@gPd|5;OUC^5lI zW3~w%fdJi!TP?c?E{VL&w)Y!AxCaK8(JSnXxN0}F>A+1LkHB#>T98ym4k z)kIUNdNVj!T>z2XRFE^`GcAyN3O-s5_cw;X^Y-tPc9-uxprK$Bi*l{PvWiOUi3*GN zC_B4q-@KGamvS^QtT#?~p~zsX$i>-F0D=3d`{eKv@?~^SlB66bqpNmfIW$ZxPxV2& zZ%a(#T}WQ4%R((Yj;t?$bV~n(|H$?Y74Z$ z=Y2&*r{fZ~lZ-=`ZHAA~m?4Dm9=C4kP+eL&5g(?m6(}>97T#lu?PNxrvAT>n{E}rd zttA+DR#sL18ECRn`~5IhPP%^2yxx_1+=y6H#Xx25F8G2YJp=83FXbpWr7Zy!!-lRJ z#^YCf9W!Dhaqj0VR^2)aZoD@alLz~f#@Bb`;bvI&XJbdfWaJbsNc+YJkJNY_q9V0} z5#29FA+FOe{NN;ab&HSR+*ti~lpRmUhp8trIP>e+ru{pGhEAz!>@Sp*9>NGZyOVIH znzMhw$RFMD=KQOw(qP!o>xW3mXXlJho7m7DB|oo7occp&o1?NFyr9RynkmkyC~**+ zwjxxCgX+DkKzsxG&tN+b8%F*N^GZr8BtlDJ{#YtUNu||HE^Xbq&9NP?oK&UnsE7rE z0hOp$N;`p6;dfprDcl^pDtj#<*(84Q+U-~(U@~(es8#&CBRXltiPXTKlG4{*ps30} zj3u!N&5x1eW*Xs<92W$s0dEIO$mPc3(2>!z=*A2oj>Bi&bYm0vFyGq#+5nTNl{=*5 zo*eKo{~JmZXq&{HdSObbPq9@!ng%2*CNVqk;W$2Z;JEoEpCCI9ps4^)L z#6J|bxy64Y2Ffm;JcKyd=|*@c z;!s++FLrhI0(aebPcF|4?l}KdsLGWNfRFn63Eu;SU;ABsCuGyMf) zvdK*s>W0Y3^>BoFDF}d@F4QG~T1XYn{jE8m=BWEb77&RL2i6X4v_m5<|AHWdE+U63 zMeyt7JMj`Mew%T|u?{KUNUX5%4G=)nk9|1AaD-|%Z5lK^PdQ#gT zs~Z-y8T@>%^{nzAY=}A4b9FT~6$3QiyJkOW|AHm_|`1lP*c(~%= zbZ$1bg+=PSg6z~EjBpXhHJ~=~4P@-)MqFUwZw2Cm!(rneaSt5cD=H6zOM5>#Bk%l(=wG9Dg5pdyv;oBE;n>wVPncSf=q3}45zZksC~&90C&xuU(4YnysjwhO^+Y`ER!kF};Zm$xO~rcFTK{7FpcLmnR~c(SpG?XO z#yl-G&aWfDnN5?NxW3*Qh*As|t1Dpy`Z?~k`jBf>`YO{L)44Zq;GtKj#)ie;AyFw4 z#K?4p!`p1#uFGbeE4w7O?mmFK?U^)vV`q0f(BDy6%;r4Emf#(aG?s-}cQ3KWUggc{ zsg=dmEo+e+!c2zG2jWS72X@xHEbQ=76W;}opDZ#wu0-f)<|h> zey;)chOx__-oL(kM(%`t3)6N6SURGzvrBI6Q0_c_4HQ3|F>Pa(&?R$@dh4K5Wh1<$ zHz*CN-BgmUi(R$w3s3cMWfX{ixwf)SEY2#bxnjeop2~TG51zi!{>#q1w?Nb`G3Mdi zJ~*|@3g(}6(3sX#;({R6<4qM79_dxBR`oF!m28s757U@8=y66S80*Apx2On;3r4tz zpTIyZM|%q{FO#BhBNs! z8Qw-0scDsCCyyzwKK>TQ-HEG#R2(h8hfTa~2wn2paW8!y<|VD(Nx=JmS&aSq*pKJ= zW2d$e4e1CH#=ymP0THBrGk%NSUsB9Dqw%JWySOkm5f^SYY4N-uNTxUI8{nW0Gj~Mj z{>JjoFyOZBtq+$T8D;D_wK2gR8Ij^4UYwn}97)Uh4z#$kx~qq5M2(3$;;*s*o$slZ zz~Hs*?M5m7X9^%lwEL6|{Zv&Q3dZX^5Xtd?nZ|%!bvK1Mc&|*G7gMDX1mNSV9Gm_K zlocPvLSA>wfQ9*#%A=*%psRDeba%Lyw1AVa`8W=y_V2On#=lILT&?(1fkfFRob651 z=7mQE&LR07_@<<^r1&Gy;S0@$pixI@CWz4rb6V4a2!d3f_hoT@1kp;PaYug~KYAf1 zXS8-G*qQ$^^5WFIB@47r@$3r&wX*m9zVby5 z21F%i||Z>Al2suF*3?n z3?~4Mc7BANuZe}n!n2~G#+}A7w&b{r3%Pq;jO|D)2)_fiNJbt=4+k zcmtQTedkojmsrT!Yu}wp$X^hTc!E?mI%9B!TJ-_?+Ed$q_cIpt{8-7x(>(?#t?a<~ z4dOD7*-Z%`L|nsvscg4B5xru;R#OH)03G{w*m7uRi34YXb;J|%vwOmn@4FQFIPd9} zzJ6e(QVnf7vjbubNTxpo=gCQw82^-^nSoo5$Am}(yZIzrGMZDHvl@)?p z-X%*?u2XHbo*N%)^M?BwHwI6H7;mw$T^q5Vxqs2{M)N3Q?2j>CF=p~j!1*iquC4J- z$&a!<>dKf;=It_;)yCo78zM}y!ec$!%(c%hA_UL)FmhcHLt^IBPv;a`WD5wCFv)dw z`B~aRRFW_D=1o6-@;YoZ)we*%+GxwUp1Bu#hyjZhrOh{`HDQ3@kOF*pFs3)lesQyI zV-O?W^*8ox7-k|yIN)p*6TK?Hp|!~D-19;;+do=W2;4xCOPs2svkMU}Igjff)&uXT z0sgsRBL6$hT@32hh?Y7NCaqm7Nzxl}?Yex>7@QP#&r6_1xD9@x?oFI`*21i*G!IDvld~gMoNI(5Pgcz%|8T zqY(=^9JKVg%&y12b?15vuGt4fySY_PStg?Ep%0l!VNb_^y;qY)%@-+~~~ zWdRSXg%n82%N8H&ISxa{{5DVeP@n>>bjCvaFfK#96C4Y_B<}g*oU{X>Xv1jVUjBcYvDKS0EG+oruYwDu4?)Vy1^NGS-%(Q#u2Q#ac(kx)M?THjGPmCmCbMQdf z=*fquqC9|d*dSPjPh#z@C(}=6)p1jnxgr?Yp=aA|hj)}zLjftOuA7V{_nx*sK1y|# zmsHb#F@;U5OEWwGF<;rD>6Q6&hx7BwW*Y=S3gFe&Dl{Y-i%^@baX2Jeoo4C_r9U@y zYkcFF8X8Z?Sa)@KMb#@<47&P3hd^-XZ`gEf!S5E8NL!>RbqkfF52jr(xXP%x$n8U< z^6Df-W=XJf)*I=u0f}-RW?UTjM9KT>vG6Ss_z0plqCJ+?4$8 zsc(V8IWgL~;{8P^cWpprtIEll|NHbZ(oyPSwLJj-ad1zwVpcDF0?$@i0&1=?GxHmV z!5MGCd(d%3<(10J3QDiX#-^8b|9}CBJk!5V>ccJJjxs@ztiJ+Fs3(Pn?wvcEwC*e` z2r>}o=0i|bKxGriVmbqDI_ ze{}&|5XC(;qj4~OGwfF`1%Z?55;YGXT3n0lW+!pnj0I~WR^3k}M%OYM{e>xU2aB=? zmiN7RQ`_=tM+YoTohVT{;k|d1ac>fC95_rQ^-xSyRH3Ic!z6evS5!7e)1>Q>5^0SQ zR^Rxp6(9TsWdkBctfY{z%`3@eU1C7Axwj-!I3y8veavS$pApI>c}+jyo8TK)9YF#i zde9}ov=|VLo*!P%y`Xcvm+d?s3jx z!QzY65ZB?ilebw)ptg--HJVo1cdfW0$b>_hGG`_3OImvzZSDhM%?E*n;U>*TeeK{8 z;AUQvHbCTfQ0_!lX<-d|rtDS|2d1yE3`BV^cpR6aP5Zr@y7k)kL((OkW2N)jnTZj` zu>okB7~?WP)mPNe7@I!b?)cqtx}7=m>FS)YoZ-3q3^ng{%)%qTJKgY`E7|PV70e%o zciD1+$H~!hP~iVavADr5MIW&3-J*wtC&qXGvv%YTGPY*pho>z(a8JsW73E*!ef`M_ z6`Ui&X~m1}?CgnO=Z!42$`edj?ICn#{NxRf!OrplEXEi*I#SUG0W*or+BbAYGr@OrD1kDh#Q-0GYc8c=0GMO(L{ zA098Euc7@oPX#glDtw!d+|noQ`K&C8?MBNAo(>UP78d**?cV*xxcp4-J($YUjXe^& z&hxX1pk+&#vi?-&aBkODh=sP|>$=?L_~Va1+LcyRml#uNl$_k7OP2y8Jk)U zhH=Bhf{Lp9G4X~&VzN%|B)t$!QH{HuNcn}~=^X6TZ!-3WbB-X^Q(^b>t}!iA;_y3n zrsAX{Ve~i>E9IG(nO#6wp|0%`*>TOk62zhM%MRn2tNzAdk?n-vcuZqx4_Yft)Qpe& zJY(5$aWQvzQhsPC9wugOkJ_{Uf2R_ARMB^@UE(@}=jSyLkv)U&^iEIpjf0>)c6&5@$ny!t9 zQk6ujXtFBPZcx7IrZW5zH45c+F-cllv>;_qIEP&}VQLbstX>QvYBEjW{ovv<{QFzn z>P625yI<_08Eq?^M_vcQuJc$oC9C6P`y{$@{y~p@{WPn#A@4^3aaT3K6_IzLX#Tzj@QZ&Q9QEm5AcB1ZfyLlC3z zy;%?eT0Umd{Y-U!j#e#+5u^&=#M$IQ!6rs5D@%fB@4peJ^Bd2^i2MdC(-h8?31Sq! z?;?RHs&q(I5( zxhWpbjlRaEWzeh=AsiT}xkxYlW2Ta)@qIx@!5r`{J|COf?>xF}8dZDFPm4x(l7vWrXF+YdwHYv}%`K({pM5zEVVEys} ztfVDm$A@mRwUAU=qgfPY1W5dhz|bbFJWK|3{95kB$!oa`{{t)%J@iFbJLXVc2J8Yo zylKVYwcsIRkGU;}Ol>!bU9b@|p5tdt`*1M)$qfV1fVU)?yK(Ln+dSvir<9LPPpMF= z-^0eByFR5RhWAhkG1-(qCrv0+_eysRow9V}ck{3KuT|baVeo@Do>WxN!~FDM*hG#= zRJs)&!r%5(cXCGF`M56RlUfB5_&{ajAO`Ng;=M<)Vb=K7P?{(KxpI?@l8H20MUj-5T809UA5eVT1 zT;ey#8!_T-J5_d#n;6yhCGq%CWpwSc_z5Eh1VQo>*;x2Y_6oS;#Nv#`&k7rm4cw54 zAVCSsk|6PB_%#Qxc^QMn!F1-O62;`_tN~pMYf+q$-Dg-xptwczlVW0?4Qof5aATFK z<9&SFml%ftj`}L6QoU_x=8`LnX*}){(T$$G4Edf#d7D)p5QMkmU~+JN!j;ECu=MYQ zv3e7vsgCN-vMW_--0t5U{wzDv;cn>qV2!YtSqNh9wQ7! zsV31oQ)#j>pNNMZ1A-v=f#ZFQ#bR={GG>jYj)O*6IO3RaCW0h;;gH;Yk|a{#e%Ac9 z(L6VqM^&xj#K^ESr^i}%kSu(1H<@9DwWA7^hWXPVzWsFKIJy-sg2t4OPQTZihz`W) zf4GlpM61uTXY;xTPhC0^9MlcQcChfgVT5^$vx_qm%EzRyfXMGf5T!C&&6@|zSvs@RV zWRp^ZE*%l7O2As5b2+RXocYn|ggJG#d%Rw>@kcbZbA=keLgnc6 zapg{B9=IZt*qm43;>aX+FT5_i>Q{w^OiW_?30OgGfCg=nHZGpSg8}nb6`ppRR4Y#6 zG*1M^{(zj?@EM1GSo~TA3vNwG9X-6zSL@)SOj<*jcx`=^i?sCaQ`aWJ04{zOH|pP_#`vj8gDMq+_~8moNW9*o~zq^<*9Ik<;>a^yIfw4;EmEj=M|s}s?E zw&;2{F~Zg47ZBoD3vR~5%~LAfmpkuLpI+A4#Jgg-;)24|WuAx;`o9%-Lk*4lbWy#C z5r03pf6B}uF~K2m+=M#_4#^LU!w*jDTjDp z6QCer@Z_LLjL=7ilU`<0W}swuQBK;n2<>u2c5D6Xm+u*R5X$Q z{}!G77UxUL6iODd-QV|PzvY3kuA@)nphF?||9+619v4l{?cA~WNPPbp?SAM{_v&4LdA3+hqjR8TB{J=P4YP309;D@s2Is%8lFI%DlH(=U;$!R*2)uy|j z6A3w*?~c^|V&XM9f`nZ+2$DWv9RJZnM9d!yd^dOE7s$u|bm7~g6~7&HI(E%I^hdv? zV9AXeGM;&ByPjnGN$15AThwAw>E7rVmv(KnbW3b(%w#RZ_{;j?x?}$u>d(##D_QsJitO-=K^AV_|^H`!ux zVB^#%1W8tnnq`n(FayivWlY%b@v94T;dm+Qr~^cBWX_&-CmYYuu!}A4-zV*x2<~>1 z=o=~^-TQn}%SC7|lLFV(-ii)OpzG{WLrUVlr zJ3rnQ1Qr&%HQFcyNu|($G6)gCF*y7fMokuIIH7z`ZGNyEoFMJd!XoxrC1;uY#rY+g=%^ z+zo6=6!(S!L6E#*r#1~vN}~z9M(RQ%iR`d0*c5}99tsxvLnU2D^$~CvCJu=>XeWKH z$c?E)9c1hs#`L2RCgT2MpnUA)E7U6WO%MgkgM7|`;_nW);CYjfMZDrka5;2q6>*G) zXe|Z!PX-5rO$|GWQhshSepN)p(NbPvU#mPI5}Y=^48?`}8>+Zq zRlgPn>IrQ_Jt>wX#bP6>Efu#ijq3d_7w> zheJ}#HX_)I`pqHXtmP0E5PgtTvs$}8N94p91&5>`0608Bkm~V!2u|mutAlSD0>Tv@9U8i|1WR-Z!T$#g7Bt>JnWvVc1n#x zkZ@78c@q%;hXgT-NnKrGtaHu?x%6{#Jw>ZwbjDXC5aK6L3qg9^_xQi zb73M#DBmPFBz{xw&pYx!JoT?5whhtk-ox@Dns6h~qPtOXke4w8_&&7?w1i4*8g5k$ znESD+%?+yg=*r)ZN4wA!``O@50)JN4g9010={Tn=!YmXTRr39Ax*KK*=B!im4;< za_3tMw+BiSE}c!8)yw0pe@55Yv_N@L?|P`{vY?{d5-3eH=@5htvnm^F$8i!!;{Gf2 zL8g`CXrd9nvf~AK{94?Kn){}tti=a251rpGOpSIc3Y|Y7t@pB46xHS|{KGL9f)B|g zF3l;L!|2V$Q5L1C%_;1Ar>j&vpNEowro{GbN$fduPt3}IF!~ImZA)Q<_nS|=|A8YL z&Wxlms+p8~zS~>>C5Awj!U*r9mr&&{-%$~95=ISAg9_?7U=kN0fbUrtbn2QCx)vn% zuUEus6gszvmE6G!!lL4nXcGU6^X1bix0(m4sFg%F$}e;ZO?ysSU2qIC>R!!CaEbyp z2E4SFD%gw{)tddwZ-YR%{qTB($T|!NFd4{ly}jgJ>_Cdh#U^HVsv+zFP1mjpR3JKh zJ{!vFRG7b>6b4Ea8@iRs4kEhQVP9<6@YRAnjtS=3nxg7bAjR+*$f`m{fL5DTZV)Ii zxee`t5~32vew!|4)zO>M*dWOG49TQ!Buvhb0z4Yec?2nGv5jAWDg>o$6*P-JuUab9inJ_XQ`H=5uajlB0=mrHWozjI+ zm0eE@mqbKWhE1-Dr}&4PG_Ut>5P+7hgdp^)VH?@E0DfXDRsYZAu5Cjs`FJTEJyzo2m!W#q< zQ|kwSvCrGYT+}nG+llFDPqd|9)T_051wO-t11tWD?m&F`)8W*$kAK*A&sb&r{3FtC{%c5l7Td3D*CRq8 zNtK=OCfb{jKoSJMR&f5BIDGb+E}?P`0VWLmG)B2Vvh_t1v`qqojGT~?y*}`aK*-Rs z2%hui4DeK~_yBu+?g}J~py&L6s!1o}RMp4{qe(eeU}pYBAYp{H&N_wCTb*5}o^EGh z#NP%**ZP{@3f~qFGcg8XV9JkIF|7MRDR2lvDJ~}HF=(=(3Mr5baM(XEbKt3b5np&Y z_v>oNvn0ImKbTtz4-iAmG`oe%7LETFALch^zOXNNhM9IGggp~-vh@1e&oLkwZ`EFI zxS&wwFV4)N=eSlrv&$+?xHL9(ZciLhu>xyUPotykY?+_ZuN=&AnzOLrUb^g3;a#=N z6GtKjV}d{erV+s_+-6l(RUHMPgio~j!l}+x&7qEcCk0YFd%pAM`!+BNmSt4aLN;vB zDdYP;3>P{Vg9^_OX{P`sFPhmw=W#>-d0$w1sy3(X2w^s9&e84(Sueozc>&tPk4O+M z^l0DXQ1T3CVg5hq{Q2f(M+2|EQ>D)2sV!9?|=Xm;0s8 z+iy-|*Dz(eAdoQdiHktO!Mjk`nJ!ADKr%rhgEm3{>X0 VO%$60CRx)fYPT6U8!Z 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�)N8oedS-1?H?#05>i82YBWeo_b3%59zl^1 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 T&vsle7VuG1)l?}_G70`a&<;cD literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Controllers/Auth/AuthTableViewController.swift b/Rocket.Chat/Controllers/Auth/AuthTableViewController.swift new file mode 100644 index 0000000000..828ccc53e7 --- /dev/null +++ b/Rocket.Chat/Controllers/Auth/AuthTableViewController.swift @@ -0,0 +1,331 @@ +// +// AuthTableViewController.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 05/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import Foundation +import UIKit +import SafariServices +import OnePasswordExtension +import RealmSwift +import MBProgressHUD + +class AuthTableViewController: BaseTableViewController { + + internal let kLoginProvidersSection: Int = 0 + internal let kLoginProvidersCollapsedMax: Int = 3 + internal let kEmailAuthSection: Int = 1 + internal var shouldShowSeparator: Bool { + return loginServices.count > 0 + } + + lazy var emailAuthRow: EmailAuthTableViewCell = { + guard let emailAuthRow = EmailAuthTableViewCell.instantiateFromNib() else { + return EmailAuthTableViewCell() + } + + let prefix = NSAttributedString( + string: localized("auth.email_auth_prefix"), + attributes: [ + NSAttributedStringKey.font: UIFont.systemFont(ofSize: 16, weight: .regular) + ] + ) + let service = NSAttributedString( + string: localized("auth.email_auth"), + attributes: [ + NSAttributedStringKey.font: UIFont.systemFont(ofSize: 16, weight: .bold) + ] + ) + + let combinedString = NSMutableAttributedString(attributedString: prefix) + combinedString.append(service) + + emailAuthRow.loginButton.setAttributedTitle(combinedString, for: .normal) + emailAuthRow.loginButton.addTarget(self, action: #selector(showLogin), for: .touchUpInside) + emailAuthRow.registerButton.addTarget(self, action: #selector(showSignup), for: .touchUpInside) + + return emailAuthRow + }() + + lazy var authSeparatorRow: AuthSeparatorTableViewCell = { + guard let authSeparatorRow = AuthSeparatorTableViewCell.instantiateFromNib() else { + return AuthSeparatorTableViewCell() + } + + return authSeparatorRow + }() + + lazy var collapsibleAuthSeparatorRow: ShowMoreSeparatorTableViewCell = { + guard let collapsibleAuthSeparatorRow = ShowMoreSeparatorTableViewCell.instantiateFromNib() else { + return ShowMoreSeparatorTableViewCell() + } + + collapsibleAuthSeparatorRow.showMoreButton.transform = CGAffineTransform(rotationAngle: CGFloat.pi) + collapsibleAuthSeparatorRow.showOrHideLoginServices = { [weak self] in + self?.showOrHideLoginServices() + } + + return collapsibleAuthSeparatorRow + }() + + var loadingView: MBProgressHUD! + + internal var connecting = false + var shouldRetrieveLoginServices = false + + var serverVersion: Version? + var serverURL: URL! + var serverPublicSettings: AuthSettings? + + var api: API? { + guard + let serverURL = serverURL, + let serverVersion = serverVersion + else { + return nil + } + + return API(host: serverURL, version: serverVersion) + } + + let socketHandlerToken = String.random(5) + var loginServicesToken: NotificationToken? + + var isLoginServicesCollapsed = true + var loginServices: [LoginService] = [] { + didSet { + tableView.reloadData() + } + } + + lazy var extraLoginServiceIndexPaths: [IndexPath] = { + guard loginServices.count > 3 else { + return [] + } + + let extraLoginServices = loginServices[3...loginServices.count - 1] + var extraLoginServiceIndexPaths: [IndexPath] = [] + for index in extraLoginServices.indices { + extraLoginServiceIndexPaths.append(IndexPath(row: index, section: 0)) + } + + return extraLoginServiceIndexPaths + }() + + // MARK: Life Cycle + + override func viewDidLoad() { + super.viewDidLoad() + title = serverURL.host + + guard let settings = serverPublicSettings else { return } + + if !settings.isUsernameEmailAuthenticationEnabled { + emailAuthRow.registerButton.isHidden = true + } else { + emailAuthRow.registerButton.isHidden = settings.registrationForm != .isPublic + } + + setupTableView() + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + setupLoginServices() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + if let nav = navigationController as? BaseNavigationController { + nav.setGrayTheme() + } + + SocketManager.addConnectionHandler(token: socketHandlerToken, handler: self) + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + + if isMovingFromParentViewController { + SocketManager.removeConnectionHandler(token: socketHandlerToken) + } + } + + deinit { + loginServicesToken?.invalidate() + NotificationCenter.default.removeObserver(self) + } + + // MARK: Setup + + func setupTableView() { + tableView.estimatedRowHeight = 0 + tableView.estimatedSectionFooterHeight = 0 + tableView.estimatedSectionHeaderHeight = 0 + tableView.register( + LoginServiceTableViewCell.nib, + forCellReuseIdentifier: LoginServiceTableViewCell.identifier + ) + } + + // MARK: Auth + + func authenticateWithDeepLinkCredentials(_ credentials: DeepLinkCredentials) { + startLoading() + AuthManager.auth(token: credentials.token, completion: self.handleAuthenticationResponse) + } + + @objc func loginServiceButtonDidPress(_ button: UIButton) { + guard let realm = Realm.current else { + return + } + + let loginService = loginServices[button.tag] + if loginService.service == "gitlab", let url = serverPublicSettings?.gitlabUrl { + loginServices[button.tag].serverUrl = url + try? realm.write { + loginService.serverUrl = url + } + } + + switch loginService.type { + case .cas: + presentCASViewController(for: loginService) + case .saml: + presentSAMLViewController(for: loginService) + default: + presentOAuthViewController(for: loginService) + } + } + + // MARK: Navigation + + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + if let controller = segue.destination as? LoginTableViewController { + controller.serverVersion = serverVersion + controller.serverURL = serverURL + controller.serverPublicSettings = serverPublicSettings + } + } + + // MARK: Actions + + func startLoading() { + loadingView = MBProgressHUD.showAdded(to: self.view, animated: true) + loadingView.mode = .indeterminate + } + + func stopLoading() { + loadingView?.hide(animated: true) + } + + @objc func showLogin() { + performSegue(withIdentifier: "Login", sender: nil) + } + + @objc func showSignup() { + performSegue(withIdentifier: "Signup", sender: self) + } + + func showOrHideLoginServices() { + isLoginServicesCollapsed = !isLoginServicesCollapsed + + if isLoginServicesCollapsed { + UIView.animate(withDuration: 0.5) { + self.collapsibleAuthSeparatorRow.showMoreButton.transform = CGAffineTransform(rotationAngle: CGFloat.pi) + } + + tableView.deleteRows(at: extraLoginServiceIndexPaths, with: .automatic) + } else { + UIView.animate(withDuration: 0.5) { + self.collapsibleAuthSeparatorRow.showMoreButton.transform = CGAffineTransform(rotationAngle: CGFloat.pi * 2) + } + + tableView.insertRows(at: extraLoginServiceIndexPaths, with: .automatic) + } + } + +} + +extension AuthTableViewController { + + override func numberOfSections(in tableView: UITableView) -> Int { + return 2 + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + if section == kLoginProvidersSection { + if loginServices.count > kLoginProvidersCollapsedMax && isLoginServicesCollapsed { + return kLoginProvidersCollapsedMax + 1 + } + + return loginServices.count > 0 ? loginServices.count + 1 : 0 + } else { + return 1 + } + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + switch indexPath.section { + case kLoginProvidersSection: + if indexPath.row == kLoginProvidersCollapsedMax && + loginServices.count > kLoginProvidersCollapsedMax && + isLoginServicesCollapsed { + return collapsibleAuthSeparatorRow + } else if indexPath.row == loginServices.count && loginServices.count > kLoginProvidersCollapsedMax { + return collapsibleAuthSeparatorRow + } else if indexPath.row == loginServices.count { + return authSeparatorRow + } + + guard let loginServiceCell = tableView.dequeueReusableCell(withIdentifier: LoginServiceTableViewCell.identifier, for: indexPath) as? LoginServiceTableViewCell else { + return UITableViewCell() + } + + loginServiceCell.loginService = loginServices[indexPath.row] + loginServiceCell.loginServiceButton.tag = indexPath.row + loginServiceCell.loginServiceButton.addTarget(self, action: #selector(loginServiceButtonDidPress(_:)), for: .touchUpInside) + return loginServiceCell + case kEmailAuthSection: + return emailAuthRow + default: + break + } + + return UITableViewCell() + } + +} + +extension AuthTableViewController { + + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + switch indexPath.section { + case kLoginProvidersSection: + if indexPath.row == kLoginProvidersCollapsedMax && + loginServices.count > kLoginProvidersCollapsedMax && + isLoginServicesCollapsed { + return ShowMoreSeparatorTableViewCell.rowHeight + } else if indexPath.row == loginServices.count && loginServices.count > kLoginProvidersCollapsedMax { + return ShowMoreSeparatorTableViewCell.rowHeight + } else if indexPath.row == loginServices.count { + return AuthSeparatorTableViewCell.rowHeight + } + + if indexPath.row == 0 { + return LoginServiceTableViewCell.firstRowHeight + } + + return LoginServiceTableViewCell.rowHeight + case kEmailAuthSection: + return loginServices.count > 0 ? EmailAuthTableViewCell.rowHeightBelowSeparator : EmailAuthTableViewCell.rowHeight + default: + return 0 + } + } +} diff --git a/Rocket.Chat/Controllers/Auth/AuthViewControllerAuthenticationHandler.swift b/Rocket.Chat/Controllers/Auth/AuthTableViewControllerAuthenticationHandler.swift similarity index 93% rename from Rocket.Chat/Controllers/Auth/AuthViewControllerAuthenticationHandler.swift rename to Rocket.Chat/Controllers/Auth/AuthTableViewControllerAuthenticationHandler.swift index 188cdcd018..a1ca5f3b7e 100644 --- a/Rocket.Chat/Controllers/Auth/AuthViewControllerAuthenticationHandler.swift +++ b/Rocket.Chat/Controllers/Auth/AuthTableViewControllerAuthenticationHandler.swift @@ -1,15 +1,15 @@ // -// AuthViewControllerAuthenticationHandler.swift +// AuthTableViewControllerAuthenticationHandler.swift // Rocket.Chat // -// Created by Matheus Cardoso on 3/26/18. +// Created by Filipe Alvarenga on 06/06/18. // Copyright © 2018 Rocket.Chat. All rights reserved. // import Foundation import RealmSwift -extension AuthViewController { +extension AuthTableViewController { internal func handleAuthenticationResponse(_ response: LoginResponse) { switch response { case .resource(let resource): @@ -49,12 +49,12 @@ extension AuthViewController { API.current()?.fetch(MeRequest()) { [weak self] response in switch response { case .resource(let resource): + self?.stopLoading() if let token = self?.socketHandlerToken { SocketManager.removeConnectionHandler(token: token) } if let user = resource.user { - let realm = Realm.current try? realm?.write { realm?.add(user, update: true) diff --git a/Rocket.Chat/Controllers/Auth/AuthTableViewControllerConnectionHandler.swift b/Rocket.Chat/Controllers/Auth/AuthTableViewControllerConnectionHandler.swift new file mode 100644 index 0000000000..6ab4ed0123 --- /dev/null +++ b/Rocket.Chat/Controllers/Auth/AuthTableViewControllerConnectionHandler.swift @@ -0,0 +1,22 @@ +// +// AuthTableViewControllerConnectionHandler.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 06/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +extension AuthTableViewController: SocketConnectionHandler { + + func socketDidConnect(socket: SocketManager) { } + func socketDidReturnError(socket: SocketManager, error: SocketError) { } + + func socketDidChangeState(state: SocketConnectionState) { + if state == .disconnected { + alert(title: localized("error.socket.default_error.title"), message: localized("error.socket.default_error.message")) { _ in + self.navigationController?.popToRootViewController(animated: true) + } + } + } + +} diff --git a/Rocket.Chat/Controllers/Auth/AuthTableViewControllerLoginServices.swift b/Rocket.Chat/Controllers/Auth/AuthTableViewControllerLoginServices.swift new file mode 100644 index 0000000000..a9e3d594b3 --- /dev/null +++ b/Rocket.Chat/Controllers/Auth/AuthTableViewControllerLoginServices.swift @@ -0,0 +1,112 @@ +// +// AuthTableViewControllerLoginServices.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 06/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import RealmSwift + +// MARK: Login Services + +extension AuthTableViewController { + + func setupLoginServices() { + guard shouldRetrieveLoginServices else { + return + } + + if let objects = Realm.current?.objects(LoginService.self) { + loginServices = objects.map({ $0 }) + } + + loginServicesToken?.invalidate() + loginServicesToken = LoginServiceManager.observe { [weak self] changes in + self?.updateLoginServices(changes: changes) + } + } + + func presentOAuthViewController(for loginService: LoginService) { + OAuthManager.authorize(loginService: loginService, at: serverURL, viewController: self, success: { [weak self] credentials in + guard let strongSelf = self else { return } + strongSelf.startLoading() + + AuthManager.auth(credentials: credentials, completion: strongSelf.handleAuthenticationResponse) + }, failure: { [weak self] in + self?.alert( + title: localized("alert.login_service_error.title"), + message: localized("alert.login_service_error.message") + ) + + self?.stopLoading() + }) + } + + func presentCASViewController(for loginService: LoginService) { + guard + let loginUrlString = loginService.loginUrl, + let loginUrl = URL(string: loginUrlString), + let host = serverURL.host, + let callbackUrl = URL(string: "https://\(host)/_cas/\(String.random(17))") + else { + return + } + + let controller = CASViewController(loginUrl: loginUrl, callbackUrl: callbackUrl, success: { + AuthManager.auth(casCredentialToken: $0, completion: self.handleAuthenticationResponse) + }, failure: { [weak self] in + self?.stopLoading() + }) + + startLoading() + navigationController?.pushViewController(controller, animated: true) + return + } + + func presentSAMLViewController(for loginService: LoginService) { + guard + let provider = loginService.provider, + let host = serverURL.host, + let serverUrl = URL(string: "https://\(host)") + else { + return + } + + let controller = SAMLViewController(serverUrl: serverUrl, provider: provider, success: { + AuthManager.auth(samlCredentialToken: $0, completion: self.handleAuthenticationResponse) + }, failure: { [weak self] in + self?.stopLoading() + }) + + startLoading() + navigationController?.pushViewController(controller, animated: true) + return + } + + func updateLoginServices(changes: RealmCollectionChange>) { + switch changes { + case .update(let res, let deletions, let insertions, let modifications): + self.loginServices.append(contentsOf: insertions.map { res[$0] }.compactMap { + return ($0.isValid && $0.service != nil) ? $0 : nil + }) + + modifications.map { res[$0] }.forEach { + guard let index = self.loginServices.index(of: $0) else { + return + } + + self.loginServices[index] = $0 + } + + deletions.map { res[$0] }.forEach { + guard let index = self.loginServices.index(of: $0) else { + return + } + + self.loginServices.remove(at: index) + } + default: break + } + } +} diff --git a/Rocket.Chat/Controllers/Auth/AuthViewController.swift b/Rocket.Chat/Controllers/Auth/AuthViewController.swift deleted file mode 100644 index bb3069c053..0000000000 --- a/Rocket.Chat/Controllers/Auth/AuthViewController.swift +++ /dev/null @@ -1,374 +0,0 @@ -// -// AuthViewController.swift -// Rocket.Chat -// -// Created by Rafael K. Streit on 7/6/16. -// Copyright © 2016 Rocket.Chat. All rights reserved. -// - -import Foundation -import UIKit -import SafariServices -import OnePasswordExtension -import RealmSwift - -final class AuthViewController: BaseViewController { - - internal var connecting = false - - var serverVersion: Version? - var serverURL: URL! - var serverPublicSettings: AuthSettings? - var temporary2FACode: String? - - var api: API? { - guard - let serverURL = serverURL, - let serverVersion = serverVersion - else { - return nil - } - - return API(host: serverURL, version: serverVersion) - } - - let socketHandlerToken = String.random(5) - - var loginServicesToken: NotificationToken? - - @IBOutlet weak var viewFieldsHeightConstraint: NSLayoutConstraint! - @IBOutlet weak var viewFields: UIView! { - didSet { - viewFields.layer.cornerRadius = 4 - viewFields.layer.borderColor = UIColor.RCLightGray().cgColor - viewFields.layer.borderWidth = 0.5 - } - } - - var hideViewFields: Bool = false { - didSet { - if hideViewFields { - viewFields.isHidden = true - viewFieldsHeightConstraint.constant = 0 - } else { - viewFields.isHidden = false - viewFieldsHeightConstraint.constant = 100 - } - } - } - - @IBOutlet weak var onePasswordButton: UIButton! { - didSet { - onePasswordButton.isHidden = !OnePasswordExtension.shared().isAppExtensionAvailable() - } - } - - @IBOutlet weak var textFieldUsername: UITextField! - @IBOutlet weak var textFieldPassword: UITextField! - @IBOutlet weak var visibleViewBottomConstraint: NSLayoutConstraint! - - @IBOutlet weak var activityIndicator: UIActivityIndicatorView! - - @IBOutlet var buttonRegister: UIButton! { - didSet { - buttonRegister.setTitle(localized("auth.login.buttonRegister"), for: .normal) - } - } - - @IBOutlet weak var buttonResetPassword: UIButton! { - didSet { - buttonResetPassword.setTitle(localized("auth.login.buttonResetPassword"), for: .normal) - } - } - - @IBOutlet weak var labelProceedingAgreeing: UILabel! { - didSet { - labelProceedingAgreeing.text = localized("auth.login.agree_label") - } - } - - @IBOutlet weak var buttonTermsOfService: UIButton! { - didSet { - buttonTermsOfService.setTitle(localized("auth.login.agree_termsofservice"), for: .normal) - } - } - - @IBOutlet weak var labelAnd: UILabel! { - didSet { - labelAnd.text = localized("auth.login.agree_and") - } - } - - @IBOutlet weak var buttonPrivacy: UIButton! { - didSet { - buttonPrivacy.setTitle(localized("auth.login.agree_privacypolicy"), for: .normal) - } - } - - @IBOutlet weak var authButtonsStackView: UIStackView! - var customAuthButtons = [String: UIButton]() - - deinit { - loginServicesToken?.invalidate() - NotificationCenter.default.removeObserver(self) - } - - override func viewDidLoad() { - super.viewDidLoad() - title = serverURL.host - - guard let settings = serverPublicSettings else { return } - - if !settings.isUsernameEmailAuthenticationEnabled { - buttonRegister.isHidden = true - } else { - buttonRegister.isHidden = settings.registrationForm != .isPublic - } - - hideViewFields = !settings.isUsernameEmailAuthenticationEnabled - buttonResetPassword.isHidden = !settings.isPasswordResetEnabled - - updateFieldsPlaceholders() - updateAuthenticationMethods() - } - - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - - setupLoginServices() - - NotificationCenter.default.addObserver( - self, - selector: #selector(keyboardWillShow(_:)), - name: NSNotification.Name.UIKeyboardWillShow, - object: nil - ) - - NotificationCenter.default.addObserver( - self, - selector: #selector(keyboardWillHide(_:)), - name: NSNotification.Name.UIKeyboardWillHide, - object: nil - ) - - if !connecting { - textFieldUsername.becomeFirstResponder() - } - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - SocketManager.addConnectionHandler(token: socketHandlerToken, handler: self) - } - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - SocketManager.removeConnectionHandler(token: socketHandlerToken) - } - - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - if segue.identifier == "TwoFactor" { - if let controller = segue.destination as? TwoFactorAuthenticationViewController { - controller.username = textFieldUsername.text ?? "" - controller.password = textFieldPassword.text ?? "" - controller.token = temporary2FACode ?? "" - } - } - } - - // MARK: Keyboard Handlers - - override func keyboardWillShow(_ notification: Notification) { - if let keyboardSize = ((notification as NSNotification).userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { - visibleViewBottomConstraint.constant = keyboardSize.height - } - } - - override func keyboardWillHide(_ notification: Notification) { - visibleViewBottomConstraint.constant = 0 - } - - // MARK: Loaders - - func startLoading() { - textFieldUsername.alpha = 0.5 - textFieldPassword.alpha = 0.5 - connecting = true - activityIndicator.startAnimating() - textFieldUsername.resignFirstResponder() - textFieldPassword.resignFirstResponder() - customAuthButtons.forEach { _, button in button.isEnabled = false } - navigationItem.hidesBackButton = true - } - - func stopLoading() { - textFieldUsername.alpha = 1 - textFieldPassword.alpha = 1 - activityIndicator.stopAnimating() - customAuthButtons.forEach { _, button in button.isEnabled = true } - navigationItem.hidesBackButton = false - - connecting = false - } - - // MARK: IBAction - - func authenticateWithUsernameOrEmail() { - let email = textFieldUsername.text ?? "" - let password = textFieldPassword.text ?? "" - - startLoading() - - if serverPublicSettings?.isLDAPAuthenticationEnabled ?? false { - let params = [ - "ldap": true, - "username": email, - "ldapPass": password, - "ldapOptions": [] - ] as [String: Any] - - AuthManager.auth(params: params, completion: self.handleAuthenticationResponse) - } else { - AuthManager.auth(email, password: password, completion: self.handleAuthenticationResponse) - } - } - - func authenticateWithDeepLinkCredentials(_ credentials: DeepLinkCredentials) { - startLoading() - AuthManager.auth(token: credentials.token, completion: self.handleAuthenticationResponse) - } - - @objc func loginServiceButtonDidPress(_ button: UIButton) { - guard - let service = customAuthButtons.filter({ $0.value == button }).keys.first, - let realm = Realm.current, - let loginService = LoginService.find(service: service, realm: realm) - else { - return - } - - if loginService.service == "gitlab", let url = serverPublicSettings?.gitlabUrl { - try? realm.write { - loginService.serverUrl = url - } - } - - switch loginService.type { - case .cas: - presentCASViewController(for: loginService) - case .saml: - presentSAMLViewController(for: loginService) - default: - presentOAuthViewController(for: loginService) - } - - } - - @IBAction func buttonTermsDidPressed(_ sender: Any) { - var components = URLComponents() - components.scheme = "https" - components.host = self.serverURL.host - components.path = self.serverURL.path - - if var newURL = components.url { - newURL = newURL.appendingPathComponent("terms-of-service") - - let controller = SFSafariViewController(url: newURL) - present(controller, animated: true, completion: nil) - } - } - - @IBAction func buttonPolicyDidPressed(_ sender: Any) { - var components = URLComponents() - components.scheme = "https" - components.host = self.serverURL.host - components.path = self.serverURL.path - - if var newURL = components.url { - newURL = newURL.appendingPathComponent("privacy-policy") - - let controller = SFSafariViewController(url: newURL) - present(controller, animated: true, completion: nil) - } - } - - @IBAction func buttonOnePasswordDidPressed(_ sender: Any) { - let siteURL = serverPublicSettings?.siteURL ?? "" - OnePasswordExtension.shared().findLogin(forURLString: siteURL, for: self, sender: sender) { [weak self] (login, _) in - if login == nil { - return - } - - self?.textFieldUsername.text = login?[AppExtensionUsernameKey] as? String - self?.textFieldPassword.text = login?[AppExtensionPasswordKey] as? String - self?.temporary2FACode = login?[AppExtensionTOTPKey] as? String - self?.authenticateWithUsernameOrEmail() - } - } - - @IBAction func forgotPasswordPressed(_ sender: UIButton) { - let alert = UIAlertController( - title: localized("auth.forgot_password.title"), - message: localized("auth.forgot_password.message"), - preferredStyle: .alert - ) - - let sendAction = UIAlertAction(title: localized("Send"), style: .default, handler: { _ in - guard let text = alert.textFields?.first?.text else { return } - - AuthManager.sendForgotPassword(email: text, completion: { result in - guard !result.isError() else { - Alert( - title: localized("auth.forgot_password.title"), - message: localized("error.socket.default_error.message") - ).present() - return - } - - Alert( - title: localized("auth.forgot_password.title"), - message: localized("auth.forgot_password.success") - ).present() - }) - }) - - sendAction.isEnabled = false - - alert.addTextField(configurationHandler: { textField in - textField.placeholder = "john.appleseed@apple.com" - textField.textContentType = UITextContentType.emailAddress - textField.keyboardType = .emailAddress - - _ = NotificationCenter.default.addObserver(forName: .UITextFieldTextDidChange, object: textField, queue: OperationQueue.main) { _ in - sendAction.isEnabled = textField.text?.isValidEmail ?? false - } - }) - - alert.addAction(UIAlertAction(title: localized("global.cancel"), style: .cancel, handler: nil)) - alert.addAction(sendAction) - present(alert, animated: true) - } -} - -extension AuthViewController: UITextFieldDelegate { - - func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { - return !connecting - } - - func textFieldShouldReturn(_ textField: UITextField) -> Bool { - if connecting { - return false - } - - if textField == textFieldUsername { - textFieldPassword.becomeFirstResponder() - } - - if textField == textFieldPassword { - authenticateWithUsernameOrEmail() - } - - return true - } -} diff --git a/Rocket.Chat/Controllers/Auth/AuthViewControllerConnectionHandler.swift b/Rocket.Chat/Controllers/Auth/AuthViewControllerConnectionHandler.swift deleted file mode 100644 index 8c6e5179f3..0000000000 --- a/Rocket.Chat/Controllers/Auth/AuthViewControllerConnectionHandler.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// AuthViewControllerConnectionHandler.swift -// Rocket.Chat -// -// Created by Matheus Cardoso on 3/26/18. -// Copyright © 2018 Rocket.Chat. All rights reserved. -// - -extension AuthViewController: SocketConnectionHandler { - - func socketDidConnect(socket: SocketManager) { } - func socketDidReturnError(socket: SocketManager, error: SocketError) { } - - func socketDidDisconnect(socket: SocketManager) { - alert(title: localized("error.socket.default_error.title"), message: localized("error.socket.default_error.message")) { _ in - self.navigationController?.popViewController(animated: true) - } - } - -} diff --git a/Rocket.Chat/Controllers/Auth/AuthViewControllerLoginServices.swift b/Rocket.Chat/Controllers/Auth/AuthViewControllerLoginServices.swift deleted file mode 100644 index d045558823..0000000000 --- a/Rocket.Chat/Controllers/Auth/AuthViewControllerLoginServices.swift +++ /dev/null @@ -1,193 +0,0 @@ -// -// AuthViewControllerLoginSevices.swift -// Rocket.Chat -// -// Created by Matheus Cardoso on 3/26/18. -// Copyright © 2018 Rocket.Chat. All rights reserved. -// - -import RealmSwift - -// MARK: Login Services - -extension AuthViewController { - func updateFieldsPlaceholders() { - guard let settings = serverPublicSettings else { return } - - if !(settings.emailOrUsernameFieldPlaceholder?.isEmpty ?? true) { - textFieldUsername.placeholder = settings.emailOrUsernameFieldPlaceholder - } else { - textFieldUsername.placeholder = localized("auth.login.username.placeholder") - } - - if !(settings.passwordFieldPlaceholder?.isEmpty ?? true) { - textFieldPassword.placeholder = settings.passwordFieldPlaceholder - } else { - textFieldPassword.placeholder = localized("auth.login.password.placeholder") - } - } - - func updateAuthenticationMethods() { - guard let settings = serverPublicSettings else { return } - - if settings.isGoogleAuthenticationEnabled { - addOAuthButton(for: .google) - } - - if settings.isFacebookAuthenticationEnabled { - addOAuthButton(for: .facebook) - } - - if settings.isGitHubAuthenticationEnabled { - addOAuthButton(for: .github) - } - - if settings.isGitLabAuthenticationEnabled { - addOAuthButton(for: .gitlab(url: settings.gitlabUrl)) - } - - if settings.isLinkedInAuthenticationEnabled { - addOAuthButton(for: .linkedin) - } - - if settings.isWordPressAuthenticationEnabled { - addOAuthButton(for: .wordpress) - } - - if settings.isCASEnabled { - addOAuthButton(for: .cas) - } - } - - func setupLoginServices() { - loginServicesToken?.invalidate() - - loginServicesToken = LoginServiceManager.observe { [weak self] changes in - self?.updateLoginServices(changes: changes) - } - - api?.client(InfoClient.self).fetchLoginServices() - } - - func presentOAuthViewController(for loginService: LoginService) { - OAuthManager.authorize(loginService: loginService, at: serverURL, viewController: self, success: { [weak self] credentials in - guard let strongSelf = self else { return } - strongSelf.startLoading() - - AuthManager.auth(credentials: credentials, completion: strongSelf.handleAuthenticationResponse) - }, failure: { [weak self] in - self?.alert( - title: localized("alert.login_service_error.title"), - message: localized("alert.login_service_error.message") - ) - - self?.stopLoading() - }) - } - - func presentCASViewController(for loginService: LoginService) { - guard - let loginUrlString = loginService.loginUrl, - let loginUrl = URL(string: loginUrlString), - let host = serverURL.host, - let callbackUrl = URL(string: "https://\(host)/_cas/\(String.random(17))") - else { - return - } - - let controller = CASViewController(loginUrl: loginUrl, callbackUrl: callbackUrl, success: { - AuthManager.auth(casCredentialToken: $0, completion: self.handleAuthenticationResponse) - }, failure: { [weak self] in - self?.stopLoading() - }) - - startLoading() - navigationController?.pushViewController(controller, animated: true) - return - } - - func presentSAMLViewController(for loginService: LoginService) { - guard - let provider = loginService.provider, - let host = serverURL.host, - let serverUrl = URL(string: "https://\(host)") - else { - return - } - - let controller = SAMLViewController(serverUrl: serverUrl, provider: provider, success: { - AuthManager.auth(samlCredentialToken: $0, completion: self.handleAuthenticationResponse) - }, failure: { [weak self] in - self?.stopLoading() - }) - - startLoading() - navigationController?.pushViewController(controller, animated: true) - return - } - - func addOAuthButton(for loginService: LoginService) { - guard let service = loginService.service else { return } - - let button = customAuthButtons[service] ?? UIButton() - - switch loginService.type { - case .google: button.setImage(#imageLiteral(resourceName: "google"), for: .normal) - case .facebook: button.setImage(#imageLiteral(resourceName: "facebook"), for: .normal) - case .github: button.setImage(#imageLiteral(resourceName: "github"), for: .normal) - case .gitlab: button.setImage(#imageLiteral(resourceName: "gitlab"), for: .normal) - case .linkedin: button.setImage(#imageLiteral(resourceName: "linkedin"), for: .normal) - case .wordpress: button.setImage(#imageLiteral(resourceName: "wordpress"), for: .normal) - default: button.setTitle(loginService.buttonLabelText ?? "", for: .normal) - } - - button.layer.cornerRadius = 3 - button.titleLabel?.font = .boldSystemFont(ofSize: 17.0) - button.titleLabel?.adjustsFontSizeToFitWidth = true - button.setTitleColor(UIColor(hex: loginService.buttonLabelColor), for: .normal) - button.backgroundColor = UIColor(hex: loginService.buttonColor) - - if !authButtonsStackView.subviews.contains(button) { - authButtonsStackView.addArrangedSubview(button) - button.addTarget(self, action: #selector(loginServiceButtonDidPress(_:)), for: .touchUpInside) - customAuthButtons[service] = button - } - } - - func updateLoginServices(changes: RealmCollectionChange>) { - switch changes { - case .update(let res, let deletions, let insertions, let modifications): - insertions.map { res[$0] }.forEach { - guard $0.isValid else { return } - self.addOAuthButton(for: $0) - } - - modifications.map { res[$0] }.forEach { - guard - let identifier = $0.identifier, - let button = customAuthButtons[identifier] - else { - return - } - - button.setTitle($0.buttonLabelText ?? "", for: .normal) - button.setTitleColor(UIColor(hex: $0.buttonLabelColor), for: .normal) - button.backgroundColor = UIColor(hex: $0.buttonColor) - } - - deletions.map { res[$0] }.forEach { - guard - $0.custom, - let identifier = $0.identifier, - let button = customAuthButtons[identifier] - else { - return - } - - authButtonsStackView.removeArrangedSubview(button) - customAuthButtons.removeValue(forKey: identifier) - } - default: break - } - } -} diff --git a/Rocket.Chat/Controllers/Auth/ConnectServerViewController.swift b/Rocket.Chat/Controllers/Auth/ConnectServerViewController.swift index 06d4f9e904..b6e2a6337f 100644 --- a/Rocket.Chat/Controllers/Auth/ConnectServerViewController.swift +++ b/Rocket.Chat/Controllers/Auth/ConnectServerViewController.swift @@ -15,11 +15,13 @@ final class ConnectServerViewController: BaseViewController { internal let defaultURL = "https://open.rocket.chat" internal var connecting = false internal let infoRequestHandler = InfoRequestHandler() + internal let buttonConnectBottomSpacing: CGFloat = 24 var deepLinkCredentials: DeepLinkCredentials? + var shouldAutoConnect = false var url: URL? { - guard var urlText = textFieldServerURL.text else { return nil } + guard var urlText = textFieldServerURL.text else { return URL(string: defaultURL, scheme: "https") } if urlText.isEmpty { urlText = defaultURL } @@ -28,105 +30,170 @@ final class ConnectServerViewController: BaseViewController { var serverPublicSettings: AuthSettings? - @IBOutlet weak var buttonClose: UIBarButtonItem! + lazy var buttonClose: UIBarButtonItem = { + let buttonClose = UIBarButtonItem(barButtonSystemItem: .stop, target: self, action: #selector(buttonCloseDidPressed)) + return buttonClose + }() - @IBOutlet weak var visibleViewBottomConstraint: NSLayoutConstraint! - @IBOutlet weak var textFieldServerURL: UITextField! - @IBOutlet weak var activityIndicator: UIActivityIndicatorView! + @IBOutlet weak var titleLabel: UILabel! { + didSet { + titleLabel.text = localized("connection.title") + } + } - @IBOutlet weak var viewFields: UIView! { + @IBOutlet weak var buttonConnect: StyledButton! { didSet { - viewFields.layer.cornerRadius = 4 - viewFields.layer.borderColor = UIColor.RCLightGray().cgColor - viewFields.layer.borderWidth = 0.5 + buttonConnect.setTitle(localized("connection.button_connect"), for: .normal) } } - @IBOutlet weak var labelSSLRequired: UILabel! + @IBOutlet weak var textFieldServerURL: UITextField! - deinit { - NotificationCenter.default.removeObserver(self) - } + lazy var keyboardConstraint: NSLayoutConstraint = { + var bottomGuide: NSLayoutYAxisAnchor + + if #available(iOS 11.0, *) { + bottomGuide = view.safeAreaLayoutGuide.bottomAnchor + } else { + bottomGuide = view.bottomAnchor + } + + return buttonConnect.bottomAnchor.constraint(equalTo: bottomGuide, constant: 0) + }() + + // MARK: Life Cycle override func viewDidLoad() { super.viewDidLoad() - if DatabaseManager.servers?.count ?? 0 > 0 { - title = localized("servers.add_new_team") - } else { + if !(DatabaseManager.servers?.count ?? 0 > 0) { navigationItem.leftBarButtonItem = nil + } else { + navigationItem.leftBarButtonItem = buttonClose } infoRequestHandler.delegate = self textFieldServerURL.placeholder = defaultURL - labelSSLRequired.text = localized("auth.connect.ssl_required") if let nav = navigationController as? BaseNavigationController { nav.setTransparentTheme() } + + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(hideKeyboard)) + view.addGestureRecognizer(tapGesture) + + if shouldAutoConnect { + connect() + } } - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) SocketManager.sharedInstance.socket?.disconnect() DatabaseManager.cleanInvalidDatabases() if let applicationServerURL = AppManager.applicationServerURL { textFieldServerURL.isEnabled = false - labelSSLRequired.text = localized("auth.connect.connecting") textFieldServerURL.text = applicationServerURL.host connect() } - } - - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) NotificationCenter.default.addObserver( self, - selector: #selector(keyboardWillShow(_:)), + selector: #selector(keyboardWillAppear(_:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil ) NotificationCenter.default.addObserver( self, - selector: #selector(keyboardWillHide(_:)), + selector: #selector(keyboardWillDisappear(_:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil ) - textFieldServerURL.becomeFirstResponder() + if !shouldAutoConnect { + textFieldServerURL.becomeFirstResponder() + } + } + + deinit { + NotificationCenter.default.removeObserver(self) } + // MARK: Keyboard Handling + + @objc func keyboardWillAppear(_ notification: Notification) { + if let keyboardSize = ((notification as NSNotification).userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { + var viewRect = view.frame + viewRect.size.height -= keyboardSize.height + + if let buttonConnect = buttonConnect { + let buttonVisibleOrigin = CGPoint( + x: buttonConnect.frame.origin.x, + y: buttonConnect.frame.origin.y + buttonConnect.frame.size.height + buttonConnectBottomSpacing + ) + + if viewRect.contains(buttonVisibleOrigin) { + return + } + } + + keyboardConstraint.isActive = true + keyboardConstraint.constant = -(keyboardSize.height + buttonConnectBottomSpacing) + UIView.animate(withDuration: 0.5) { + self.view.layoutIfNeeded() + } + } + } + + @objc func keyboardWillDisappear(_ notification: Notification) { + keyboardConstraint.isActive = false + UIView.animate(withDuration: 0.5) { + self.view.layoutIfNeeded() + } + } + + @objc func hideKeyboard() { + view.endEditing(true) + } + + // MARK: Navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - if let controller = segue.destination as? AuthViewController, segue.identifier == "Auth" { + if let controller = segue.destination as? LoginTableViewController { + controller.shouldShowCreateAccount = true + controller.serverVersion = infoRequestHandler.version + controller.serverURL = url + controller.serverPublicSettings = serverPublicSettings + } + + if let controller = segue.destination as? AuthTableViewController, segue.identifier == "Auth" { controller.serverVersion = infoRequestHandler.version controller.serverURL = url - controller.serverPublicSettings = self.serverPublicSettings + controller.serverPublicSettings = serverPublicSettings if let credentials = deepLinkCredentials { _ = controller.view controller.authenticateWithDeepLinkCredentials(credentials) } - } - } - // MARK: Keyboard Handlers - override func keyboardWillShow(_ notification: Notification) { - if let keyboardSize = ((notification as NSNotification).userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { - visibleViewBottomConstraint.constant = keyboardSize.height + if let loginServices = sender as? [LoginService] { + controller.loginServices = loginServices + } else if let shouldRetrieveLoginServices = sender as? Bool { + controller.shouldRetrieveLoginServices = shouldRetrieveLoginServices + } } } - override func keyboardWillHide(_ notification: Notification) { - visibleViewBottomConstraint.constant = 0 - } - // MARK: IBAction - @IBAction func buttonCloseDidPressed(_ sender: Any) { + @IBAction func buttonConnectDidPressed(_ sender: Any) { + connect() + } + + @objc func buttonCloseDidPressed(_ sender: Any) { dismiss(animated: true, completion: nil) AppManager.changeSelectedServer(index: (DatabaseManager.servers?.count ?? 1) - 1) AppManager.reloadApp() @@ -135,9 +202,10 @@ final class ConnectServerViewController: BaseViewController { func connect() { guard let url = url else { return infoRequestHandler.alertInvalidURL() } + navigationItem.hidesBackButton = true connecting = true textFieldServerURL.alpha = 0.5 - activityIndicator.startAnimating() + buttonConnect.startLoading() textFieldServerURL.resignFirstResponder() if AppManager.changeToServerIfExists(serverUrl: url) { @@ -171,18 +239,28 @@ final class ConnectServerViewController: BaseViewController { self?.serverPublicSettings = settings if connected { - self?.performSegue(withIdentifier: "Auth", sender: nil) + API(host: serverURL, version: serverVersion ?? .zero).client(InfoClient.self).fetchLoginServices(completion: { loginServices, shouldRetrieveLoginServices in + self?.stopConnecting() + if shouldRetrieveLoginServices { + self?.performSegue(withIdentifier: "Auth", sender: shouldRetrieveLoginServices) + } else { + if loginServices.count > 0 { + self?.performSegue(withIdentifier: "Auth", sender: loginServices) + } else { + self?.performSegue(withIdentifier: "Login", sender: loginServices) + } + } + }) } - - self?.stopConnecting() } } } func stopConnecting() { + navigationItem.hidesBackButton = false connecting = false textFieldServerURL.alpha = 1 - activityIndicator.stopAnimating() + buttonConnect.stopLoading() } } @@ -193,6 +271,10 @@ extension ConnectServerViewController: UITextFieldDelegate { } func textFieldShouldReturn(_ textField: UITextField) -> Bool { + if buttonConnect.isLoading { + return false + } + connect() return true } diff --git a/Rocket.Chat/Controllers/Auth/LegalTableViewController.swift b/Rocket.Chat/Controllers/Auth/LegalTableViewController.swift new file mode 100644 index 0000000000..5c59d7e185 --- /dev/null +++ b/Rocket.Chat/Controllers/Auth/LegalTableViewController.swift @@ -0,0 +1,74 @@ +// +// LegalTableViewController.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 13/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit +import SafariServices + +class LegalTableViewController: UITableViewController { + + @IBOutlet weak var termsOfUseLabel: UILabel! { + didSet { + termsOfUseLabel.text = localized("auth.login.agree_termsofservice") + } + } + + @IBOutlet weak var privacyPolicyLabel: UILabel! { + didSet { + privacyPolicyLabel.text = localized("auth.login.agree_privacypolicy") + } + } + + override func viewDidLoad() { + super.viewDidLoad() + + if let nav = navigationController as? BaseNavigationController { + nav.setGrayTheme() + } + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + if let selectedIndexPath = tableView.indexPathForSelectedRow { + tableView.deselectRow(at: selectedIndexPath, animated: true) + } + } + + @IBAction func close() { + presentingViewController?.dismiss(animated: true, completion: nil) + } + +} + +extension LegalTableViewController { + + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + guard let serverURL = SocketManager.sharedInstance.serverURL else { + return + } + + var components = URLComponents() + components.scheme = "https" + components.host = serverURL.host + + if var newURL = components.url { + switch indexPath.row { + case 0: + newURL = newURL.appendingPathComponent("terms-of-service") + case 1: + newURL = newURL.appendingPathComponent("privacy-policy") + default: + return + } + + let controller = SFSafariViewController(url: newURL) + present(controller, animated: true, completion: nil) + } + } + +} diff --git a/Rocket.Chat/Controllers/Auth/LoginTableViewController.swift b/Rocket.Chat/Controllers/Auth/LoginTableViewController.swift new file mode 100644 index 0000000000..88aeeabac5 --- /dev/null +++ b/Rocket.Chat/Controllers/Auth/LoginTableViewController.swift @@ -0,0 +1,345 @@ +// +// LoginTableViewController.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 11/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit +import OnePasswordExtension + +class LoginTableViewController: BaseTableViewController { + + internal let createAccountRow: Int = 5 + + @IBOutlet weak var loginTitle: UILabel! { + didSet { + loginTitle.text = localized("auth.login.login_title") + } + } + + @IBOutlet weak var loginButton: StyledButton! { + didSet { + loginButton.setTitle(localized("auth.login.button_login_title"), for: .normal) + } + } + + @IBOutlet weak var forgotPasswordButton: StyledButton! { + didSet { + forgotPasswordButton.setTitle(localized("auth.forgot_password.title"), for: .normal) + } + } + + @IBOutlet weak var textFieldUsername: StyledTextField! + @IBOutlet weak var textFieldPassword: StyledTextField! + @IBOutlet weak var forgotPasswordCell: UITableViewCell! + @IBOutlet weak var createAccountButton: UIButton! { + didSet { + createAccountButton.titleLabel?.numberOfLines = 0 + + let prefix = NSAttributedString( + string: localized("auth.login.create_account_prefix"), + attributes: [ + NSAttributedStringKey.font: UIFont.systemFont(ofSize: 13, weight: .regular), + NSAttributedStringKey.foregroundColor: UIColor.RCTextFieldGray() + ] + ) + + let createAccount = NSAttributedString( + string: localized("auth.login.create_account"), + attributes: [ + NSAttributedStringKey.font: UIFont.systemFont(ofSize: 13, weight: .semibold), + NSAttributedStringKey.foregroundColor: UIColor.RCSkyBlue() + ] + ) + + let combinedString = NSMutableAttributedString(attributedString: prefix) + combinedString.append(createAccount) + + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.lineSpacing = 1 + paragraphStyle.alignment = .center + + let combinationRange = NSRange(location: 0, length: combinedString.length) + combinedString.addAttributes( + [NSAttributedStringKey.paragraphStyle: paragraphStyle], + range: combinationRange + ) + + createAccountButton.setAttributedTitle(combinedString, for: .normal) + } + } + + @IBOutlet weak var onePasswordButton: UIButton! { + didSet { + onePasswordButton.isHidden = !OnePasswordExtension.shared().isAppExtensionAvailable() + } + } + + var heightForSignUpRow: CGFloat { + let forgotPasswordY = forgotPasswordCell.frame.origin.y + let forgotPasswordHeight = forgotPasswordCell.frame.height + var safeAreaInsets: CGFloat + if #available(iOS 11.0, *) { + safeAreaInsets = tableView.safeAreaInsets.top + tableView.safeAreaInsets.bottom + } else { + safeAreaInsets = tableView.contentInset.top + } + + let contentSize = forgotPasswordY + forgotPasswordHeight + safeAreaInsets + + return tableView.bounds.height - contentSize + } + + var serverVersion: Version? + var serverURL: URL! + var serverPublicSettings: AuthSettings? + var temporary2FACode: String? + + var api: API? { + guard + let serverURL = serverURL, + let serverVersion = serverVersion + else { + return nil + } + + return API(host: serverURL, version: serverVersion) + } + + var shouldShowCreateAccount = false + var isKeyboardAppearing = false + var isRequesting = false + + // MARK: Life Cycle + + override func viewDidLoad() { + super.viewDidLoad() + + navigationItem.title = serverURL.host + + if shouldShowCreateAccount { + NotificationCenter.default.addObserver( + self, + selector: #selector(keyboardWillAppear(_:)), + name: NSNotification.Name.UIKeyboardWillShow, + object: nil + ) + + NotificationCenter.default.addObserver( + self, + selector: #selector(keyboardWillDisappear(_:)), + name: NSNotification.Name.UIKeyboardWillHide, + object: nil + ) + } + + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(hideKeyboard)) + view.addGestureRecognizer(tapGesture) + + updateFieldsPlaceholders() + updateUsernameSettings() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + if let nav = navigationController as? BaseNavigationController { + nav.setGrayTheme() + } + } + + deinit { + NotificationCenter.default.removeObserver(self) + } + + // MARK: Setup + + func updateUsernameSettings() { + guard let settings = serverPublicSettings else { + return + } + + if !settings.isUsernameEmailAuthenticationEnabled { + createAccountButton.isHidden = true + } else { + createAccountButton.isHidden = settings.registrationForm != .isPublic + } + } + + func updateFieldsPlaceholders() { + guard let settings = serverPublicSettings else { return } + + if !(settings.emailOrUsernameFieldPlaceholder?.isEmpty ?? true) { + textFieldUsername.placeholder = settings.emailOrUsernameFieldPlaceholder + } else { + textFieldUsername.placeholder = localized("auth.login.username.placeholder") + } + + if !(settings.passwordFieldPlaceholder?.isEmpty ?? true) { + textFieldPassword.placeholder = settings.passwordFieldPlaceholder + } else { + textFieldPassword.placeholder = localized("auth.login.password.placeholder") + } + } + + // MARK: Keyboard Management + + @objc func keyboardWillAppear(_ notification: Notification) { + isKeyboardAppearing = true + tableView.beginUpdates() + tableView.endUpdates() + } + + @objc func keyboardWillDisappear(_ notification: Notification) { + isKeyboardAppearing = false + tableView.beginUpdates() + tableView.endUpdates() + } + + @objc func hideKeyboard() { + view.endEditing(true) + } + + // MARK: Actions + + @IBAction func buttonOnePasswordDidPressed(_ sender: Any) { + let siteURL = serverPublicSettings?.siteURL ?? "" + OnePasswordExtension.shared().findLogin(forURLString: siteURL, for: self, sender: sender) { [weak self] (login, _) in + if login == nil { + return + } + + self?.textFieldUsername.text = login?[AppExtensionUsernameKey] as? String + self?.textFieldPassword.text = login?[AppExtensionPasswordKey] as? String + self?.temporary2FACode = login?[AppExtensionTOTPKey] as? String + self?.authenticateWithUsernameOrEmail() + } + } + + @IBAction func forgotPasswordPressed(_ sender: UIButton) { + let alert = UIAlertController( + title: localized("auth.forgot_password.title"), + message: localized("auth.forgot_password.message"), + preferredStyle: .alert + ) + + let sendAction = UIAlertAction(title: localized("Send"), style: .default, handler: { _ in + guard let text = alert.textFields?.first?.text else { return } + + AuthManager.sendForgotPassword(email: text, completion: { result in + guard !result.isError() else { + Alert( + title: localized("auth.forgot_password.title"), + message: localized("error.socket.default_error.message") + ).present() + return + } + + Alert( + title: localized("auth.forgot_password.title"), + message: localized("auth.forgot_password.success") + ).present() + }) + }) + + sendAction.isEnabled = false + + alert.addTextField(configurationHandler: { textField in + textField.placeholder = "john.appleseed@apple.com" + textField.textContentType = UITextContentType.emailAddress + textField.keyboardType = .emailAddress + + _ = NotificationCenter.default.addObserver(forName: .UITextFieldTextDidChange, object: textField, queue: OperationQueue.main) { _ in + sendAction.isEnabled = textField.text?.isValidEmail ?? false + } + }) + + alert.addAction(UIAlertAction(title: localized("global.cancel"), style: .cancel, handler: nil)) + alert.addAction(sendAction) + present(alert, animated: true) + } + + @IBAction func didPressedLoginButton() { + guard !isRequesting else { + return + } + + authenticateWithUsernameOrEmail() + } + + func authenticateWithUsernameOrEmail() { + let email = textFieldUsername.text ?? "" + let password = textFieldPassword.text ?? "" + + startLoading() + + if serverPublicSettings?.isLDAPAuthenticationEnabled ?? false { + let params = [ + "ldap": true, + "username": email, + "ldapPass": password, + "ldapOptions": [] + ] as [String: Any] + + AuthManager.auth(params: params, completion: self.handleAuthenticationResponse) + } else { + AuthManager.auth(email, password: password, completion: self.handleAuthenticationResponse) + } + } + + func startLoading() { + loginButton.startLoading() + navigationItem.hidesBackButton = true + forgotPasswordCell.isUserInteractionEnabled = false + createAccountButton.isEnabled = false + } + + func stopLoading() { + loginButton.stopLoading() + navigationItem.hidesBackButton = false + forgotPasswordCell.isUserInteractionEnabled = true + createAccountButton.isEnabled = true + } + + @objc func popSelf() { + navigationController?.popViewController(animated: true) + } + +} + +extension LoginTableViewController { + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + if indexPath.row == createAccountRow && !shouldShowCreateAccount { + return 0 + } + + if indexPath.row == createAccountRow && !isKeyboardAppearing { + return heightForSignUpRow + } + + return super.tableView(tableView, heightForRowAt: indexPath) + } +} + +extension LoginTableViewController: UITextFieldDelegate { + + func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { + return !isRequesting + } + + func textFieldShouldReturn(_ textField: UITextField) -> Bool { + if isRequesting { + return false + } + + if textField == textFieldPassword { + authenticateWithUsernameOrEmail() + } else { + textFieldPassword.becomeFirstResponder() + } + return true + } + +} diff --git a/Rocket.Chat/Controllers/Auth/LoginTableViewControllerAuthenticationHandler.swift b/Rocket.Chat/Controllers/Auth/LoginTableViewControllerAuthenticationHandler.swift new file mode 100644 index 0000000000..137fb0d635 --- /dev/null +++ b/Rocket.Chat/Controllers/Auth/LoginTableViewControllerAuthenticationHandler.swift @@ -0,0 +1,76 @@ +// +// LoginTableViewControllerAuthenticationHandler.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 13/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import Foundation + +import RealmSwift + +extension LoginTableViewController { + internal func handleAuthenticationResponse(_ response: LoginResponse) { + switch response { + case .resource(let resource): + guard let error = resource.error else { break } + + stopLoading() + + switch error.lowercased() { + case "totp-required": + performSegue(withIdentifier: "TwoFactor", sender: nil) + case "unauthorized": + Alert(key: "error.login_unauthorized").present() + return + default: + Alert(key: "error.login").present() + return + } + + if let publicSettings = serverPublicSettings { + AuthSettingsManager.persistPublicSettings(settings: publicSettings) + } + + if let realm = Realm.current, let auth = AuthManager.isAuthenticated(realm: realm), let version = serverVersion { + try? realm.write { + auth.serverVersion = version.description + } + } + case .error(let error): + stopLoading() + alert(title: localized("error.login.title"), message: error.description) + } + + performMeRequest() + } + + internal func performMeRequest() { + API.current()?.fetch(MeRequest()) { [weak self] response in + switch response { + case .resource(let resource): + self?.stopLoading() + + if let user = resource.user { + let realm = Realm.current + try? realm?.write { + realm?.add(user, update: true) + } + + if user.username != nil { + self?.dismiss(animated: true, completion: nil) + AppManager.reloadApp() + } else { + self?.performSegue(withIdentifier: "RequestUsername", sender: nil) + } + } else { + self?.stopLoading() + Alert(key: "error.socket.default_error").present() + } + case .error: + self?.stopLoading() + } + } + } +} diff --git a/Rocket.Chat/Controllers/Auth/RegisterUsernameViewController.swift b/Rocket.Chat/Controllers/Auth/RegisterUsernameTableViewController.swift similarity index 59% rename from Rocket.Chat/Controllers/Auth/RegisterUsernameViewController.swift rename to Rocket.Chat/Controllers/Auth/RegisterUsernameTableViewController.swift index cb05dbfe4e..cab0e77323 100644 --- a/Rocket.Chat/Controllers/Auth/RegisterUsernameViewController.swift +++ b/Rocket.Chat/Controllers/Auth/RegisterUsernameTableViewController.swift @@ -1,5 +1,5 @@ // -// RegisterUsernameViewController.swift +// RegisterUsernameTableViewController.swift // Rocket.Chat // // Created by Rafael Kellermann Streit on 04/03/17. @@ -9,23 +9,14 @@ import UIKit import SwiftyJSON -final class RegisterUsernameViewController: BaseViewController { +final class RegisterUsernameTableViewController: BaseTableViewController { internal var requesting = false var serverPublicSettings: AuthSettings? - @IBOutlet weak var viewFields: UIView! { - didSet { - viewFields.layer.cornerRadius = 4 - viewFields.layer.borderColor = UIColor.RCLightGray().cgColor - viewFields.layer.borderWidth = 0.5 - } - } - - @IBOutlet weak var visibleViewBottomConstraint: NSLayoutConstraint! @IBOutlet weak var textFieldUsername: UITextField! - @IBOutlet weak var activityIndicator: UIActivityIndicatorView! + @IBOutlet weak var registerButton: StyledButton! deinit { NotificationCenter.default.removeObserver(self) @@ -34,6 +25,8 @@ final class RegisterUsernameViewController: BaseViewController { override func viewDidLoad() { super.viewDidLoad() + navigationItem.title = SocketManager.sharedInstance.serverURL?.host + startLoading() AuthManager.usernameSuggestion { [weak self] (response) in self?.stopLoading() @@ -46,49 +39,32 @@ final class RegisterUsernameViewController: BaseViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) - - NotificationCenter.default.addObserver( - self, - selector: #selector(keyboardWillShow(_:)), - name: NSNotification.Name.UIKeyboardWillShow, - object: nil - ) - - NotificationCenter.default.addObserver( - self, - selector: #selector(keyboardWillHide(_:)), - name: NSNotification.Name.UIKeyboardWillHide, - object: nil - ) - textFieldUsername.becomeFirstResponder() } func startLoading() { textFieldUsername.alpha = 0.5 requesting = true - activityIndicator.startAnimating() + registerButton.startLoading() textFieldUsername.resignFirstResponder() } func stopLoading() { textFieldUsername.alpha = 1 requesting = false - activityIndicator.stopAnimating() + registerButton.stopLoading() } - // MARK: Keyboard Handlers - override func keyboardWillShow(_ notification: Notification) { - if let keyboardSize = ((notification as NSNotification).userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { - visibleViewBottomConstraint.constant = keyboardSize.height + // MARK: Request username + + @IBAction func didPressedRegisterButton() { + guard !requesting else { + return } - } - override func keyboardWillHide(_ notification: Notification) { - visibleViewBottomConstraint.constant = 0 + requestUsername() } - // MARK: Request username fileprivate func requestUsername() { startLoading() @@ -110,14 +86,16 @@ final class RegisterUsernameViewController: BaseViewController { } -extension RegisterUsernameViewController: UITextFieldDelegate { +extension RegisterUsernameTableViewController: UITextFieldDelegate { func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { return !requesting } func textFieldShouldReturn(_ textField: UITextField) -> Bool { - requestUsername() + if !requesting { + requestUsername() + } return true } diff --git a/Rocket.Chat/Controllers/Auth/SignupViewController.swift b/Rocket.Chat/Controllers/Auth/SignupViewController.swift index 1d44b75bcd..3c5fba6753 100644 --- a/Rocket.Chat/Controllers/Auth/SignupViewController.swift +++ b/Rocket.Chat/Controllers/Auth/SignupViewController.swift @@ -10,31 +10,23 @@ import UIKit import SwiftyJSON import RealmSwift -final class SignupViewController: BaseViewController { +final class SignupViewController: BaseTableViewController { internal var requesting = false var serverPublicSettings: AuthSettings? let compoundPickers = CompoundPickerViewDelegate() - @IBOutlet weak var viewFields: UIView! { + @IBOutlet weak var signupTitle: UILabel! { didSet { - viewFields.layer.cornerRadius = 4 - viewFields.layer.borderColor = UIColor.RCLightGray().cgColor - viewFields.layer.borderWidth = 0.5 + signupTitle.text = localized("auth.signup_title") } } - - @IBOutlet weak var visibleViewBottomConstraint: NSLayoutConstraint! - @IBOutlet weak var fieldsContainerVerticalCenterConstraint: NSLayoutConstraint! - @IBOutlet weak var fieldsContainerTopConstraint: NSLayoutConstraint! - @IBOutlet weak var textFieldName: UITextField! + @IBOutlet weak var textFieldUsername: UITextField! @IBOutlet weak var textFieldEmail: UITextField! @IBOutlet weak var textFieldPassword: UITextField! - @IBOutlet weak var activityIndicator: UIActivityIndicatorView! - @IBOutlet weak var fieldsContainer: UIStackView! - @IBOutlet weak var scrollView: UIScrollView! + @IBOutlet weak var registerButton: StyledButton! var customTextFields: [UITextField] = [] @@ -44,7 +36,13 @@ final class SignupViewController: BaseViewController { override func viewDidLoad() { super.viewDidLoad() - setupCustomFields() + + navigationItem.title = SocketManager.sharedInstance.serverURL?.host + + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(hideKeyboard)) + view.addGestureRecognizer(tapGesture) + +// setupCustomFields() } override func viewDidAppear(_ animated: Bool) { @@ -69,13 +67,14 @@ final class SignupViewController: BaseViewController { func startLoading() { textFieldName.alpha = 0.5 + textFieldUsername.alpha = 0.5 textFieldEmail.alpha = 0.5 textFieldPassword.alpha = 0.5 customTextFields.forEach { $0.alpha = 0.5 } requesting = true - activityIndicator.startAnimating() + registerButton.startLoading() textFieldName.resignFirstResponder() textFieldEmail.resignFirstResponder() textFieldPassword.resignFirstResponder() @@ -84,26 +83,23 @@ final class SignupViewController: BaseViewController { func stopLoading() { textFieldName.alpha = 1 + textFieldUsername.alpha = 1 textFieldEmail.alpha = 1 textFieldPassword.alpha = 1 customTextFields.forEach { $0.alpha = 1 } requesting = false - activityIndicator.stopAnimating() + registerButton.stopLoading() } // MARK: Keyboard Handlers - override func keyboardWillShow(_ notification: Notification) { - if let keyboardSize = ((notification as NSNotification).userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { - visibleViewBottomConstraint.constant = keyboardSize.height - } - } - override func keyboardWillHide(_ notification: Notification) { - visibleViewBottomConstraint.constant = 0 + @objc func hideKeyboard() { + view.endEditing(true) } // MARK: Request username + fileprivate func signup() { startLoading() @@ -131,9 +127,13 @@ final class SignupViewController: BaseViewController { return } + self?.startLoading() AuthManager.auth(email, password: password, completion: { _ in + self?.stopLoading() API.current()?.client(InfoClient.self).fetchInfo { + self?.startLoading() API.current()?.fetch(MeRequest()) { [weak self] response in + self?.stopLoading() switch response { case .resource(let resource): let realm = Realm.current @@ -147,9 +147,23 @@ final class SignupViewController: BaseViewController { self?.dismiss(animated: true, completion: nil) AppManager.reloadApp() } else { - self?.performSegue(withIdentifier: "RequestUsername", sender: nil) + self?.startLoading() + AuthManager.setUsername(self?.textFieldUsername.text ?? "") { success, errorMessage in + self?.stopLoading() + DispatchQueue.main.async { + self?.stopLoading() + if !success { + Alert( + title: localized("error.socket.default_error.title"), + message: errorMessage ?? localized("error.socket.default_error.message") + ).present() + } else { + self?.dismiss(animated: true, completion: nil) + AppManager.reloadApp() + } + } + } } - case .error: break } } @@ -185,10 +199,7 @@ extension SignupViewController: UITextFieldDelegate { } private func makeNextFieldFirstResponder(after textField: UITextField) { - let textViews = fieldsContainer.arrangedSubviews.filter { $0 is UITextField } - if let currentTextFieldIndex = textViews.index(of: textField) { - let nextTextFieldIndex = textViews.index(after: currentTextFieldIndex) - textViews[nextTextFieldIndex].becomeFirstResponder() - } + let nextTextField = view.viewWithTag(textField.tag + 1) as? UITextField + nextTextField?.becomeFirstResponder() } } diff --git a/Rocket.Chat/Controllers/Auth/SignupViewControllerCustomFields.swift b/Rocket.Chat/Controllers/Auth/SignupViewControllerCustomFields.swift index fd9a0fb6d9..ba107da64c 100644 --- a/Rocket.Chat/Controllers/Auth/SignupViewControllerCustomFields.swift +++ b/Rocket.Chat/Controllers/Auth/SignupViewControllerCustomFields.swift @@ -8,80 +8,80 @@ import UIKit -extension SignupViewController { - - func setupCustomFields() { - customTextFields = getCustomTextFields() - - for textField in customTextFields { - fieldsContainer.addArrangedSubview(textField) - fieldsContainer.addArrangedSubview(createSeparatorView()) - } - - exchangePasswordFieldWithLast() - } - - private func getCustomTextFields() -> [UITextField] { - return AuthSettingsManager.settings?.customFields.map { customField in - createTextField(with: customField) - } ?? [] - } - - private func createTextField(with model: CustomField) -> UITextField { - let textField = UITextField() - textField.heightAnchor.constraint(equalToConstant: 62).isActive = true - textField.autocorrectionType = .no - textField.autocapitalizationType = .none - textField.returnKeyType = .next - textField.placeholder = model.name - textField.delegate = self - - if let selectField = model as? SelectField { - setupSelectField(textField, with: selectField) - } - - return textField - } - - private func setupSelectField(_ textField: UITextField, with model: SelectField) { - let pickerView = UIPickerView() - - let pickerDelegate = PickerViewDelegate(data: model.options) { - textField.text = $0 - } - - compoundPickers.append(pickerDelegate) - - pickerView.dataSource = pickerDelegate - pickerView.delegate = pickerDelegate - pickerView.showsSelectionIndicator = true - textField.inputView = pickerView - textField.text = model.defaultValue - } - - private func createSeparatorView() -> UIView { - let separator = UIView() - separator.heightAnchor.constraint(equalToConstant: 1).isActive = true - separator.backgroundColor = UIColor.RCSeparatorGrey() - return separator - } - - private func exchangePasswordFieldWithLast() { - fieldsContainer.removeArrangedSubview(textFieldPassword) - fieldsContainer.addArrangedSubview(textFieldPassword) - } - - override func viewDidLayoutSubviews() { - super.viewDidLayoutSubviews() - adjustScrollView() - } - - func adjustScrollView() { - fieldsContainerVerticalCenterConstraint.isActive = !needScrolling() - fieldsContainerTopConstraint.isActive = needScrolling() - } - - private func needScrolling() -> Bool { - return fieldsContainer.bounds.height >= scrollView.bounds.height - } -} +//extension SignupViewController { +// +// func setupCustomFields() { +// customTextFields = getCustomTextFields() +// +// for textField in customTextFields { +// fieldsContainer.addArrangedSubview(textField) +// fieldsContainer.addArrangedSubview(createSeparatorView()) +// } +// +// exchangePasswordFieldWithLast() +// } +// +// private func getCustomTextFields() -> [UITextField] { +// return AuthSettingsManager.settings?.customFields.map { customField in +// createTextField(with: customField) +// } ?? [] +// } +// +// private func createTextField(with model: CustomField) -> UITextField { +// let textField = UITextField() +// textField.heightAnchor.constraint(equalToConstant: 62).isActive = true +// textField.autocorrectionType = .no +// textField.autocapitalizationType = .none +// textField.returnKeyType = .next +// textField.placeholder = model.name +// textField.delegate = self +// +// if let selectField = model as? SelectField { +// setupSelectField(textField, with: selectField) +// } +// +// return textField +// } +// +// private func setupSelectField(_ textField: UITextField, with model: SelectField) { +// let pickerView = UIPickerView() +// +// let pickerDelegate = PickerViewDelegate(data: model.options) { +// textField.text = $0 +// } +// +// compoundPickers.append(pickerDelegate) +// +// pickerView.dataSource = pickerDelegate +// pickerView.delegate = pickerDelegate +// pickerView.showsSelectionIndicator = true +// textField.inputView = pickerView +// textField.text = model.defaultValue +// } +// +// private func createSeparatorView() -> UIView { +// let separator = UIView() +// separator.heightAnchor.constraint(equalToConstant: 1).isActive = true +// separator.backgroundColor = UIColor.RCSeparatorGrey() +// return separator +// } +// +// private func exchangePasswordFieldWithLast() { +// fieldsContainer.removeArrangedSubview(textFieldPassword) +// fieldsContainer.addArrangedSubview(textFieldPassword) +// } +// +// override func viewDidLayoutSubviews() { +// super.viewDidLayoutSubviews() +// adjustScrollView() +// } +// +// func adjustScrollView() { +// fieldsContainerVerticalCenterConstraint.isActive = !needScrolling() +// fieldsContainerTopConstraint.isActive = needScrolling() +// } +// +// private func needScrolling() -> Bool { +// return fieldsContainer.bounds.height >= scrollView.bounds.height +// } +//} diff --git a/Rocket.Chat/Controllers/Auth/TwoFactorAuthenticationViewController.swift b/Rocket.Chat/Controllers/Auth/TwoFactorAuthTableViewController.swift similarity index 57% rename from Rocket.Chat/Controllers/Auth/TwoFactorAuthenticationViewController.swift rename to Rocket.Chat/Controllers/Auth/TwoFactorAuthTableViewController.swift index 2d374edea3..d259110ef6 100644 --- a/Rocket.Chat/Controllers/Auth/TwoFactorAuthenticationViewController.swift +++ b/Rocket.Chat/Controllers/Auth/TwoFactorAuthTableViewController.swift @@ -1,5 +1,5 @@ // -// TwoFactorAuthenticationViewController.swift +// TwoFactorAuthTableViewController.swift // Rocket.Chat // // Created by Rafael Kellermann Streit on 30/03/17. @@ -9,7 +9,7 @@ import UIKit import SwiftyJSON -final class TwoFactorAuthenticationViewController: BaseViewController { +final class TwoFactorAuthTableViewController: BaseTableViewController { internal var requesting = false @@ -17,20 +17,12 @@ final class TwoFactorAuthenticationViewController: BaseViewController { var password: String = "" var token: String = "" - @IBOutlet weak var viewFields: UIView! { - didSet { - viewFields.layer.cornerRadius = 4 - viewFields.layer.borderColor = UIColor.RCLightGray().cgColor - viewFields.layer.borderWidth = 0.5 - } - } - - @IBOutlet weak var visibleViewBottomConstraint: NSLayoutConstraint! @IBOutlet weak var textFieldCode: UITextField! - @IBOutlet weak var activityIndicator: UIActivityIndicatorView! + @IBOutlet weak var confirmButton: StyledButton! - deinit { - NotificationCenter.default.removeObserver(self) + override func viewDidLoad() { + super.viewDidLoad() + navigationItem.title = SocketManager.sharedInstance.serverURL?.host } override func viewWillAppear(_ animated: Bool) { @@ -41,20 +33,6 @@ final class TwoFactorAuthenticationViewController: BaseViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) - NotificationCenter.default.addObserver( - self, - selector: #selector(keyboardWillShow(_:)), - name: NSNotification.Name.UIKeyboardWillShow, - object: nil - ) - - NotificationCenter.default.addObserver( - self, - selector: #selector(keyboardWillHide(_:)), - name: NSNotification.Name.UIKeyboardWillHide, - object: nil - ) - if token.isEmpty { textFieldCode.becomeFirstResponder() } else { @@ -65,28 +43,26 @@ final class TwoFactorAuthenticationViewController: BaseViewController { func startLoading() { textFieldCode.alpha = 0.5 requesting = true - activityIndicator.startAnimating() + confirmButton.startLoading() textFieldCode.resignFirstResponder() } func stopLoading() { textFieldCode.alpha = 1 requesting = false - activityIndicator.stopAnimating() + confirmButton.stopLoading() } - // MARK: Keyboard Handlers - override func keyboardWillShow(_ notification: Notification) { - if let keyboardSize = ((notification as NSNotification).userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { - visibleViewBottomConstraint.constant = keyboardSize.height + // MARK: Request username + + @IBAction func didPressedConfirmButton() { + guard !requesting else { + return } - } - override func keyboardWillHide(_ notification: Notification) { - visibleViewBottomConstraint.constant = 0 + authenticate() } - // MARK: Request username fileprivate func authenticate() { startLoading() @@ -99,13 +75,13 @@ final class TwoFactorAuthenticationViewController: BaseViewController { AuthManager.auth(username, password: password, code: textFieldCode.text ?? "") { [weak self] (response) in self?.stopLoading() - + switch response { case .resource(let resource): if let error = resource.error { return presentErrorAlert(message: error) } - + self?.dismiss(animated: true, completion: nil) AppManager.reloadApp() case .error: @@ -116,14 +92,17 @@ final class TwoFactorAuthenticationViewController: BaseViewController { } -extension TwoFactorAuthenticationViewController: UITextFieldDelegate { +extension TwoFactorAuthTableViewController: UITextFieldDelegate { func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { return !requesting } func textFieldShouldReturn(_ textField: UITextField) -> Bool { - authenticate() + if !requesting { + authenticate() + } + return true } diff --git a/Rocket.Chat/Controllers/Auth/WelcomeViewController.swift b/Rocket.Chat/Controllers/Auth/WelcomeViewController.swift new file mode 100644 index 0000000000..d774a0b870 --- /dev/null +++ b/Rocket.Chat/Controllers/Auth/WelcomeViewController.swift @@ -0,0 +1,127 @@ +// +// WelcomeViewController.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 11/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit +import SafariServices + +class WelcomeViewController: BaseViewController { + + internal var joinCommunitySegue = "JoinCommunity" + internal let communityServerURL = "\nopen.rocket.chat" + internal let createServerURL = "https://cloud.rocket.chat" + + @IBOutlet weak var welcomeLabel: UILabel! { + didSet { + welcomeLabel.text = localized("onboarding.label_welcome") + } + } + + @IBOutlet weak var subtitleLabel: UILabel! { + didSet { + subtitleLabel.text = localized("onboarding.label_subtitle") + } + } + @IBOutlet weak var connectServerButton: UIButton! { + didSet { + connectServerButton.setTitle( + localized("onboarding.button_connect_server"), + for: .normal + ) + } + } + + @IBOutlet weak var createServerButtton: UIButton! { + didSet { + createServerButtton.setTitle( + localized("onboarding.button_create_server"), + for: .normal + ) + } + } + + @IBOutlet weak var connectServerContainer: UIView! + @IBOutlet weak var joinCommunityContainer: UIView! + @IBOutlet weak var joinCommunityButton: UIButton! { + didSet { + joinCommunityButton.titleLabel?.numberOfLines = 0 + + let title = NSAttributedString( + string: localized("onboarding.button_join_community_prefix"), + attributes: [ + NSAttributedStringKey.font: UIFont.systemFont(ofSize: 17, weight: .semibold), + NSAttributedStringKey.foregroundColor: UIColor.RCSkyBlue() + ] + ) + let serverURL = NSAttributedString( + string: communityServerURL, + attributes: [ + NSAttributedStringKey.font: UIFont.systemFont(ofSize: 15, weight: .regular), + NSAttributedStringKey.foregroundColor: UIColor.RCTextFieldGray() + ] + ) + + let combinedString = NSMutableAttributedString(attributedString: title) + combinedString.append(serverURL) + + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.lineSpacing = 1 + + let combinationRange = NSRange(location: 0, length: combinedString.length) + combinedString.addAttributes( + [NSAttributedStringKey.paragraphStyle: paragraphStyle], + range: combinationRange + ) + + joinCommunityButton.setAttributedTitle(combinedString, for: .normal) + } + } + + // MARK: Life Cycle + + override func viewDidLoad() { + super.viewDidLoad() + setupAppearance() + } + + // MARK: Setup + + func setupAppearance() { + if let nav = navigationController as? BaseNavigationController { + nav.setTransparentTheme() + } + + connectServerContainer.layer.borderWidth = 1 + connectServerContainer.layer.cornerRadius = 2 + connectServerContainer.layer.borderColor = UIColor.RCButtonBorderGray().cgColor + joinCommunityContainer.layer.borderWidth = 1 + joinCommunityContainer.layer.cornerRadius = 2 + joinCommunityContainer.layer.borderColor = UIColor.RCButtonBorderGray().cgColor + } + + // MARK: Navigation + + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + if let connectServer = segue.destination as? ConnectServerViewController, segue.identifier == joinCommunitySegue { + connectServer.shouldAutoConnect = true + } + } + + // MARK: Actions + + @IBAction func showCreateServer() { + guard let url = URL(string: createServerURL) else { + return + } + + let controller = SFSafariViewController(url: url) + controller.modalPresentationStyle = .popover + controller.preferredControlTintColor = view.tintColor + + present(controller, animated: true, completion: nil) + } +} diff --git a/Rocket.Chat/Controllers/Base/BaseNavigationController.swift b/Rocket.Chat/Controllers/Base/BaseNavigationController.swift index 97169db23f..60d7b4457d 100644 --- a/Rocket.Chat/Controllers/Base/BaseNavigationController.swift +++ b/Rocket.Chat/Controllers/Base/BaseNavigationController.swift @@ -11,6 +11,11 @@ import UIKit class BaseNavigationController: UINavigationController { + override var shouldAutorotate: Bool { + guard let topViewController = topViewController else { return true } + return !(topViewController is WelcomeViewController) + } + override func viewDidLoad() { super.viewDidLoad() @@ -20,13 +25,59 @@ class BaseNavigationController: UINavigationController { navBar.isTranslucent = false } - func setTransparentTheme() { + override func popToRootViewController(animated: Bool) -> [UIViewController]? { + let viewControllers = super.popToRootViewController(animated: animated) + setTransparentTheme() + + return viewControllers + } + + override func popViewController(animated: Bool) -> UIViewController? { + let poppedViewController = super.popViewController(animated: animated) + + if topViewController is ConnectServerViewController { + setTransparentTheme() + } + + return poppedViewController + } + + override func pushViewController(_ viewController: UIViewController, animated: Bool) { + let pushedFromViewController = topViewController + super.pushViewController(viewController, animated: animated) + + if viewController is LoginTableViewController || viewController is AuthTableViewController { + setGrayTheme( + forceRedraw: pushedFromViewController is ConnectServerViewController + ) + } + } + + func setTransparentTheme(forceRedraw: Bool = false) { + UIApplication.shared.statusBarStyle = .default let navBar = self.navigationBar navBar.setBackgroundImage(UIImage(), for: .default) navBar.shadowImage = UIImage() navBar.backgroundColor = UIColor.clear navBar.isTranslucent = true navBar.tintColor = .RCBlue() - navBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.RCBlue()] + if forceRedraw { forceNavigationToRedraw() } + } + + func setGrayTheme(forceRedraw: Bool = false) { + UIApplication.shared.statusBarStyle = .lightContent + let navBar = self.navigationBar + navBar.shadowImage = UIImage() + navBar.backgroundColor = .RCNavBarGray() + navBar.barTintColor = .RCNavBarGray() + navBar.isTranslucent = false + navBar.tintColor = .white + navBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white] + if forceRedraw { forceNavigationToRedraw() } + } + + func forceNavigationToRedraw() { + isNavigationBarHidden = true + isNavigationBarHidden = false } } diff --git a/Rocket.Chat/Controllers/Base/BaseTableViewController.swift b/Rocket.Chat/Controllers/Base/BaseTableViewController.swift new file mode 100644 index 0000000000..acaca1efd5 --- /dev/null +++ b/Rocket.Chat/Controllers/Base/BaseTableViewController.swift @@ -0,0 +1,24 @@ +// +// BaseTableViewController.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 13/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class BaseTableViewController: UITableViewController { + override func viewDidLoad() { + super.viewDidLoad() + + ThemeManager.addObserver(self) + + self.navigationItem.backBarButtonItem = UIBarButtonItem( + title: "", + style: .plain, + target: nil, + action: nil + ) + } +} diff --git a/Rocket.Chat/Controllers/Base/BaseViewController.swift b/Rocket.Chat/Controllers/Base/BaseViewController.swift index 48823f6f52..086c984ddb 100644 --- a/Rocket.Chat/Controllers/Base/BaseViewController.swift +++ b/Rocket.Chat/Controllers/Base/BaseViewController.swift @@ -8,28 +8,17 @@ import UIKit -// swiftlint:disable private_over_fileprivate -fileprivate func baseViewDidLoad(controller: UIViewController) { - ThemeManager.addObserver(controller) - - controller.navigationItem.backBarButtonItem = UIBarButtonItem( - title: "", - style: .plain, - target: nil, - action: nil - ) -} - class BaseViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - baseViewDidLoad(controller: self) - } -} -class BaseTableViewController: UITableViewController { - override func viewDidLoad() { - super.viewDidLoad() - baseViewDidLoad(controller: self) + ThemeManager.addObserver(self) + + navigationItem.backBarButtonItem = UIBarButtonItem( + title: "", + style: .plain, + target: nil, + action: nil + ) } } diff --git a/Rocket.Chat/Controllers/Base/MainSplitViewController.swift b/Rocket.Chat/Controllers/Base/MainSplitViewController.swift index 8e9c4bfb18..4de9963fe9 100644 --- a/Rocket.Chat/Controllers/Base/MainSplitViewController.swift +++ b/Rocket.Chat/Controllers/Base/MainSplitViewController.swift @@ -12,6 +12,10 @@ final class MainSplitViewController: UISplitViewController { let socketHandlerToken = String.random(5) + deinit { + SocketManager.removeConnectionHandler(token: socketHandlerToken) + } + static var chatViewController: ChatViewController? { guard let appDelegate = UIApplication.shared.delegate as? AppDelegate, @@ -35,10 +39,6 @@ final class MainSplitViewController: UISplitViewController { return controller } - deinit { - SocketManager.removeConnectionHandler(token: socketHandlerToken) - } - override func awakeFromNib() { super.awakeFromNib() @@ -75,16 +75,10 @@ extension MainSplitViewController: UISplitViewControllerDelegate { extension MainSplitViewController: SocketConnectionHandler { - func socketDidConnect(socket: SocketManager) { - - } - - func socketDidDisconnect(socket: SocketManager) { - SocketManager.reconnect() - } - - func socketDidReturnError(socket: SocketManager, error: SocketError) { - // Handle errors + func socketDidChangeState(state: SocketConnectionState) { + if state == .waitingForNetwork || state == .disconnected { + SocketManager.reconnect() + } } } diff --git a/Rocket.Chat/Controllers/Chat/ChannelActionsViewController.swift b/Rocket.Chat/Controllers/Chat/ChannelActionsViewController.swift index 316e7b61cb..c569a5f297 100644 --- a/Rocket.Chat/Controllers/Chat/ChannelActionsViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChannelActionsViewController.swift @@ -39,7 +39,7 @@ class ChannelActionsViewController: BaseViewController { shouldListMentions ? ChannelInfoActionCellData(icon: UIImage(named: "Mentions"), title: "Mentions", action: showMentionsList) : nil, ChannelInfoActionCellData(icon: UIImage(named: "Members"), title: "Members", action: showMembersList), ChannelInfoActionCellData(icon: UIImage(named: "Star Off"), title: "Starred", action: showStarredList), - ChannelInfoActionCellData(icon: UIImage(named: "Share"), title: "Share", action: nil), + ChannelInfoActionCellData(icon: UIImage(named: "Share"), title: "Share", action: shareRoom), ChannelInfoActionCellData(icon: UIImage(named: "Pinned"), title: "Pinned", action: showPinnedList) ]] @@ -177,6 +177,12 @@ extension ChannelActionsViewController { self.performSegue(withIdentifier: "toFilesList", sender: data) } + func shareRoom() { + guard let url = subscription?.externalURL() else { return } + let controller = UIActivityViewController(activityItems: [url], applicationActivities: nil) + present(controller, animated: true, completion: nil) + } + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if let membersList = segue.destination as? MembersListViewController { membersList.data.subscription = self.subscription diff --git a/Rocket.Chat/Controllers/Chat/ChatViewController.swift b/Rocket.Chat/Controllers/Chat/ChatViewController.swift index ea55ec0c3a..7cf5aba2d1 100644 --- a/Rocket.Chat/Controllers/Chat/ChatViewController.swift +++ b/Rocket.Chat/Controllers/Chat/ChatViewController.swift @@ -219,6 +219,7 @@ final class ChatViewController: SLKTextViewController { private func setupTitleView() { let view = ChatTitleView.instantiateFromNib() + view?.subscription = subscription view?.delegate = self navigationItem.titleView = view chatTitleView = view @@ -1207,16 +1208,9 @@ extension ChatViewController: KeyboardFrameViewDelegate { extension ChatViewController: SocketConnectionHandler { - func socketDidConnect(socket: SocketManager) { - - } - - func socketDidDisconnect(socket: SocketManager) { - SocketManager.reconnect() - } - - func socketDidReturnError(socket: SocketManager, error: SocketError) { - // Handle errors + func socketDidChangeState(state: SocketConnectionState) { + Log.debug("[ChatViewController] socketDidChangeState: \(state)") + chatTitleView?.state = state } } diff --git a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift index 0687daee16..8e4b9622d3 100644 --- a/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift +++ b/Rocket.Chat/Controllers/Subscriptions/SubscriptionsViewController.swift @@ -59,10 +59,18 @@ final class SubscriptionsViewController: BaseViewController { let socketHandlerToken = String.random(5) + deinit { + SocketManager.removeConnectionHandler(token: socketHandlerToken) + subscriptionsToken?.invalidate() + } + override func viewDidLoad() { setupSearchBar() setupTitleView() updateBackButton() + + subscribeModelChanges() + updateData() super.viewDidLoad() } @@ -76,12 +84,11 @@ final class SubscriptionsViewController: BaseViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) + // This method can stay here, since adding a new connection handler + // will override the existing one if there's already one. This is here + // to prevent that some connection issue removes all the connection handler. SocketManager.addConnectionHandler(token: socketHandlerToken, handler: self) - subscribeModelChanges() - updateData() - tableView.reloadData() - if let indexPath = tableView.indexPathForSelectedRow { tableView.deselectRow(at: indexPath, animated: animated) } @@ -280,14 +287,19 @@ final class SubscriptionsViewController: BaseViewController { func setupTitleView() { if let titleView = SubscriptionsTitleView.instantiateFromNib() { + titleView.translatesAutoresizingMaskIntoConstraints = false + titleView.delegate = self + titleView.layoutIfNeeded() + titleView.sizeToFit() + updateServerInformation() + + // This code can be removed when we drop iOS 10 support. + titleView.translatesAutoresizingMaskIntoConstraints = true navigationItem.titleView = titleView self.titleView = titleView let tapGesture = UITapGestureRecognizer(target: self, action: #selector(openServersList)) titleView.addGestureRecognizer(tapGesture) - - titleView.delegate = self - updateServerInformation() } } @@ -472,6 +484,19 @@ extension SubscriptionsViewController: UISearchBarDelegate { } else { titleView?.updateTitleImage(reverse: true) serversView = ServersListView.showIn(self.view, frame: frameForDropDownOverlay) + serversView?.presentAddServer = { + let connect = Storyboard.auth( + serverUrl: "", + credentials: nil + ).instantiate( + viewController: String(describing: ConnectServerViewController.self) + ) ?? UIViewController() + + let nav = BaseNavigationController(rootViewController: connect) + _ = nav.view + + self.present(nav, animated: true, completion: nil) + } serversView?.delegate = self serversView?.applyTheme() } @@ -654,16 +679,9 @@ extension SubscriptionsViewController: SubscriptionSearchMoreViewDelegate { extension SubscriptionsViewController: SocketConnectionHandler { - func socketDidConnect(socket: SocketManager) { - - } - - func socketDidDisconnect(socket: SocketManager) { - SocketManager.reconnect() - } - - func socketDidReturnError(socket: SocketManager, error: SocketError) { - // Handle errors + func socketDidChangeState(state: SocketConnectionState) { + Log.debug("[SubscriptionsViewController] socketDidChangeState: \(state)") + titleView?.state = state } } diff --git a/Rocket.Chat/Extensions/Models/SubscriptionExtensions.swift b/Rocket.Chat/Extensions/Models/SubscriptionExtensions.swift index 5d1c0751f7..97babd55e5 100644 --- a/Rocket.Chat/Extensions/Models/SubscriptionExtensions.swift +++ b/Rocket.Chat/Extensions/Models/SubscriptionExtensions.swift @@ -11,6 +11,38 @@ import RealmSwift typealias SortDescriptor = (Value, Value) -> Bool +// MARK: URL Generation + +extension Subscription { + + /** + This method returns the external URL of any subscription + when all the information required is valid on the related instance. + + - returns: the external URL of the subscription object + */ + func externalURL() -> URL? { + guard + let auth = auth, + let siteURLString = auth.settings?.siteURL, + name.count > 0 + else { + return nil + } + + let suffix: String = { + switch type { + case .channel: return "channel" + case .directMessage: return "direct" + case .group: return "group" + } + }() + + return URL(string: "\(siteURLString)/\(suffix)/\(name)") + } + +} + // MARK: Information Viewing Options extension Subscription { diff --git a/Rocket.Chat/Extensions/StringExtensions.swift b/Rocket.Chat/Extensions/StringExtensions.swift index c36ecf99b2..ee2d3c428a 100644 --- a/Rocket.Chat/Extensions/StringExtensions.swift +++ b/Rocket.Chat/Extensions/StringExtensions.swift @@ -77,6 +77,21 @@ extension String { return ranges } + /** + This method prevents the app from keeping the URL that may + come with (or without) a slash in the end. All the URLs + coming/mapped from the API should not have a slash in the end. + + - returns: the same string, but without the last char if it exists. + */ + func removingLastSlashIfNeeded() -> String { + if last == "/" { + return String(self.dropLast()) + } + + return self + } + func removingWhitespaces() -> String { return components(separatedBy: .whitespacesAndNewlines).joined() } diff --git a/Rocket.Chat/Extensions/UIColorExtension.swift b/Rocket.Chat/Extensions/UIColorExtension.swift index 2ad0831db9..05f55954b2 100644 --- a/Rocket.Chat/Extensions/UIColorExtension.swift +++ b/Rocket.Chat/Extensions/UIColorExtension.swift @@ -102,6 +102,18 @@ extension UIColor { return UIColor(rgb: 0xEAEAEA, alphaVal: 0.75) } + static func RCTextFieldGray() -> UIColor { + return UIColor(rgb: 10396328, alphaVal: 1) + } + + static func RCTextFieldBorderGray() -> UIColor { + return UIColor(rgb: 15199218, alphaVal: 1) + } + + static func RCButtonBorderGray() -> UIColor { + return UIColor(rgb: 14804456, alphaVal: 1) + } + static func RCDarkGray() -> UIColor { return UIColor(rgb: 0x333333, alphaVal: 1) } @@ -110,6 +122,10 @@ extension UIColor { return UIColor(rgb: 0x9EA2A8, alphaVal: 1) } + static func RCNavBarGray() -> UIColor { + return UIColor(rgb: 3355443, alphaVal: 1) + } + static func RCLightGray() -> UIColor { return UIColor(rgb: 0xCBCED1, alphaVal: 1) } @@ -118,6 +134,10 @@ extension UIColor { return UIColor(rgb: 0xC2C2C2, alphaVal: 0.5) } + static func RCSkyBlue() -> UIColor { + return UIColor(rgb: 1930485, alphaVal: 1) + } + static func RCDarkBlue() -> UIColor { return UIColor(rgb: 0x0a4469, alphaVal: 1) } @@ -182,6 +202,7 @@ extension UIColor { } // MARK: UIKit default colors + extension UIColor { static var placeholderGray: UIColor { return UIColor(red: 199/255, green: 199/255, blue: 205/255, alpha: 1) @@ -191,3 +212,14 @@ extension UIColor { return UIColor(red: 247/255, green: 247/255, blue: 247/255, alpha: 1) } } + +// MARK: Utils + +extension UIColor { + func isBrightColor() -> Bool { + guard let components = cgColor.components else { return false } + let brightness = ((components[0] * 299) + (components[1] * 587) + (components[2] * 114)) / 1000 + + return brightness < 0.5 ? false : true + } +} diff --git a/Rocket.Chat/Helpers/VoiceOver/VOTextField.swift b/Rocket.Chat/Helpers/VoiceOver/VOTextField.swift index ae525cd963..1e7d6f9129 100644 --- a/Rocket.Chat/Helpers/VoiceOver/VOTextField.swift +++ b/Rocket.Chat/Helpers/VoiceOver/VOTextField.swift @@ -8,7 +8,7 @@ import UIKit -final class VOTextField: UITextField { +class VOTextField: UITextField { override var accessibilityLabel: String? { get { return localizedAccessibilityLabel } set { } diff --git a/Rocket.Chat/Info.plist b/Rocket.Chat/Info.plist index 66a57b4293..93063da93a 100644 --- a/Rocket.Chat/Info.plist +++ b/Rocket.Chat/Info.plist @@ -300,6 +300,6 @@ UIInterfaceOrientationLandscapeRight UIViewControllerBasedStatusBarAppearance - + diff --git a/Rocket.Chat/Managers/AppManager.swift b/Rocket.Chat/Managers/AppManager.swift index 03e68a0089..0c891fb7d7 100644 --- a/Rocket.Chat/Managers/AppManager.swift +++ b/Rocket.Chat/Managers/AppManager.swift @@ -155,6 +155,7 @@ extension AppManager { SocketManager.sharedInstance.connectionHandlers.removeAllObjects() SocketManager.disconnect { (_, _) in DispatchQueue.main.async { + UIApplication.shared.statusBarStyle = .default if AuthManager.isAuthenticated() != nil { if let currentUser = AuthManager.currentUser() { BugTrackingCoordinator.identifyCrashReports(withUser: currentUser) diff --git a/Rocket.Chat/Managers/LogManager.swift b/Rocket.Chat/Managers/LogManager.swift index 54e6775c29..a76bf94f2d 100644 --- a/Rocket.Chat/Managers/LogManager.swift +++ b/Rocket.Chat/Managers/LogManager.swift @@ -11,9 +11,8 @@ import Foundation struct Log { static func debug(_ text: String?) { - guard let text = text else { return } - #if DEBUG + guard let text = text else { return } print(text) #endif } diff --git a/Rocket.Chat/Managers/NetworkManager.swift b/Rocket.Chat/Managers/NetworkManager.swift index 28c494d6f9..d5bd5935f9 100644 --- a/Rocket.Chat/Managers/NetworkManager.swift +++ b/Rocket.Chat/Managers/NetworkManager.swift @@ -24,6 +24,22 @@ final class NetworkManager { func start() { reachability = Reachability() + + reachability?.whenReachable = { reachability in + if !SocketManager.isConnected() { + SocketManager.reconnect() + } + } + + reachability?.whenUnreachable = { _ in + SocketManager.sharedInstance.state = .waitingForNetwork + } + + do { + try reachability?.startNotifier() + } catch { + fatalError("was unable to start reachability notifier") + } } } diff --git a/Rocket.Chat/Managers/Socket/Response/SocketHandlers.swift b/Rocket.Chat/Managers/Socket/Response/SocketHandlers.swift index 1e4d2836df..f37fd36792 100644 --- a/Rocket.Chat/Managers/Socket/Response/SocketHandlers.swift +++ b/Rocket.Chat/Managers/Socket/Response/SocketHandlers.swift @@ -47,14 +47,7 @@ extension SocketManager { fileprivate func handleConnectionMessage(_ result: SocketResponse, socket: WebSocket) { internalConnectionHandler?(socket, true) internalConnectionHandler = nil - - if let enumerator = connectionHandlers.objectEnumerator() { - while let handler = enumerator.nextObject() { - if let handler = handler as? SocketConnectionHandler { - handler.socketDidConnect(socket: self) - } - } - } + state = .connected } fileprivate func handlePingMessage(_ result: SocketResponse, socket: WebSocket) { @@ -62,16 +55,8 @@ extension SocketManager { } fileprivate func handleError(_ result: SocketResponse, socket: WebSocket) { - // Do nothing? let error = SocketError(json: result.result["error"]) - - if let enumerator = connectionHandlers.objectEnumerator() { - while let handler = enumerator.nextObject() { - if let handler = handler as? SocketConnectionHandler { - handler.socketDidReturnError(socket: self, error: error) - } - } - } + Log.debug("[ERROR][SocketManager]: \(error.message)") } fileprivate func handleEventSubscription(_ result: SocketResponse, socket: WebSocket) { diff --git a/Rocket.Chat/Managers/Socket/SocketManager.swift b/Rocket.Chat/Managers/Socket/SocketManager.swift index c866829790..1d4013e872 100644 --- a/Rocket.Chat/Managers/Socket/SocketManager.swift +++ b/Rocket.Chat/Managers/Socket/SocketManager.swift @@ -18,18 +18,35 @@ public typealias SocketCompletion = (WebSocket?, Bool) -> Void public typealias MessageCompletionObject = (T?) -> Void public typealias MessageCompletionObjectsList = ([T]) -> Void +enum SocketConnectionState { + case connected + case connecting + case disconnected + case waitingForNetwork +} + protocol SocketConnectionHandler { - func socketDidConnect(socket: SocketManager) - func socketDidDisconnect(socket: SocketManager) - func socketDidReturnError(socket: SocketManager, error: SocketError) + func socketDidChangeState(state: SocketConnectionState) } -class SocketManager { +final class SocketManager { static let sharedInstance = SocketManager() var serverURL: URL? + var state: SocketConnectionState = .disconnected { + didSet { + if let enumerator = connectionHandlers.objectEnumerator() { + while let handler = enumerator.nextObject() { + if let handler = handler as? SocketConnectionHandler { + handler.socketDidChangeState(state: state) + } + } + } + } + } + var socket: WebSocket? var queue: [String: MessageCompletion] = [:] var events: [String: [MessageCompletion]] = [:] @@ -54,6 +71,8 @@ class SocketManager { ] sharedInstance.socket?.connect() + + sharedInstance.state = .connecting } static func disconnect(_ completion: @escaping SocketCompletion) { @@ -138,6 +157,8 @@ extension SocketManager { return } + sharedInstance.state = .connecting + AuthManager.resume(auth, completion: { (response) in guard !response.isError() else { return @@ -205,22 +226,15 @@ extension SocketManager: WebSocketDelegate { func websocketDidDisconnect(socket: WebSocket, error: NSError?) { Log.debug("[WebSocket] \(socket.currentURL)\n - did disconnect with error (\(String(describing: error)))") - isUserAuthenticated = false - events = [:] - queue = [:] - if let handler = internalConnectionHandler { internalConnectionHandler = nil handler(socket, socket.isConnected) } - if let enumerator = connectionHandlers.objectEnumerator() { - while let handler = enumerator.nextObject() { - if let handler = handler as? SocketConnectionHandler { - handler.socketDidConnect(socket: self) - } - } - } + isUserAuthenticated = false + events = [:] + queue = [:] + state = .waitingForNetwork } func websocketDidReceiveData(socket: WebSocket, data: Data) { diff --git a/Rocket.Chat/Managers/WindowManager.swift b/Rocket.Chat/Managers/WindowManager.swift index 46b720086b..9c76c59373 100644 --- a/Rocket.Chat/Managers/WindowManager.swift +++ b/Rocket.Chat/Managers/WindowManager.swift @@ -28,8 +28,8 @@ enum Storyboard { } func initialViewController() -> UIViewController? { - let storyboardChat = UIStoryboard(name: name, bundle: Bundle.main) - let controller = storyboardChat.instantiateInitialViewController() + let storyboard = instantiate() + let controller = storyboard.instantiateInitialViewController() // preload view _ = controller?.view @@ -51,6 +51,11 @@ enum Storyboard { return controller } + + func instantiate(viewController: String) -> UIViewController? { + let storyboard = instantiate() + return storyboard.instantiateViewController(withIdentifier: viewController) + } } final class WindowManager { diff --git a/Rocket.Chat/Models/Auth.swift b/Rocket.Chat/Models/Auth.swift deleted file mode 100644 index 5e49a2b94b..0000000000 --- a/Rocket.Chat/Models/Auth.swift +++ /dev/null @@ -1,194 +0,0 @@ -// -// Auth.swift -// Rocket.Chat -// -// Created by Rafael K. Streit on 7/7/16. -// Copyright © 2016 Rocket.Chat. All rights reserved. -// - -import Foundation -import RealmSwift - -final class Auth: Object { - // Server - @objc dynamic var serverURL = "" - @objc dynamic var serverVersion = "" - - var apiHost: URL? { - guard - let socketURL = URL(string: serverURL, scheme: "https") - else { - return nil - } - - return socketURL.httpServerURL() - } - - @objc dynamic var settings: AuthSettings? - - // Token - @objc dynamic var token: String? - @objc dynamic var tokenExpires: Date? - @objc dynamic var lastAccess: Date? - @objc dynamic var lastSubscriptionFetch: Date? - - // User - @objc dynamic var userId: String? - - var user: User? { - guard let userId = userId else { return nil } - - let realm = self.realm ?? Realm.current - return realm?.object(ofType: User.self, forPrimaryKey: userId) - } - - // Subscriptions - let subscriptions = LinkingObjects(fromType: Subscription.self, property: "auth") - - // Primary key from Auth - override static func primaryKey() -> String? { - return "serverURL" - } -} - -extension Auth { - enum CanDeleteMessageResult { - case allowed - case timeElapsed - case differentUser - case serverBlocked - case notActionable - case unknown - } - - func canDeleteMessage(_ message: Message) -> CanDeleteMessageResult { - guard - let createdAt = message.createdAt, - let user = user, - let settings = settings - else { - return .unknown - } - - if !message.type.actionable { - return .notActionable - } - - if user.hasPermission(.forceDeleteMessage, realm: self.realm) { - return .allowed - } - - func timeElapsed() -> Bool { - if settings.messageAllowDeletingBlockDeleteInMinutes < 1 { - return false - } - - return Date.serverDate.timeIntervalSince(createdAt)/60 > Double(settings.messageAllowDeletingBlockDeleteInMinutes) - } - - if user.hasPermission(.deleteMessage, realm: self.realm) { - return timeElapsed() ? .timeElapsed : .allowed - } - - if message.user != user { return .differentUser } - if !settings.messageAllowDeleting { return .serverBlocked } - - if timeElapsed() { return .timeElapsed } - - return .allowed - } -} - -extension Auth { - enum CanEditMessageResult { - case allowed - case timeElapsed - case differentUser - case serverBlocked - case notActionable - case unknown - } - - func canEditMessage(_ message: Message) -> CanEditMessageResult { - guard - let createdAt = message.createdAt, - let user = user, - let settings = settings - else { - return .unknown - } - - if !message.type.actionable { - return .notActionable - } - - if user.hasPermission(.editMessage, realm: self.realm) { - return .allowed - } - - func timeElapsed() -> Bool { - if settings.messageAllowEditingBlockEditInMinutes < 1 { - return false - } - - return Date.serverDate.timeIntervalSince(createdAt)/60 > Double(settings.messageAllowDeletingBlockDeleteInMinutes) - } - - if message.user != user { return .differentUser } - if !settings.messageAllowEditing { return .serverBlocked } - - if timeElapsed() { return .timeElapsed } - - return .allowed - } -} - -extension Auth { - enum CanBlockMessageResult { - case allowed - case notActionable - case myOwn - case unknown - } - - func canBlockMessage(_ message: Message) -> CanBlockMessageResult { - guard let user = user else { return .unknown } - - if !message.type.actionable { - return .notActionable - } - if message.user == user { - return .myOwn - } - - return .allowed - } -} - -extension Auth { - enum CanPinMessageResult { - case allowed - case notActionable - case notAllowed - case unknown - } - - func canPinMessage(_ message: Message) -> CanPinMessageResult { - guard - let user = user, - let settings = settings - else { - return .unknown - } - - if !message.type.actionable { - return .notActionable - } - - if !settings.messageAllowPinning || !user.hasPermission(.pinMessage, realm: self.realm) { - return .notAllowed - } - - return .allowed - } -} diff --git a/Rocket.Chat/Models/LoginService.swift b/Rocket.Chat/Models/LoginService.swift index 4d12a322a0..e0ea43ddbe 100644 --- a/Rocket.Chat/Models/LoginService.swift +++ b/Rocket.Chat/Models/LoginService.swift @@ -34,6 +34,18 @@ enum LoginServiceType { default: self = .invalid } } + + var icon: UIImage? { + switch self { + case .google: return #imageLiteral(resourceName: "google") + case .facebook: return #imageLiteral(resourceName: "facebook") + case .github: return #imageLiteral(resourceName: "github") + case .gitlab: return #imageLiteral(resourceName: "gitlab") + case .linkedin: return #imageLiteral(resourceName: "linkedin") + case .wordpress: return #imageLiteral(resourceName: "wordpress") + default: return nil + } + } } class LoginService: BaseModel { diff --git a/Rocket.Chat/Models/Mapping/AuthSettingsModelMapping.swift b/Rocket.Chat/Models/Mapping/AuthSettingsModelMapping.swift index d72291d2fb..7c7aaa5487 100644 --- a/Rocket.Chat/Models/Mapping/AuthSettingsModelMapping.swift +++ b/Rocket.Chat/Models/Mapping/AuthSettingsModelMapping.swift @@ -13,8 +13,8 @@ import RealmSwift extension AuthSettings: ModelMappeable { //swiftlint:disable function_body_length func map(_ values: JSON, realm: Realm?) { - self.siteURL = objectForKey(object: values, key: "Site_Url")?.string - self.cdnPrefixURL = objectForKey(object: values, key: "CDN_PREFIX")?.string + self.siteURL = objectForKey(object: values, key: "Site_Url")?.string?.removingLastSlashIfNeeded() + self.cdnPrefixURL = objectForKey(object: values, key: "CDN_PREFIX")?.string?.removingLastSlashIfNeeded() self.serverName = objectForKey(object: values, key: "Site_Name")?.string diff --git a/Rocket.Chat/Models/Subscription.swift b/Rocket.Chat/Models/Subscription.swift deleted file mode 100644 index 914bd24f93..0000000000 --- a/Rocket.Chat/Models/Subscription.swift +++ /dev/null @@ -1,236 +0,0 @@ -// -// Subscription.swift -// Rocket.Chat -// -// Created by Rafael K. Streit on 7/9/16. -// Copyright © 2016 Rocket.Chat. All rights reserved. -// - -import Foundation -import RealmSwift -import SwiftyJSON - -enum SubscriptionType: String { - case directMessage = "d" - case channel = "c" - case group = "p" -} - -class Subscription: BaseModel { - @objc dynamic var auth: Auth? - - @objc internal dynamic var privateType = SubscriptionType.channel.rawValue - var type: SubscriptionType { - get { return SubscriptionType(rawValue: privateType) ?? SubscriptionType.group } - set { privateType = newValue.rawValue } - } - - @objc dynamic var rid = "" - - // Name of the subscription - @objc dynamic var name = "" - - // Full name of the user, in the case of - // using the full user name setting - // Setting: UI_Use_Real_Name - @objc dynamic var fname = "" - - @objc dynamic var unread = 0 - @objc dynamic var open = false - @objc dynamic var alert = false - @objc dynamic var favorite = false - - @objc dynamic var createdAt: Date? - @objc dynamic var lastSeen: Date? - - @objc dynamic var roomTopic: String? - @objc dynamic var roomDescription: String? - @objc dynamic var roomUpdatedAt: Date? - @objc dynamic var roomReadOnly = false - @objc dynamic var roomLastMessage: Message? - - let roomMuted = RealmSwift.List() - - @objc dynamic var roomOwnerId: String? - var roomOwner: User? { - guard let roomOwnerId = roomOwnerId else { return nil } - return User.find(withIdentifier: roomOwnerId) - } - - @objc dynamic var otherUserId: String? - var directMessageUser: User? { - guard let otherUserId = otherUserId else { return nil } - return User.find(withIdentifier: otherUserId) - } - - let messages = LinkingObjects(fromType: Message.self, property: "subscription") -} - -extension Subscription { - - func displayName() -> String { - guard let settings = AuthSettingsManager.settings else { - return name - } - - if type != .directMessage { - return settings.allowSpecialCharsOnRoomNames && fname != "" ? fname : name - } - - return settings.useUserRealName ? fname : name - } - - func isValid() -> Bool { - return self.rid.count > 0 - } - - func isJoined() -> Bool { - return auth != nil || type != .channel - } - - func fetchRoomIdentifier(_ completion: @escaping MessageCompletionObject ) { - if type == .channel { - SubscriptionManager.getRoom(byName: name, completion: { [weak self] (response) in - guard !response.isError() else { return } - - let result = response.result["result"] - Realm.executeOnMainThread({ realm in - if let obj = self { - obj.update(result, realm: realm) - realm.add(obj, update: true) - } - }) - - guard let strongSelf = self else { return } - completion(strongSelf) - }) - } else if type == .directMessage { - SubscriptionManager.createDirectMessage(name, completion: { [weak self] (response) in - guard !response.isError() else { return } - - let rid = response.result["result"]["rid"].stringValue - Realm.executeOnMainThread({ realm in - if let obj = self { - obj.rid = rid - realm.add(obj, update: true) - } - }) - - guard let strongSelf = self else { return } - completion(strongSelf) - }) - } - } - - func fetchMessages(_ limit: Int = 20, lastMessageDate: Date? = nil) -> [Message] { - var limitedMessages: [Message] = [] - var messages = fetchMessagesQueryResults() - - if let lastMessageDate = lastMessageDate { - messages = messages.filter("createdAt < %@", lastMessageDate) - } - - for idx in 0.. Results { - var filteredMessages = self.messages.filter("userBlocked == false") - - if let hiddenTypes = AuthSettingsManager.settings?.hiddenTypes { - for hiddenType in hiddenTypes { - filteredMessages = filteredMessages.filter("internalType != %@", hiddenType.rawValue) - } - } - - return filteredMessages.sorted(byKeyPath: "createdAt", ascending: false) - } - - func updateFavorite(_ favorite: Bool) { - Realm.executeOnMainThread({ _ in - self.favorite = favorite - }) - } - - func lastMessageText() -> String { - guard - let lastMessage = roomLastMessage, - let userLastMessage = lastMessage.user - else { - return "No message" - } - - var text = lastMessage.text - - let isFromCurrentUser = userLastMessage.identifier == AuthManager.currentUser()?.identifier - let isOnlyAttachment = text.isEmpty && lastMessage.attachments.count > 0 - - if isOnlyAttachment { - text = " sent an attachment" - } else { - if !isFromCurrentUser { - text = ": \(text)" - } - } - - if isFromCurrentUser && isOnlyAttachment { - text = "You\(text)" - } - - if !isFromCurrentUser { - text = "\(userLastMessage.displayName())\(text)" - } - - return text - } - -} - -// MARK: Queries -extension Subscription { - static func find(rid: String, realm: Realm? = Realm.current) -> Subscription? { - return realm?.objects(Subscription.self).filter("rid == '\(rid)'").first - } - - static func find(name: String, subscriptionType: [SubscriptionType], realm: Realm? = Realm.current) -> Subscription? { - let predicate = NSPredicate( - format: "name == %@ && privateType IN %@", - name, subscriptionType.map { $0.rawValue } - ) - - return realm?.objects(Subscription.self).filter(predicate).first - } - - static func notificationSubscription(auth: Auth? = AuthManager.isAuthenticated()) -> Subscription? { - guard let roomId = AppManager.initialRoomId else { return nil } - return auth?.subscriptions.filter("rid = %@", roomId).first - } - - static func lastSeenSubscription(auth: Auth? = AuthManager.isAuthenticated()) -> Subscription? { - return auth?.subscriptions.sorted(byKeyPath: "lastSeen", ascending: false).first - } - - static func initialSubscription(auth: Auth? = AuthManager.isAuthenticated()) -> Subscription? { - if let subscription = notificationSubscription(auth: auth) { - AppManager.initialRoomId = nil - return subscription - } - - return lastSeenSubscription(auth: auth) - } -} - -// MARK: Failed Messages -extension Subscription { - func setTemporaryMessagesFailed() { - try? realm?.write { - messages.filter("temporary = true").forEach { - $0.temporary = false - $0.failed = true - } - } - } -} diff --git a/Rocket.Chat/Models/User.swift b/Rocket.Chat/Models/User.swift deleted file mode 100644 index fa9bd298bd..0000000000 --- a/Rocket.Chat/Models/User.swift +++ /dev/null @@ -1,137 +0,0 @@ -// -// User.swift -// Rocket.Chat -// -// Created by Rafael K. Streit on 7/7/16. -// Copyright © 2016 Rocket.Chat. All rights reserved. -// - -import Foundation -import RealmSwift -import SwiftyJSON - -enum UserPresence: String { - case online, away -} - -enum UserStatus: String { - case offline, online, busy, away -} - -class User: BaseModel { - @objc dynamic var username: String? - @objc dynamic var name: String? - var emails = List() - var roles = List() - - @objc internal dynamic var privateStatus = UserStatus.offline.rawValue - var status: UserStatus { - get { return UserStatus(rawValue: privateStatus) ?? UserStatus.offline } - set { privateStatus = newValue.rawValue } - } - - var utcOffset: Double? -} - -extension User { - - func hasPermission(_ permission: PermissionType, realm: Realm? = Realm.current) -> Bool { - guard let permissionRoles = PermissionManager.roles(for: permission, realm: realm) else { return false } - - for userRole in self.roles { - for permissionRole in permissionRoles where userRole == permissionRole { - return true - } - } - - return false - } - - func displayName() -> String { - guard let settings = AuthSettingsManager.settings else { - return username ?? "" - } - - if let name = name { - if settings.useUserRealName && !name.isEmpty { - return name - } - } - - return username ?? "" - } - - func avatarURL(_ auth: Auth? = nil) -> URL? { - guard - !isInvalidated, - let username = username, - let auth = auth ?? AuthManager.isAuthenticated(), - let baseURL = auth.baseURL(), - let encodedUsername = username.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) - else { - return nil - } - - return URL(string: "\(baseURL)/avatar/\(encodedUsername)") - } - - func canViewAdminPanel(realm: Realm? = Realm.current) -> Bool { - return hasPermission(.viewPrivilegedSetting, realm: realm) || - hasPermission(.viewStatistics, realm: realm) || - hasPermission(.viewUserAdministration, realm: realm) || - hasPermission(.viewRoomAdministration, realm: realm) - } - -} - -// MARK: Query -enum UserQueryParameter { - case userId(String) - case username(String) -} - -extension User { - static func find(username: String, realm: Realm? = Realm.current) -> User? { - guard - let realm = realm, - let user = realm.objects(User.self).filter("username = %@", username).first - else { - return nil - } - - return user - } - - static func fetch(by queryParameter: UserQueryParameter, realm: Realm? = Realm.current, api: API? = API.current(), completion: @escaping (User?) -> Void) { - guard - let realm = realm, - let api = api - else { - return - } - - let request: UserInfoRequest - switch queryParameter { - case .userId(let userId): - request = UserInfoRequest(userId: userId) - case .username(let username): - request = UserInfoRequest(username: username) - } - - api.fetch(request) { response in - switch response { - case .resource(let resource): - guard let user = resource.user else { return completion(nil) } - - realm.execute({ realm in - let user = user - realm.add(user, update: true) - }) - - completion(user) - case .error: - completion(nil) - } - } - } -} diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/Contents.json index a467107e90..b996c9e203 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/Contents.json @@ -2,17 +2,17 @@ "images" : [ { "idiom" : "universal", - "filename" : "facebook@1x.png", + "filename" : "iconFacebook.png", "scale" : "1x" }, { "idiom" : "universal", - "filename" : "facebook@2x.png", + "filename" : "iconFacebook@2x.png", "scale" : "2x" }, { "idiom" : "universal", - "filename" : "facebook@3x.png", + "filename" : "iconFacebook@3x.png", "scale" : "3x" } ], diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/facebook@1x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/facebook@1x.png deleted file mode 100644 index 7c629bd6999094447e20b188dbf25349813d667f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;AiKmNWNCjiE0?WVu|IhOr@pPyW z?5Jn@n69voPw04v?+pVng?)eItrHZF9}t<~mnBspc(Q@rVGYxfKMrTuC#fGlaNmP% znLz;8g*_5x7Ce9aWh&fqnZpBa9|#KK+0u|4V!-VgQ=xJE(~8E$Y+6c*c}ZUw7?}6$ VZk=80Yyh;M!PC{xWt~$(69BGPIq?7h diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/facebook@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/facebook@2x.png deleted file mode 100644 index 1b28924e2673be1d05807bd56d2527cb192aba78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dE$30yfLn;{GURCUHaujKOSo!;q z-3{H-c@anW+?r3uo%yyX;dq__ciEe=H?|#nKW~salJUd#V8Vri250UR@c+5H2Ysv9a@ziolPs2)1);nWG=Y>jm($crO58s z%oh{E-nW+d_qE3V*BX24h1jhwH1eG>ka^(%X6<1t*JR^XVC436aSW+oe0xpNgC$U;_2GAx z<4MLHC)co9e^b+$b~G!{dfHo8$8EEE)Vdv;=dLV!dv{09g!{tVinqV{@N6D){c~>d zJjp7D(BD~$(q4JiuJHf5F7E2)s*v(mL9$b?v6Z}v(v7IkUz>RT>ZAj+*qB3YH$<_0 zh?&U5<0GPZ;6UH6(=7W!moPAg>KZlji_APAzGi#e+!gD#SUi~bW8amq%*q4YALmZH z#{T8V^?@i01{a|DJCgQu&X%Q~lo FCIG_XhQ$B? diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/iconFacebook.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/iconFacebook.png new file mode 100644 index 0000000000000000000000000000000000000000..8efd73ad1f98403346e8b2b0be925c3a10b61a91 GIT binary patch literal 495 zcmVPx$sYygZR7eeDbjsM=&hVe1n1SIxD+5&l<8KB=hF&Jx7!GnN(7`~5Gg05=$ieWR zl?9ngDw~sy<(s;qz#tQlfBnr5GmC5s;=I+4#QCUcGcq!2 z!wdt_&2!G3J#gl!F-(js3*5|Q&cyqw+rSLLM+4)4bWj+hFF>p=l6}C+!u*4cl}QO^ z!QX%XpX7BN`F8u!N9BM28JPb6{|^rykQ$PGAS=%E3|ZgJ2On?Wc<@0DXc05ea7LKL zFq&iwSXdeV!Zd^EpMU=TN9LomNwxsp07865r}RyDT>vt`!9?n8O|r2(#IXO&z@#aN zWbpU@{~5l*_+jNc|GfM3O9I9xDw5e)nEo*`GKfGlVFWWLP>vI7;E(s8f3d*~2hmgw zqThf2Jq7v(#Z01n@ap{!uD2h5oB_Frot2r5hl^DY#0G)CfB!xC@a5MF5c|%fPoIF4 zGKdWWM8yG2F^E=E5V$?P!d4X~cK+s@110^(9bkNP8pS*4lGNajT0k%qheZ$pYk!&n l#@|e!rUe57Ei8dFTL7~pg~_)Hw}=1$002ovPDHLkV1oZY=T86t literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/iconFacebook@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/facebook.imageset/iconFacebook@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..baefdc1a97e02fa1cc5a27bfdcd27671e8aae41a GIT binary patch literal 772 zcmV+f1N;1mP)Px%zDYzuRA>cb^vvBR`t#SH8H@~!9{(Bsb1@770Cej&pj&sav$15bfE*8Wa}ZEq z2sj<$L})+<0o~5P1Pb{f<8m~Ig51tDRFVyv+reCr+nKOQ3?;Eq4-9l{u?(aG^i@T! zd05H3R+krG=HX^#XJTMv`u^+p@9#hU{rUFu_unsH|NP%|@(JIebI*)$xpP1~U}q$C zt~6esgNvO-3*BLY4D2XE930FCfF3{*L*~%k1C>dJ2VKl$?0}A7M0N5hi z9*`2_dBV)hB!kDXe~w>zd1&d5JJJuIeU|?D`wzTT{O=zF-aJDW56FshzXduTrw7hl ze|4Z{+9?-29>gg{mn0-E$oUKcH9-hCy!5#E*@ZGWBP~B5wG9=;KL`6PmV4g zz~=yv+~0ry$aV+W8VNayUh<YzJCAn3f;lz{6X!3H}8LZL3c1Z ze^7hi@r%#D(H)G=r)q0-#jZQNhU%gR(Jj$e6J}PF;s26H2sH zGa3W53|(T(9*qHFLW!1YMq_}Mp-YU}qcK2CDA7{QXbjLYbcr#0=*IwP;RG>09gJ!~ zZU-$j*fAI#M~s_5Zf625Sph0uHeh82w*vqPx(2T4RhRCodH+)YRnQ5*p9_hxl>{Y=;VDpOM{6|}VQ5TW#O=^#N7bnqhd0e0vR zgk2)(65XOhrw-lf6jYa}gQAd75FIMXG~5(hGnHLk_hWXZ_q2yA?wdDHk(qV=1M+77 z|Nrdn|L2?inqe>^%b6RmD)k6@pkvg5biItm9J^rr8|!EQd(o|T4?F#s;%E{5GXW`Z zEJ~`zF`idE=!imR4&bB^()B`Wqpa*!De@3Ph}tNQf6XzP3FP%yG0H;@ApjE00ssOa zfq)tR@nXxT;4cXO`x#-ydve1)?$SfXa%prhB_vN1N(=ZKSyq zf(AVpBM-qVa=9{)$Bj_U-uzL)HtW)91$5zb?QqY<#wOB%=^3!D+fCd^8=!kVZ3D-f zOFK5v3y>ck)lXEk-cGiO{>`uGYHrgsIk@;AkW)0(0nL1eChVv7FE^i4f>T%*>)Ez@nuD2 zy1DcCqnqG(WVSI=YhR$ktb~~cXpO4s-@lIkZ8cjjQ)gQs^0S5MK9*zZw!Pcg76@U} zK4>YdM$A{sRoWLwrVosCnR1!hodG1%v1Ba(3BUjdfCK`9G|V6Y5I%M7<+i;8@E-eV z-^urRIc_g6Pvd#nnZ@M0ScOpy%aJ1&e?sB-FLv8#eDdO3==IP?2$>r1uMpk_sHRi;ek1QfJaR4rn3}DovUo!d0gM1tQUe z)Jdw20*c18>6H`fg!5*tz)?VR!R3Xu*3GRs3TSF3Ed8zDQ9xr;L5UwxR%e)_fPVOc zS>|@EwJJvejZX%BYpt7Gv*eTX<-Y!yD?=GKdWtu@nkO6f7n(ZFg&gAf(EDh(#OVHL zZX&QKeZ<2OAb(&{csOS+81;)9W_fbTUHs=%NO+&DUS@REE+zxRY5|Bza7F;)z_2g? zF$vBHKpYqr1|TNE83Bj`!@>Z>Bse1gabQ>&fS3el1RxF!3j+|7;EVvofni|)ViKGY zfH*KL3_whRGXf9?hJ^u$NpMC0;=r&l05J*92tXVd76u?D!5I}quGz)OL73Pm^nzv} zky?P-DD-M?BrSbfNb0-XK~Zv%H)^BMOW`SAd>AAA9CkPI52lw1Bo_1vc+}<}^@8pm T8wIR_00000NkvXXu0mjfz6Sm@ literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/Contents.json index cc8932af14..7aaa97e7db 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/Contents.json @@ -2,17 +2,17 @@ "images" : [ { "idiom" : "universal", - "filename" : "github@1x.png", + "filename" : "iconGithub.png", "scale" : "1x" }, { "idiom" : "universal", - "filename" : "github@2x.png", + "filename" : "iconGithub@2x.png", "scale" : "2x" }, { "idiom" : "universal", - "filename" : "github@3x.png", + "filename" : "iconGithub@3x.png", "scale" : "3x" } ], diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/github@1x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/github@1x.png deleted file mode 100644 index 875c595a7b5a424285699d037a59a6cd44e6d901..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377 zcmV-<0fzpGP)poU&-1R^>(39qd%o@Nw!l>!$00V*!aK(JMh6Wn2D8TDb$lVMb7a$&HQ-YpOG(R) z@SlFLU@u#Rw2vI>nBWPQxWfR?C?moUrbmSO1@s}Uc|7kMNHrN&pxg3T*n>2XVH45_ zS&xM~&=t+_4N^1ki1Tyy-I?JS(qZ74wQ$c2MvzWDmqpO+nqe1G&vRi3x~dr-L$^8O zvJh?P^5()aOdoiF=>X9m%Zlhg*VPBw7$T24OjDd#i*gvkRYe~xV1gb()NqD^vy^0ICBf>9#Pucn@0;%lpNQu@QLlfr=(9#`>+23 Xir*7FGo58C00000NkvXXu0mjf`edPC diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/github@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/github@2x.png deleted file mode 100644 index d9e8997ca558020bc56c02f55067847be98370ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 715 zcmV;+0yO=JP)nLR)m#ao$2z+hH zh{uBJEtj*!b_9qtdgvziv10l9_N;WvKrX}_x(~UyF3rI? zg98YGTzt*T8F0?SAv}j%a?K0IQn?3@L9VFg1=B(<%p6(`xdECNtOdDS=1^zIeIP^Q zf@dK&)f~zL=c;L1EBXb#4Pb3Z6$fR~F;PvKk&7gKp2nh$k>04Tec=DhSU zx2AHm9sjnGa**N2Vi{>3)T&^2fjeZjm^_q_8j-aST2HmSELDt_(>JL1#r&$}?Owb> zZi+`-#KD3LW-hOWvi(~odi=wy`n+!@z6@7WZ z0O$d=eo#`C3#PI>ER!r>k5ZGHVk<7#8fxY7Ef%mHW^L~}h z%d2mk;&s|VE{e*;^nX+@!M=%#*Juy>o>Im@eW`42a{`+Zg9ZDO+oj?2vpanuurZ4N xt{H)a(FjVW`wZcxd=%G*gVC>PgEQE01OP-BcCr)yRPz7;002ovPDHLkV1kX|P@4b% diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/github@3x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/github.imageset/github@3x.png deleted file mode 100644 index 79cc4ff25f8db62aa02740438069b7c168335379..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1044 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 X=7SpyrXr2{00000NkvXXu0mjf&l%&L literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/Contents.json index 471eb85105..b77aa43323 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/Contents.json @@ -2,17 +2,17 @@ "images" : [ { "idiom" : "universal", - "filename" : "gitlab@1x.png", + "filename" : "iconGitlab.png", "scale" : "1x" }, { "idiom" : "universal", - "filename" : "gitlab@2x.png", + "filename" : "iconGitlab@2x.png", "scale" : "2x" }, { "idiom" : "universal", - "filename" : "gitlab@3x.png", + "filename" : "iconGitlab@3x.png", "scale" : "3x" } ], diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/gitlab@1x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/gitlab@1x.png deleted file mode 100644 index ab545bb2d959834a5795032c27afe80b1ed7e6c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 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 literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/iconGitlab@3x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/gitlab.imageset/iconGitlab@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e3b6f1a7645467c5d2bc290748dfb3e91dc879 GIT binary patch literal 3432 zcmV-u4VUtXP)Px?B1uF+RCodH99wKv$8l!Qx%c||`hg!n48$Qe!M=V14hf{BA&CtkX+j<)3gD>u zX{)O3SEZ`zM~m8zN|pLhKiZ_~Ls3E+rAnf>a3(dmnYL`vGGTM4N1Haq*y8WAN+f}%M?r%dn%kJsQY$lN zUODjT;XACbxzrxGa-xIJpOOrjh?0ZtP00+HM<=iarO0sByv*8m9_(gzNP@F$DR5bf zgLr`z#O}*cK@#90<=q@;&nk#^tk)6Y0Vg34&~YtJxPcVZx1ptp2$nk$U=ywy+|YEJ z|AD{FQvCkSHOEsrpSR5 z1U@G}o2<>dndE1urX4%fx*qiA9&DTWD(FN<@+RJ1&0fsdWUKq`Zd~n!Gm~TeZ@qXs z%e26gC($kan_8B5;_#raf`EkQ_A(hDI(rOrd`4?Gk82TvLlmSdDPPO?RS>zjN(-;6 z&0r>*J#T6uY&ppHF5iV;PK^wx!^}huQtO(YT=cJlJwb4%8fS20%c@jr{QWR=IYdc; zjtj4U_0Uh;$IXll~F2{NM4Bp>XX^f5x@gbH|t|x|i?ZVd%9-HJc0}XXw1Y`VQPOK2d z;)Uh&=l}Js3-8*`5E%J-qkQK( ziRuT-?MN`Gx}|fnJk;6tw$h6*I?T~%)SMi)W}<}ANcECe4)lken+tyWz9^wLm$~K~ zL>$rL@%fAX_Wp8uXr{aHpgMyf1q3;+sIBF*fv1ykp2{8{}M8(Ao}n60-k)YNkA6U z9dI4yr6eta%~}K;?>Hu(eCkL9Pijbw`OttRup1I^`{y+90oKLj**vKrI5~I^pX5cK zBl0b^8d|X!KeWQaw3(h>R3;CFnG*&#Q7L|#W7`n^EnN*Nd zs)F}q0_rJ(I(}wO2wTVJfwIhLDFvmnG*`kH!E;a##jM~g`K0A;mR1nG(8xg{-S5PV z6PQb>k-Amz=QQpI<1N-IbokT{FYLG;fzz7s{+QrK69vCAXo91>AUE&#AiXg0=3v5t z#$`Ku9rs@&2Defz<`ieJ$wm`pklQ8FZG{Y19+DTB(`A~L;Vy`fYbu%PE`YIv>2oQq zAgf8a$%K`3yC}yG+{V4&g=IA553S;*Q0T?eb*vKK!!mY2KE?EAB7I^LZ1%zD+Xra0 zjH)q)gMPU7aXlhigoc;w@Lc<-;dxDimay|Nj(u1|%Xuvs0kR_<#E04Xc{dK8TF-}Z zg(H#;$fj2b&GH-yykZ;j?6N@dc&R+#i4=i#7L<%A#V)ME&_=pu!ec$hb{<&*_JkvP1Os_5mdSu7=;M>GDr4mVI;@L*Lcp!K_3+;GuYr$s zcZq1lY9{*I0P{0ZBCwin3LHe1CQ9YLOaj4sh4bVA-l~D(A6$;RNvBo8sZU^Xn&(%d zymk$4>rJO>vf=^SS^uyk`W>5PSy19kMA9)1BG0%-rzWk`W!yb{OjvHu=7@j2uvYHT zV&wnaZvni6H^MD};+?B(Sutk>i6`*!?!Q|l$=c7jz2_yNMc7LO_fl-e0&AcaIV)!+ z?$nMHKm$i#hSQiQOu(34z&9wLf`xdTm6Hsk9A4{xSUD|rD{E<&0NRP)wnN#zZOX=S7z&`P>R;9WFrwr2O#A`D`^QUgP(* z&aEA+oRcQpT01I8A>gBbHnh&39}3d%WF?)jPI7DW%|D4rc+YLzgcp^;1+yKrX7A-2 zy;B42=WOUrL1?n)J}xwE9k1~xh&%W-vvYA(kcp0uAKoo6*2=e+mra;gEmd|-W$8Rh zv{2UZxfM9HRxdDkYkFr6m$IWM0RQue_oV8(6;{#`KD3Xk?41)%tUxYv zg4f+oCr2F$XBAS+V~{P{^_?NlCzkb>A{JSLkM;CAknseC+G2J}^lb7WPAsXI zsoXv`**}l3LocnL>{}Y2e5@TFQ+~&z#EW5H+4aT>N0fR#cS_uoU%a@}LTFFm_U?Z; z&JO?#Z9!I=d`)>-K>7gRWrbVYDtjjuz`ItM*)Fc2VYBU47gb85AV(s`r`gvQBl?h+) z-V`Fr=LNoKg{!v8=3xV7y+BP=!k``3>=#wi8MAHH{2jH+SvmNefU=cSsT{>~N-fA- zgsP2a>c0*se~}e44RLm_k28{HA^2#pTXXbii;~6(mhgHLRn*|?vNH3)XAgCeck#FM z&Yq`Dys50G)Pk&nX^;0jB_MJ$FCgQan9A-UXZa>^5tc;@=-6ccYNH^*p{7+i<*<+D z!#XP-)BZr9ST$YBQM{&2L5etb9y%-*SKY!3`L*h+lFsgNmQQ8-CLo+8tYn+Am7;QE z@_^+}O+!=*i+QfD(9*Gu5I+}DeJy*boZk-ESUPs6ZHw8t(ayTf{FUJM>Nc;&`1R3V z{?oz%rN-N^=VZ5*5ezO)%47WhJk+pq$6+P(aPq4;Jr7`*GmBrrZAboT=P@1qX|*7$ zz_|U$Uqq}x<(b}4aQ>>b66-L1sb!0(*JGb&45D%TNGV6*A-_{HmBZbCb8OQ(Q_4~N zXG}qg89usyfO9W*ajfzK6*I|FS}zvD+iHx1#-plMrKrM4C*DLAzNOwNrDGew?`oY# zHcmxsGr=X;-!rzw?BdX$>Ti<K5skrz$CXwPGG=P_HlOq(In; zoxQ$!COeO*=+CGHSp~+eJ$pnVzJgu!tNcmW&~#YJPg+h!V(_sR;oEtVKh+?-Bua4Q zY$->{J8KqXRaWZR`mc%++In#pUlRDqd*TlM3J|A1=-YdrvEt1}drl}wEu5ZjN{)4n ze@E~?PKq>WKjpI~@7Jrdq0njNss1|&^JUkxGP*|mng(V}1OEq6LlsYEuKip90000< KMNUMnLSTXvd#ddK literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/Auth-Google.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/Auth-Google.png deleted file mode 100644 index d5a25f308df2759075b8f638d7b8a7923f97b043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)+?6%m4rY diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/Auth-Google@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/Auth-Google@2x.png deleted file mode 100644 index 458606e506bff8d256b96a8504be6d14e12f7e81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmV+#1LgdQP)PWX70_? zAkFU}|HU-T00=4s{8lOmLLdwRag+`VLC+Oao@E00L2;n~$gH+=Pf@Z6-4_I%z%p+4wwf@Sc7#^xe#6V0e68V28e(k@*5Q* zM2x<_54y2e98peUYz?sFhbUqQ5uJkcJ}PZ2nU}DVXc#2r_5hRqoUE6mM5rzJB@Y_CwIl@`UkiGwt+cdF4zjrN*hxd)Cec67p9mql~{_Bb#{P;AiJiIte_s) zLGAi*(k1HJqLdI3MY#{49|&+eF3fBtFaZp(;u-{;NQ`OZT9YjJ8MGv&Y-f^q3A&?0u7J^}5mINgcG0)L$-4Vrl$GJMVv0!Zgvd4+H@?fD@ot29b9r!<8U-AnZ!Ev#) zsSL~j-{g7~dCkX76Ag@9yPp;aK_|AIt5de^)GH>km&!`$ciOmr05d^G?%S=Sk82>g z@*Hdhm3iP^9Ud*!93EW-C&4B#7?fqjK)~zcw~U(Ox2(F&lkW$ZEWA$!f&WLq|3xD| Y0mp_Fv$+89r~m)}07*qoM6N<$g24f4?*IS* diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/Auth-Google@3x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/Auth-Google@3x.png deleted file mode 100644 index 2bd3414b4e3e08ce951b9c73a53a967713ee83ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1164 zcmV;71atd|P)Xom)N#+P#+Z#tKYp1 zXTo|g6O0RErHl(Rz*=xByspCKIuFA%9(w82o9Q#$X1s1KkxG6Ed&5*clrpgT0{U_~nM6|YW|&i(gDwyhSy*)C_Y1@Ga63%sQ*28-|Ei=~p4f|w&~`6P zNBW8>VG?z^&zaQj65YHudwCTzA{D3(^A+83;Yk&yCJ}!e#;PhJS<2TjPhL%?itwMw z``=($4{goMP;^>ObhFPc@X*%0r1RMDh)G==-CtqRUIk}8GjuAV3$3!zofEz@9hQym zUFxKv5iIwycO3{!L~Unvv_o{qf@NV9SP51x!AdEs$S~G&6}-y;ViOU)aZ$mNIn%?J z&~N`hSdxFB-?ovC(@F4Qw*8v){sWe95Ih}xA=gfXxX`m8S$L$>#Yyn-g9!d!mTT=E z1%IZ3%OL&98CuRz6a2YetAuI&&ed`}rL=#+RYrK{iaRY8{HZK8Lx{|?B`zTN1g%Tm z!;%V~5q@#p&CC`d&ZFoQU1*lgmp%3^2c^kG1!h)nz*JJlA%8RN8Tc6fvNIAe%go^FU+#~!Df^*)b0tOp<3NLFky1X9L<>iqf-wPiZ%^3lUp;S_kd zz|q49euG!xD%cKYwR7v?bhva5SQ~bRL*e+8!(n&W1QvyfY(L>F)W2}|%Icz{IUwFx eV~sU7n(SW)PQc4u#8&D60000Px&S4l)cR7efARZU1#Q4~Js&7aN;{zn!x7Ao|o6pY%Blda#HwbO2+?fSAO9nSj9Qt6#4$^PNBTf)PD>CRK?gd&v zDgZkt(?>MDjf+kw2t|?7!0pH=CC*pSLWKcp@-Qyi{1jcE=9GpsV9qS7XWCm$3risI z!cgEmU($f}>@|BkmxdQw_CN%2XVX}|!7H2H@${-#}qFu{u? z4d|B~ARSV8z(@P2b}ls~t#N<+w?fw{9T0TcJWp*z@lg@PXX+SjfD!HoH<|#=5PK;7u7Z>hVPDJ@a2VQ=&+Az7)EK1fwN`x=RAd@r~Y0HwWJM=c9tT_q-aM z*R5#41KpSEJ;xJca#0Y>ivh>N>BG{b5~HLopd%jje`J1#J7X< zP09Sy4Px*^GQTORA>e5T77I&RTMw>y{+rkZa{HEg+U+^Py|V2Egu60bX!Cq=;(+a$n-Dd z4@^)Kkq-fbU=(AFF(M&K2+?f?LlDO1U=5qdSfU9=gpHuc_;B49Y%3k>d)IS2TW{O< z`d-UEAmJu2_ug~PJ?D4sJ@4Gx`wH-&4DJk&zA#Vo@=PuAtr;@NHdHvB0v$sru}}aD z5Gn(O8$j>@_6Q9i$Ytp>O{d6am+x-v$L#>6l(gho=gXA50zeB8q$w6KXt*7nDyM?D zH>2WoSuA6D*|;2Nv0L*cfE_^TR9@L#v`>))VMBU(ZB?u~VsfC>o;_NE?md)(Jyt`y zU5nj#G#bxGsWFXsN8N(W64pBjjF?wMC+` zv%kSJEV#OlNR(DJ=h|M@gDpWz$ZgO12$jC2CD*5X0+*;@IIc%$)D>{&+O`ffctS`$ zh)Fr=<<-~qIH39tH0N2DQi&eKT&^mkW`F=;`TZ*H0Zlj@$I}e#Ka7)MP#eSOv4Z!H zQBv4$&mPwUcYei~PgCM6(})+5?iYYMEf!M^DRp)7a&5khY|cD-hf)0O)skX%4kU1m|9ltR+HoDol9&ZJRW%yj$F;?@q+h{6qvw}MEP#j^o1egCEAbr|!D^~QWSj))cTe)-TZokvDbkv*aqF3k5a zvadjbAvgWlPZxOlK(|92=&3Z$1CUP0or%!({aEldhJ-1HjdUg?l3A8xwP!ivpfp3$ zC?T>xCIxd3q`uSuNz{Z`WgV{6y-|WI;A^}xFC09BXn4F0(u#0zv3UK6sQ~ZY8_;`E1RcOb$P6`L;&3md zzFH5)sVx^WD(X(E$qfcQcorfQreH!>EyN&0^0SQxV5h2xB4hrx&S+{C$3!FIE?;we zy=itpCb$ADPf=C*a=mShsb^t*P(FBreY0{MG zX90|qw4$%6F<>UR0s+GPP&c`|h6Zr*4%`e7RqKvcb}SzBLXD=j0EnOilpV}8icg~B zHADu2-CnkabO#It9l$O5e1NE03p7WSH*k!9cvHcBfD$;1=kujJlW%u}DDCW+oC{F5 zo~LWIF>k-GCByME@m8;h>nk;t9l&1|Kl^{1C=B^iN`-Z|vc$`hIV-Dp?3}vgB_|cc z6iK-0Y*J(>5Ep#lS<9{^q7|Hwi#$IVLJ6ZXtMH%}@-vVL{@6VdUTdEN2;M)AQh5un zpfB4v`_F6YBP8S+GUxyqe-U2{ax9=g!h`B3U6Wx`$J5}Y{BIkYGp)q2A|TgSb?&y? z3vl*lMb$@0kHMT=!OH|4U_?rVFIerCjqv)-Y$&}wmUSZwrC->b1ydp!@lh7bBKr8MW#akil&!ch?jJYLd`8o%w|frZ4al+x1K|Wh zZitD=dm_l;1lG^`ZrNdcp%y9eB50)dS|yo~jn##vx~^524r__yIpQ6&J^A{Y34%}a z9LcU;RvmxWv@6^`?q885>%fcSpa(CuK>x)SrZ+Fj?ZYG z_$bZCw{0b6OMl1^OwlP#t3dRqM-XPm`q?u~lQz%u-}r?9R&;<#Sc?mn${-!Y`Bjw( z(ZqGoAmW6pSU2H^92pmB7;coKP?yRz2LWSi0T|jAb6R?vI59FN!9^$DF@>bhfFPeA z12lhq)%pARk&a1>KR1M-ufyIgc48cf&nSF`_ZM75V$RV$l_s1Iz$|CswCpK9T5383>*tX>1?5S*iu7MOELLGg9}s=6%z9 z^%o0zl#SZ~-cDZm3R7EqH{R^Y(=pfEFz1g!#cX@UzZ;;Z6q?YI8@Cj8t8ocqyizn9 nT(t}LhaAj!oe$dg%MAPrxlKqXI^G6o00000NkvXXu0mjf#_?un literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/iconGoogle@3x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/google.imageset/iconGoogle@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..cd90e9f17dde082c84585948861a8eb479ac361d GIT binary patch literal 2841 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 literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/Contents.json new file mode 100644 index 0000000000..3e691891e1 --- /dev/null +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "keyBlack.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "keyBlack@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "keyBlack@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/keyBlack.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/keyBlack.png new file mode 100644 index 0000000000000000000000000000000000000000..f44b51803e68c0d3b72abfee84d6ddec2ffacbe4 GIT binary patch literal 784 zcmV+r1MmEaP)Px%%1J~)R5%f>Q%y`0Q4pTl-4+oOKoX)RYQz}Bft1=(6m2ab)DsvE5D&(9@?v5n zoIJ_Jix+?3WQZIL@xTpYLKLBtfZC-{4*n6MF-Ac>h*JK_?vC@eJ}jjWNZjUi-h4Cj zy?Hb90RHobnSAckwFe-XJWpU%0bmi^r&Lva9D6zVD$_TczK+mU5xj_GwGmJOAb#Y4 z1$HPUB8BxfZD0P4Sa0uQHX?~BawEuq%twS2b7IcXNj*}+tE{+iSH6OHn~ATQv%fl} z|7Oz8P+XH%R$dFTcr;Rrh?E&n?)6`1@D3_UQ#?A`JtQW<~CtCX|X39v&U>vyg*cX%PW+z$xH zR8Shm^>Ckz-%`qMav2)98A+GdPu#pI5#;mL6!EOa7+Z0B1ND+=mPTU-U> z9VM*K{Dz!73GKozy13(S_UotV!v{+`Ex>86X)Y?z5|0i)*)h>}0{#Hk@e9f4S~%_i O0000Tdr4 literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/keyBlack@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/keyBlack.imageset/keyBlack@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c3e61d84863b41037cd6229f8fb6bfdca50d2577 GIT binary patch literal 1757 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 R>WlyY002ovPDHLkV1nL8&>{c; literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/linkedin.imageset/iconLinkedin@3x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/linkedin.imageset/iconLinkedin@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..348d607bf562d22502e2839d63a4fabe0c73df82 GIT binary patch literal 1489 zcmV;?1upuDP)Px)i%CR5RCodHoLfv>MHt8bXJNV13p9mZ=n^3mMUYwxjiz9UC z2MuZT!QhLSrYY)!4<^+IV^E}xwN}(VG(l@bXnKj4UPNh;i{)aKJM6N{9%ptvaJoI0 z@3h67-JMC`%=x}=KIZ!|XU?3N$w*LAZDTIW)&X(}BzZk#I22V>TqXD+OP!E#3UM*@ z*k5sl$1Med-`iLLzyCd!PYT?NU(;|ns_|CkCldBHeANs5^6t`sWrSi za~YaKMO zJ2Ifxw-qCA^KpZGNrDruw3Hj<;V2*ha>iJ14NeEiwe6XaqUax;hTBVjeb2I2eedX$?SrRO zkOasx=f|=0y%c`|n=dc+V`|n%wzsn(2@nsU_VY6snVvO`Wo*WamyVt`wF?&mGN6Hp z8B{g3VZyE7GA2Df>}hU8|JZc6#BW+pG9d1$g*`fj4PW5+rK@ZjX~8$opXeMwQ9}!k z{?fOgh=81>PYrdv87T>D-U~0T!&5T(y=Nv3H-BWWX6Lb)&~x=NB-jAXy8S0 zy9TP{PWq{PTsT}+78x_Q3Z%cy)}w%bLv~eyu>zRP?K!|jeES*7y@=4A03bt$F>C|s~6q~5gASM5{m1Z z*cOm(jsItb0AvDO01|*q2$-lv3le}#2$-lv3le}#2$-lv3le}#2$-lv3le}#2$-lv z3le}#2$-lv3o-#jp1tnq`3n_n=NKjZ&^@ecR(+@)PPQq^EDelX+l6ceqh{@4*e% zgvu2b+_NgQLt+G{Xe~JSS-9gm(?-5cjlvg|j6;O-f!o^Y9*^%Naaf{an^LB{Ts5=|NT5 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/linkedin.imageset/linkedin@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/linkedin.imageset/linkedin@2x.png deleted file mode 100644 index 7c027b44ec338f2b3d906e4acae135b6a255fab6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmV-^0fGLBP)y_uYLnduC3$cAl*G z`2+xZV9XJX(H&OU0LKL#9w?U>D4}p@BLB{pmD}dDi;v{fTU& z^Yn?H&^{XHXJexn01>pn#2kY)!NQt?Kl1}=6CI(u^obtO3EE8)%mQ0r&Y8iQOvnU$ z%&nkTkQt+qo(fEZOaSeKb6n9xPXwkwrWUU8K*QY)Ooq%8TxY`lK=mYhGjN#>(^2{W z#~AcR;5JS8vo?VCLFP<#-~|mexxKAICd}2qB*-)i4~QzrB&hrbBg7||OqR;P0Pz)1 zrc`a90A$MTKwW_;Ru4>dGtdr9vwC2p)b{*Sh88=}QqlwXkUCcVJ;xa}P8%=B*Z+-d7{CsoI=;G|Pb~oCickU^o z5CBDKDO#46@Hw;*-9djLCwJ&rui^nLMm&#c4ew%Oct^{+99s|OY;`$!Ib@V{HTVu> zG;uZf8)UR{HTW82G?A6g-!!4|MPv|xhT=?s1c`&g3B;5SH~D|9X$K_}Cl zG=iKTw5W~2_i2+tM$EO4Q`@%Shl#9@0IYzX#4}UO+d}uxrt!_ O0000Px$bV)=(R5%f1U>I?L5#(b-6MN5pjQ?jb{QoaQRtPXMK4JRLn0Efm!R;&{10aSm zyk}%$oJ)>@|Nk)rfz4oGkOdnEav8|53#Se>kYk{MnH|IbfB)-2dYRA-Ff_6Ab8v9r zKo>{nH#9Ub8JgGzql=>$Xk_W2@{i&F`uAV{oj0~{G)Gqq48Q02EVWVq%Iq zck0kSm^_F^F%Tqh{`7%8-0Xt7K<3>43=Cz@Uw;L=7VfJ5|9gN*V>>$&tM>U*2bY8N zAOlFGAd3LmM~`m$45ZQxO&wPM|NnO`$hH3&8GZu|`U-LtHiKYBV7L$_0ivO<)d4c+ z;&T&U;{xJ8!Qsy#N3J07*qoM6N<$g6++_fB*mh literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/mailBlack.imageset/mailBlack@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/mailBlack.imageset/mailBlack@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..64d31a2d65195076ad69892d29741ae591c56e8a GIT binary patch literal 850 zcmV-Y1FigtP)Px&3`s;mR9Fe^m`!LCK@@=B>=q4LFVagvG1QwClC(`~mHf0qJ(PO!Nt`+T#zGnts5P0}<`*nwu>&d$8~ z`pwL4HUMsM4Y&sWZv#xl9~_MBSj*?H0I(PWcB|JmI%dF@0Wh&y*U!(*B|eJrBp`?T zW#ktCVY|54mLr1|kEZ(sq$VItbM1!XFvMWZqD9sr0Qt1?tGqCsjb-POPt21RefUG+ zF*G1<4aZrmA`Pl*uGMfHB|D#*wwXv%Vf{-$aq(X}Is#5jO=*ZIH&ZkJfmkf2EV1&L z9RVLsKfmA)MW6Zi#k}QH)L%O~I=VG55V^Mc!?4#}gk~ay6BbYPZ1cK31 z>$MpO4o5$){#-NwPgCAQ{$TV(WjuhYfDDWSjDbB3*lD0~y-}OOnt{0&v zmqt|qv+3EJbki9k$ak`urJ?`*8Z|2qP-7-u?RgQqX^~}u7+Cn-xVcUE! zGgPq|2u33L<*$p>_6+?MS)*KsU#C*^>~$_R0g5!X&A#$BBTobSM|KsgVS=7ZyG38> zQ?oVMhXTj@klL8X+$J3+X!qS`3~wXC9<|JH3yfF4Inbq;2x-Z3Y}4V_gPSNZaN`wXPX)Qw%l(q*4wSu#%Zt>s^Dj znyS=J8noU^t!DfMrc#HEs#nKUS(MuhCTQ@Z9Du)F(YFvDwye;YN-Qb?%mmQFOS$wio2+Oo4D4BBcE3KP8Rp*`VsM~LMz5~$8Zg} c1~%Hj9~`D8G5YDJBme*a07*qoM6N<$f@=DVeEPx(X-PyuRA>e5n$K?&M-<23Y>eokqM{c-v{Dg;3rKc;*eOsumKC-95L8?t90EOZ zK&?c3%(1^D{s2gbTGUG}1tdUf6@sG*8XIgRthOrGmMf7!4Pkd5?`^&7*Wk6*>Wk6*>WuQkH5J7$rQ4D7CpCX!P0K^^ud^4!s z`m>2=6l+ZgZMw3wa7hS(-WYwr!`bXMeMMXW#DceRtgeNaPrQK>_ZJtR$Z>1(1uNSZ zuna|lF$*)vj4oh)jAO5?Oh?cblVnRsWn$$q>pGCe!H|dF9hr&MNd$8j;eL0 zi+0E^;Q9n**8#&;OT`Jt5Q9Q0og?A!WFu6bbQ_23k@n5T0vMTi2v;Y9xDZczpb=|C4ZVWbD-N{=&|vF+>JVrpG2}y>`J^UagVSLs1>J z+n!f~$#m|T3Fi04OMS+>uxQqQB;e$}!ghgpfjcEf+sWyTR60A;E47p9{Di&&HFAEm z9z$+uG=H`kq+A~fSm^pi1av*hh%l)yuRiLg+N>)5zFq}1exOCrW*GoY^Q$P2cFVx^ zM`xZ^BP+5)tBm*#tDVf`raP^+tt$CH=JRVA#DXaX{td44TU!R^S1np~eYXJzQUra^ z-xXO*Jk4qkrSk^^>mwM`>HO9(Rk<4h;;9fYSuGcjRDS*WpH{nW8QAWyT)zG1@gs!; zv{*eKrnZ5`&34o#(37iR)WTFH*c-SZvA0@UoVDX>^&A6_DJs1=;)zM_I*L; zrm6~YlT_XFuyp5g(EY92+5%=Lb8~Zsqc*^A!H)6Fiut@Yl*xYVt+!Mi$^Fz+)l%{B zT2+;Owhe4|W~sen>j9x@Uxbcr6K*9XwH;LfKe79f&oohXL{+&@&-<`k6}`-A(_P;T z@5^7)UmCMi9`*NPsr?bbJ|a~ES86;~X_$OgDHUh@_qS*1n8I=xF110tkn5~6;=5t6 z^m}t_(+haRO zZEoCURpofPrm*ZpR@>CYEUm{g|8de-)!_5WQgK>t-_3H@6_$f%wRi2}K+;w6I20&RY$=!kwV^R$ko4^u^o(rdIT! zfj%z#_QE*#uloWs$w4|>1K3D#B9$5Yg$f0^QEbb!lc&0LXPp02w;5cM7FY0AA9|CS zw;ROvT;H}N!!nCYVH=K>?$?cJHlsSL45$pK45$pK45$pK40JsMuK=nE%*~8XvE2Xw N002ovPDHLkV1nK2Q2qb_ literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/Contents.json new file mode 100644 index 0000000000..2ef36439d1 --- /dev/null +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "more.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "more@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "more@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/more.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/more.png new file mode 100644 index 0000000000000000000000000000000000000000..8aa0ed36651b6f1120c41af8ac7919caa5d56c60 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^l0eML!3HEZ{B>^zQjEnx?oJHr&dIz4a(q2q977}| zlYjjGzh6e+J=>%60a1O7+zUKpuOuk2vhUt_;~>KnR!bI1f%SYVxSueme2{EcOA(xlEmgvvOt3rkhA;#6D*UeswV_x{>J$pWXW8yH-W| z4_3FgNLnOqPJWvNna++NO$VW(ok{9 zzbN&`y1(@e*JP=46D}5*%FLGAw{pf|%N(x7C*@B_e<-_LkoW9Y@8#E1fB!qsl6Pmi bYQ6X_9U+eI=KTAC4rTCk^>bP0l+XkKo`+e| literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/more@3x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/more.imageset/more@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3b998af6d92d76a522967f7350ecad8ca5c76087 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^-ayRH!3HGPv>QzTQjEnx?oJHr&dIz4vPC^z977^F zuZBl+9dh7#^J`)Hh5h$dRXFfJu>2w=%EBK||B5GP!P10s_1}{nJmhE2RCzls_quM* zyywg{4fh`^*PNR8d{14(5_4;n{Ac|OyOXMa2>&}@u|MBTRbV2&oV&UBA2%JtXQq-8 zl@AI_0(GVzxHsAL)TtToqb40WocwZ8LS46rw9RS3riUdz%VLf$3!QUvWrgVTYrYkS zlq1d^3lWUhTid-aILO*lOz1yv<6liX`i{trdw4EOcAL4(*7(8A5T-G@yGywocA(%@5 literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/userBlack.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/userBlack.imageset/Contents.json new file mode 100644 index 0000000000..3690510524 --- /dev/null +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/userBlack.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "userBlack.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "userBlack@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "userBlack@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/userBlack.imageset/userBlack.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/userBlack.imageset/userBlack.png new file mode 100644 index 0000000000000000000000000000000000000000..bc88274bb32a12c87c8683072853d9a1d52063d7 GIT binary patch literal 596 zcmV-a0;~OrP)Px%4oO5oR5%gkR56PaQ4pTlw{mKNq|*ew`@dbPO+1hj;RdjPNuL<^Y7u@Tkd zjguPa3OaD-Z6`b^xAcMuXVX~?LF==e$G5_6b<2pQ7fd*VWvkVY0QLi7uib7>j419I zi#Y>ks?`ty*EzpKK@jAPMtZ@7Gg!7-4IM{4V&SgAD7tGzn?rq1Fs10B!LoJg*i`HO zZ6Lfst~)D2oJ@KwSbWn7Z)T0mvvr59R!gzj4Zx zG}!2=gUBKK-9b)9t=e_peoIK6$m^;x=e$yn5r3 ztQAdiNh(9s(BRqo0!qE(-MYzz$v)=LT?2%#u_i&LM8reO8J*YBulIu?jH@-j&!Qop z?`TUyIsQZB2g9gL5bY2w)+7v584B*5n4i^S?IT8qS iH(Yu7yr1yPx)CP_p=R9Fe^S6gfpRT%#NvzJ!dBG3k@Nx4-_jMiP)-Cm%(85BzzMPf`f>I)Gb zy+t1+zUYgF2QLKl4FWG-V&em%X;L8!+mcdtH(f$Z45V6U!bMvyrp2~9bB_O+-PzsQ z?kqc75@XVn?41Anx9^+(%=~8-U~w!~;J>W^-VgY|jvY(*wL9B5!)BR}aWTpoA3Tvb ze*Er2^Dl^?qA1n3@AAEZ!+QXt)=CDakilommau)Qs?Jz#<*zCx=vS0wFs1(_0JfBZ zBY-nd>v}G!s<%t|+1Z$#p_E<-fnu6}XCa61J0cvBKOotRmp+Cs#h5xLb43LGt;#MC zVtWRNkn!Ueo_%^lGB)tK{7G5r$WHv^Rctq6jD@pHMR(;7MJ`emHyBWe2hPW$Zx@60 z1;YnO|E9Dd;-zFP`e-q~QaZ;K^o6!QZjz%a-Kndp`^XNUu6pT*(ns25jEuGOwbMH$ z2*6wOk_`_I{(LKMZ4ooJb2+6YHm5EjIVQ+JJe12Pe$B}?5<<=g#Y!75TeV|?v{g=f z+Hw;extKNOa%aZ`8RE5Ea(p5u7nkTYe$uoE#H*%U?(CSL3)pE&o^Br?l)&bvjN`2s z;HD1c5o!}H8Jq9|ix%@MrE^R$7E`ZNGd?Mk5=)Pk(vI}>^mq$Fy1TopcuGG?kAz#= zWQ>e0^t;#EF+rKo<%0LAujxi|A;K5`xc+G&(AB@D_tOm+$Ds6;F@-+mtSf5NGO<4x zeuoHrkpbae#I>XL55-6nCXH-JZ#FGiAGZfWFuL*0>OBIoyN7bbuXO} z)2{&MFK1&BX~)xp$nxxhe0;5u(Q2&uc6hk&Z_}sT+0io?3`RC;DBh*yFA4z<0MKG5dDYR{ulmAKU^zkH@2BSG6pH@}bvf=RTp9@hX8>V(2-X zAjR&Hc=SiIWyi)~bALdvQX@bT96_Xq9YV64NaZ4ma{y*vSPdRJ9;ckXwJxI5WOrmj9tg>5^b5R8|GY z5(5KyU+4wil>o^P(aFiVH7UWHIOz36bvXm9ky}b-@}wbXt7*$Qh-s?OEe5Vh53=$4 udhg}FzCOqQOXkyF)GStDu>${}3j7OkRpFqCa5{Px+{YgYYRA>e5T5D_+RTREwX4`GCNESuPLnuLvFN9Ls+JbFG(Nux~r11yZ1Qj*@ zQzOPmv>J`XXbgXhLB;rp{s12lXtfa77ShreTVkT1BD7K|pwyDm*Y3>qySuI2JNue; zXB&U)B-=gb-1GX*-nq{*mU>bZNL3(Jfm8+lzZIZ~PA&J&@@e|O<=G;xk$Ke_-=Ufd z6Pd$=0A9MZB-dcA(V2|)i!X|9#Nh65dAv9qh2 z6u^arWwVD&^9aDsvYUvk2hd$^O}nG1$$LhYJ3(tsIFWr+R8;7LhVf-&uymX>+Cn;8 z6a0WiPd_f(3tHF;AHtWlEm7WahwiLt&mdv(&i?n{7c(@X%?svDuRO4?rmnlI^F-*= zaj0Zj!TUYEmoG7*yI~;z0CRdS_4jsnbu|9x$N|F9E?rbqk=Y+OcPe}&)*m_6;{7~U zzKin99%kJ5OwqvzKFKwGUSs3V0Y#nwBUdy5HzCsjqkDrDEHSE%2Ub`M9igivfhjEL zQxPV{I0~4VY?Yi2x{u$*^k-#REL!La8%4+BQ)wFq;~3zoswxdL?FuCaqCKsx2Tv%n z7)($XHi`;-27N2S@iUGA-n-X(9p~(7ITZ|62W8$4jc)Cg^@LC1Tb3n4I|evFq%Ike z6(_TEtjTfB?6BHI@@>_z%R2^`h-X@Zaz> zGOA~Cx^|Qv{nky_`B6I2Z^r;nPB+hmB}4p{Fj-sy-D*|wc(iceRwbLfV}QM0Zy%h|S0v5^YI&H?+u$(w{Pen%ii8o}K zO!xE|Z()IvC(E#H97^N*^QtUy4&#jTPi{d;rD^g{WX}lXr_8Kb)N%@-VKgF{0Z8<@7?KD2vUm?o`Jxs=WD_Fc1uO$Plh?f+= z!tr&Uj4E_XWjf)+E!|dVQm*)W<)OYwuI#N>cxS1k0Ty#7mV_O0x>$LsgAy98GT3xF zx#5@N3p#0l^H#5(1pnyC%HvYF5M!0`5!(o=iHoek680E8o(%*x2D*En1l(-JA+fUx zFBl<{%7W4QR^x2%Z;J~`wv)^CvD3%3j*Qaf<>l@_{~D+uZajwEOM@`NkO7;fuWfJk zek(VLl^8dTZ)BN7b0k>DN&jf(wV69>YHEh0wsDclR4`T#;w0jqezUUg^6=N_y&GYl zgHOaFLijEgCSfb7?yl3vXUv>C1$IUFSRdgl2fo+!^$%BO&(7(2YSYFav2K_8gw-TA zA2GSuCZX2Fg{3RG!QVkL3uEik5NT|yuc_`;OjQvR#k54|!c{micme+0as2&AIz89k zRJSj-UgXws0nW`Yec9w@6u+csaVmqbTVr^ni$iE4Gerw71sd_QL)%CcsPbOV$~je`R$Kptud?pXzRRmEB*{ z>LVH-x|H+3g3eSKwjzU(PW0f>mU@gK_8!}S#oTCg_x^&Qvt-v|gRZ&Q14ob4|18U$ zrkC7Na5n%w)H-&+X7z97MJy51Dvy*~xK2o73vlq{pHrdY zgxL4KW^bz^n*b&l6S0+0$j$EUge}0;)d%KcP|A{n5Z4aL{6x~>v3XV~$M{)99PX`V zhQ>X(C{rIYw_u7Y#yfQoV`Xc)mf>q^s=1^pIl~nemR~(=4q_W=EX5ps7q(a{cO6@ zCwQYk8jgMp%*`}1KXaUO>1m9c>G%(y3>4La#j^+Y9!wuIV4nkEIq)quAy;M;IJZ8b z9IeuD-WFh7WBxHrf%6C+>+})W_zdXGK$y_F7}W^ohTegR8ubbO6@=hMo)OuoXyiNi z1$$c$vGXEFJG!>s;g**Dzh`Law-ad}qUvFHKXw8oMF+WvoJ4LSM>{dDbQ3$;&{@8G zm8Wm0Z#}x<{pfzB_^~`TO`TCACSH>|>@};i+*!L0AKu$D7RO@-Y;~SjykdU9AIQVt zbqn6Xc__j>;(QKn4zEGiRYrEJZFHV+ZNvY@f2wr?+$oF!r_j59a;3T2+8Pd=jBXdd zC1Jp^LWoU(>)6SuNOp>$``s9f(r_A^F1~|yM1Cy8hw+;Dbt7#EMe7YLntyS;n~qqy tq}oyyNL3(Jfm8)j6-ZSeRe=ewz`y4T*LPx%d`Uz>R5%gURL@TnQ4pTlEf?EZM1m0xU_>x-DcCmQQZ^y67=K{G)dan8kib7f zG=_^Y@!(aB5lzr7oTN&d5RKX#v`I^)o63GFRd8RXDbZ67+QB2r4gAW*BTjQG)LK%Rn z;1Pw4%URq0(i(t$#Iic6?A%ecXH7QG?N#a%B4@SDH?MI!h0GCE0YV%#(XxtHiQXVNxN0~5nzBt3}Ugz@Co&%epJ)8?H{g3pUKR* zY&vzr-Rlo*W~ylabm7d!YK$A(00kQB{ug0URi+o9igS9wj<@#}DyT@>XO?BvFVO<% z(@sQU6W2U2Y*iD~!iC4jlU?!nh%Z3F;cwraiy+8stlic^JP>iNM`DS0 zn6R~~&xFX?saCdjo$8j_!bXRl*T*k~`Z?)Mc}HXkeWv-7>_%!@b9R+PUSPu3JWd7z zfrLKuspfnYcINr2wp)GpeTeOT8@mzPcJY%7@5c{?{L$WlPx|yl-j&(jzJbE<(6L;h zP;lT!etUY3A1amJ`#Hn;-qEDcbNubkL7$q^o}Biut!tA)&k3b{=aV;i`*T`*q@sxj ouB>@o*Ur7WT`J~0?Ekm^1g;z{f*3X*oB#j-07*qoM6N<$g6nxyegFUf literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/usernameBlack.imageset/usernameBlack@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/usernameBlack.imageset/usernameBlack@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cee62147047b438b29c6810b51a9a04669132db0 GIT binary patch literal 1577 zcmV+^2G;qBP)Px)<4Ht8R9Fe^SY1q9RS-UNcb7j={A;3EO|fsH*zLO1qHL&;s5Q{~R1<$1eXvR6 z6DEB!an(MV$eT@SjK;r2pKL`%4Op@SkflJykeDWFs}`tQQ!I2@V9#;p?47%3@4dVH zCdP!DENAY_oSE;=nKNe<o;p5%_N-0PA%hX==Jz&OxmJSuK>R*7g7N{pqJyjJGO)k=E9V zrRkY=A=D9}#I?l?dt@N42m!ALZ>j1S>Fm7fkr!aB7~sxbdm&=mPu}umX>d4xJi7`LfT70Pc*&4oIQiRZ5hzMVvS;Ea)f?ly?pe ze*HJ|&2jhchi^<}QmsO&b|pj|%K${m67cNkaN-l@6&jZXNZ>L`ear?hVwccC`@X#o zeHf3&CG(4osArx0^4q8I13NIHH?eL2;EClx76nMlD&|`}# zG}?0KqDX&+_G)RKj-(ZAEVkTMAqTV}DCbOYrB-FbTEUSYnoBn5L+PDtlMnJm?|x6v zk4ZeeTkQ=&%Ni0TZ9_v{|M=-gT3V{q%tABfSq;f?S$=`4lAe+7?wK9+vAB}zWzDzX z6|@n@NVYA)LQ*d``p8xWan#SY?-Em;lk>AbaVfDZI5?I}yze%ki}b8Ks)TwD!G%mY z8eRke??_9{2q}&*z%$82oak_U>=`N5dqm?GU9rk4xBJye|0TvE%;3<`IBf`R$oLc9 z)qGcGHZy{|`;Z$PsS%H42=0(E%^}Gq+13oIspQk=@dYTA+RwUR!5i+~N|95Ug)Rhf zhogtiFcsd?KX#lIRa}royj+8s-Y>B!YZZ$7|jOq?LNCb5u}5kCfJ6O?jo!= z1m;}Mkry1vvVh@mPLFo2EH&S4+ezY)Pu+Bw3P^hZ>aK*9@c3eqM|nBj!Z}Ad+u5QmI)R4Y|Wbku+4b~_|BmV5V(_ncSK6u;LtXa=fm*L zdR~A4lz!PqDGbtjAH$xHDa_$nW}`PxhvWq)#1v0Jbhk3?jOLOkb-%+eKq#4KW6`Z9 zmDu9&q`K_THsJ+`ov@>1E+GxNgHrWV}2F)hK5E)Rt~ z0DW`p-e@d=`@WGT`W2=IcVzZx0jn3_#TW)t5JpPC3%1|rxQA4lh&1< zNM|(J(-(q31XE|gZ3p%GL&CamVBniS+%kGcx&MR9{1SfQYa~U()Na)m>II9nTc&kd zi4$M-#&A`_+O7p-`yXjaxX*fXPCODu|oBsH7vjl(({Jr<21J1cbUq+XHQF?Ywq^QeZVGwFuWWUr@X zW1Z#36#*n8tGc*nkH{LFrZ4Wn5Y&wfCOk!WIdCNBzHeFGsSD?(wnplX%enMC?)@lE z;NFhXgf`MW_-n9#L=#V^kdy!yC(nO@@2h@R43I2OojtpVjuO?|Yu^UBG>tW~0!z?V z6#3?|J~9FNvGDgyPo6)$YIHbZ#Y7|6o=o;!Dl~VKzZrr5 bLj?W>a7B#-=%n2x00000NkvXXu0mjflu!9b literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/usernameBlack.imageset/usernameBlack@3x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/usernameBlack.imageset/usernameBlack@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4ebc0ccf424bc0cbe42fe6c10e49864f63813878 GIT binary patch literal 2407 zcmV-t37GbYP)Px;AxT6*RA>e5T78UNMHQc!d*61UG-(k6TM!!sKWbn<$S!Q9yRWVRYo!p8kRX=G z9|jVQiT(9m&smYjXdbJ~%$lIajNp%SAJo4D8u5)Xyv8ZpP&8sJ@pmwKm!) zejfI|%$OKgu6(Y1XsUFv24KYv?j6|HEv5G`XKE*=Y-6;6$yg{grx@QSg!7}B;{Kz_ z+|5x}%;4TFAAEhFDuNm}XTiF73n8y(!eQhQNM&l`%faxO$x_ zJ|{SzW7yP^u`b{?0(T7tYZ&|f2CZ2LgtEtYM{Z{;v%PGC`v!)$N-2KS!7Z@KTd{Y

  • hR+5!JN8 zwV9oWFjjIXxc)NnZS1o*6QyP(!asDLU65Z?7(g^J93d26!c31eJJU@WT-&py&@$%i zoWq^_r;CLbGTPDPz0Z=Aeu{3!$@& zxq}zWSkk51w>wys)zFRxo^&GJ8rWngv%zN;yhkCx^v0N3#oZl8OZ)$rET(lT$sk!c zp3dpLkxu@xs3Q|#3|e~egNntKAdVXT!Dz)hP5g6~N%-uOMa!Pk@ zJ-6obs^aa}wc@U`t^E5!fpGrvmfl`~+GOzyqQiYpmZhyVqVA%LA3<3`1v#j!#`g8+ zKit#5^~q<)CjMS|gUxwfHC`iCaraDIhz^#M4Y4Ixh8h(1v_Ps$qyp!j47w z2dA)8$5RAFL4}U9;i|Fnr)YbrO-rpS)tSlz2GXGx&DGgSSJJtThyW4|rhFEMewWp5 zx9(&t8mn#r`8e=Vf)6qwJ`ZPiC;bQp)9>s)veauj?ACcnSJGL>*|2LP^g1Q)3L982 z6dUVx8&=BuzCE*WGH1D9pPMO8MXikQ_6`i~Qj&cS3a_{OORAGD%3J(~&QrZ`U_~9L z!-+FYHx)WFWj#rW0C`$_&yums6}>UW`rZ39@c6vCz!aEtsb*q2qp7n_Avo4xfB*W| zGI|rFcnL)^kCK0*(9GftJ#HW)D#Sy)5u_B9sS{l#CGF!_gXzKzZp*xbqI@={P*8!T zyu%_NOqyAXmsNTBA8dS*0e+5cG*D}+x*N!PCDvfNU958j0Fw6rw7(QVh0a+ap0W8- z>zqx6c(@9m-vLvEPLaCT_+t$Yu2O@3>FeKA=m-rC!bJ_m97Z=C%@x7KYjz8+_!TxT zs7L7(rF)$}05W}3&bUl{tT2-lEOf`E1dqL2i#?X;lH5Fy;IrutDyC2(z}_&49!tKX zGP$cY>ECgg6eZPJ6Vs>(k9B&?-1knx#KbRYya+V9twE$rOrfj?p~e}5Eak_HdX|b* zAF$cr4UNQKrz7@;PU=SeSCQgxI*$&=8cfe02$s(4%+=dP15>Y1Zm?{=nd7dUbA7roTqFYMNr6bH`#c* zPCUeG}k zQsLJas3{%ihl>?ClQh#l4Lq@-rBYYVpI-Q;(J%Jt+4J&S$Z)RG@yK?5sn=~7t1!NF z4{jY`OY9|`0~yMf%cTQ`aGg%cgP#^gXG)YjJQEyOL%B9uKUpV__%qhG`g-snU-Alz}6>V@+a%9 z0AN3jmXAz5s^j8dN*gJY!q(UkinnogLy0l+@Z|LDK4@F@-7@?TzK>va-K^6wKu6%D zemGs4{0U&%^Qk41!K-;qo22p0`TP}pLHch^LgY>qixdAy;*X+bGME~6_YZvsN5B`1 zPW(%8cW^Z>;tjbiR8seF&^J9sV|0!Mb^nWykE_a9cmKBc8~C?yCG!lE4gamjw3Qsc zrVJ**tNC2Il7k|M3mQnJx}ZQ8?!K=@>bVWE@%7XX_TQ^gS5IlZZcl{P^Ojx!LiJo8I*#ZXe!;ND8+P%T5{sSq@&c{&jNhgpq0n z#8$qU&*3y7^ca1#cwmw?JrlNyo{i7&zmfOC>h# zX?Xov^z~bnQ~Um>{#=?g0Q%pDITwq{b?2|&xc=0hJ$t;kc5Qrn1ll9e9)b1<{6CGr Ze*l|;x6aYJPTv3k002ovPDHLkV1j26w!HuV literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/Contents.json index 94d9c75db4..ff51ed6e30 100644 --- a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/Contents.json +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/Contents.json @@ -2,17 +2,17 @@ "images" : [ { "idiom" : "universal", - "filename" : "wordpress@1x.png", + "filename" : "iconWordpress.png", "scale" : "1x" }, { "idiom" : "universal", - "filename" : "wordpress@2x.png", + "filename" : "iconWordpress@2x.png", "scale" : "2x" }, { "idiom" : "universal", - "filename" : "wordpress@3x.png", + "filename" : "iconWordpress@3x.png", "scale" : "3x" } ], diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/iconWordpress.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/iconWordpress.png new file mode 100644 index 0000000000000000000000000000000000000000..cc24baf40772480857197cd9dafae9547c4cabe7 GIT binary patch literal 1427 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 TQK*;%00000NkvXXu0mjf3co19 literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/wordpress@1x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/wordpress@1x.png deleted file mode 100644 index a942a188fb2fa1b731ab9beee03fdf633230cec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)*M)Zi?#CkEDl=;JQ!}=7Nr7&bbVWA%HRerc^Wuh?PLS{K(L}9ZDbL~hJM(j#Ohe^wAGUYqI zseHq&{GsKuGKswg)24LMxbC#sYutmhDHAtsO=3`&{b}=3Wl7?g%9_NU#7@_ecx#0> znu+5oCliZQ?j>&Pu)^ykerouoH_=cTN}FMfSzy{S4U8FSMq)p%=t4uw zSQ2+^bRFvw2e96yL=Bzp8&7n)lf+?tR%0MhGwQf0W#X=tIFY#OP!e?$YHpd( z=+Wz-TB6~h=j!>F(s^SJTdYXbtkq}QIc4V4bk;{RJ~(4p{zsvv$UMIRCS`^k&{S+B P00000NkvXXu0mjfo!{RO diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/wordpress@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/Auth/wordpress.imageset/wordpress@2x.png deleted file mode 100644 index adcf66cd5716ef2eae5ac78eb21d3054cd345e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1456 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*HX>FrEwW32_B-|Br&<5&{tu?kxqz z=**HJzhDMNCT12^Hg*n9E^Zz^0YM>Q5m7O52}vnw8Cf}b1tk@A4NWa=9bG+rQ!{f5 zODk&|TRVFPCubK|H+N4jA74NJz>v_e@QBFhnAo_)-V3(|8^~7KFz?u^uyD|F~s6@>D1TGA)z8i>%TWSC;#9O;O6RTPn#x@(Uvgr zLGqSGDqJesn*x@ovwkxu>Y2ol*wFa!`~7bZV3&^t|fl4t8dFY@7e$E)|6dWc4_OHuIrPzCuLRRE_;8w?fVOR z{KDSa)TRVI=gaF2S(m}ja5a42&uYv6=gVWyGhA4!J@x3GPjh~FR5{p2LNo4QxA76qm*E3*2YevEr49!_rmr8Ea&V z9pWGC@?TJ?%5>^5PbfqGRfD(hdp9Js1-?J%JDX8%#VqDzl@~rMW^5I&3)OCz^2$9>`+)qb-8?V#7ak9M@3{XK|A)m< zvGZA9g!H>q`Yzk|j%m*x!#CPi$Hl`KGGiAw=JHkZoLRHV*J0(iW7!LT)v`-m+}bkp zz*qHG+Zh&z$@s6Dzj0qm>~G<9%~e6Gv$!n&&DdBVyK?J`C1R(9zN%Ec39xSXQMB?E zKf`;2bj4!Q&wEXftPzjghI z?3U#0 z-RWy|f5_(Tv%Y(Ee=VRzvnTlEi zQNTxiP4dfRlXaS!SW#dqnO5dA^-JNiH0Ron`yY1Cx#ymHf4t|OTM-oz424)i0000q zghV8NRNud7Wbjw=nd5N)Kp!4;GB)s|-TepuH1PKZ5S2pxkIVQ^9yuZgpr>yDGz5W- zj3ImWLQOs~-Dd{-bU)l2VTrV|Ibe%AXot2x(h)_?JqI_!Teq|uOx zv@23|A2Jx{+@V%QS7!=4EZko!H-4Ju z-j5~&O_ z;+>-`Ld#%=mG?7tv-z)|57exLBQr*ZK8>*aKzQMpl!f4&j7^w&nf-L^Qk05*1w2D7bR`=e)VXkrYx(luXmAU)G+}XlD zExR@`wc~rBq0T4ZYv~$Z5?rUipe&DODgDb@tOAYY%#{(nD%CyT^#O$m|412J78&g- zH`BRZ`+W57c{1NMm2Jj1fHS$MtxWx>s80eSc0l8|O4BO?=1fQ3e*Q6CGY@Q+9{Y(( zGtQfC72Q=F;kQ0i0Lj~{uugLOjfAe!cqT;IZsLfVOiDc_rX13XThhPP!4f@fCc><5 zHZ3qO%$5+%0W79_dk^?sXnrnnCH1T+nwDBHX^jTb_S)5NYQW@)hs(71SHFHW9_N$Hl7BsZtFz3gJ^|_hEiKiLLf5UDKJkPC__I42aS~ zFuf6EthA1yVKp-za;EGzlr`WMZ!%EZtt9?`4AzB{f=w(lQBk|YX$)fpUd=mr8PBYG zHW1Fg5-(AVN41vynSD!3LN*vNKMskqF$FhgQ?E~YD~zt1Ecufy<9TU5Ui zt=dt4vMF^3odNPxZyyQGOHzV_t-tSO>|sgq!IBd@(3G}1*fZ5(`cd7%uqvHLqWQ4^sPJ>Mt)$+ z&Le}4neJGviZ2+i6MPa*^aSh}AvVh7zLoZk4WUX8-Bv>BuM&-ela^8B9hDPF2voA& z?>J5ht%X1wBdbI~)^YS>^F%4cO@(%zgeE)}+d1S(s#vr9zJ_bs&Tf00I=C>L(Kf#h z9PV90+jJ~Mo5SpovT#Ow4JUZ%0Md*MR<%IN8#4X}7Z0aNid!{^?y+{S)b8@b3Ts diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/connectServer.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/connectServer.imageset/Contents.json new file mode 100644 index 0000000000..e314309f08 --- /dev/null +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/connectServer.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "connectServer.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "connectServer@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "connectServer@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/connectServer.imageset/connectServer.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/connectServer.imageset/connectServer.png new file mode 100644 index 0000000000000000000000000000000000000000..e5e2c021fb7362e9629ce4ab2be4515939063763 GIT binary patch literal 1021 zcmVPx&w@E}nR7efwR$XjNQ4pTFciZjVE&5P`XuI(f|FlHVL?R(H9`uQaK8Qp_BI0*j zyl@e!)=wi|5Q%t^AQBRS_)8?E5k)B;XjUsKO%p%q?(NUsJLcRvo4ad&ZQo3CGv~~i zneWb-Gjk5W|3)}m0hjvwmIGMp2&e)PiV5HqfbwL*xPntpccKxGlQZztIvQa>_yk$7 z5fHzy!)5^NA)<0XSipdv6b06QZtyfY!E*whtkcN;UgI7+na5yy$$4+iW`sawbg4inME;-1Qw>M}VtSi3Ei7ZiS;Zeof zYiX1bu&;KY+yrwK0?p&o$z_Qxs%qVBKk9uh9VO#sexrtSy9N=rx7K1v>ZL3vpH2l< z$T&a*yM_$tJvRl5Yjy?@sGRFFMPszRPKVO5;9N?pk?<~QnXZsU-2=Hw30m+nHX+6gN35=I1jy?D)gff z>pCeHdW{F1yUJ9(cTRx3Ke~;2j%W*8b5Edm{5Ko`PPZK*oKU>l{-BP1VxEkm!2Gw{ z_$q7UqgoRTcrGV1kn)LpLJQ1@Qe`3EzoHw85(D*iFp$spaC)+VMHJt=jc%UY>Iit& zrZ>x7!_F~pT{+*G9w6mhHZIHd3{*I8oNR1uV1BOHy;RM2zsb~Clnj}XXM+}P&D6%J zX9KGUUAE91jNTqjrTB47oqDx{@#~q)ZD0kJ7NKlfk)`R3Vn9>WX*xgAQ_Y2chbIe3 zftmKJA%Ue0YT>m^>NJ6QjL42yNb=pdk(t6x{h@fIIko1WrMyzVu^)#CRQQfYEGA{U z!*Jav@kUf6CRVF@pm rbBF3dz?ZxkmpYCY+|LE<|F-=N{@Px+wn;=mRA>e5npFlLDbNv6=o#||M zX1hDHTNcuN*z?bsbN=&x=bSm0{~Umc-$V^e)WF?b1FRH{e>TiLJwwsu3h*_+VG(0c z0h~`mTdx6wOBkN?h;XR0N$OyX@q8Fc3OF3*!Y6X{HG~Uu&O>8@FgU{mXy|JWelup; zRDzNLp5Gup5Q)J-0RB|2#_Q>@2ef+xX=7J2yP?O~g(U$zr%rxa;rwgPVWw^e_#D4`iQZB7?rROM9-U5qzGJ`{unYzSkLS6bCf`}zxLiXG z8sLD@(jvTUH;@UrDlKHXLc)?=y?dpDI9l)1ZNzTgh@XgMV~#s;p<#7MNet{l!kgMN zhexaHOcap!@7*&GLvkG;{rS$ zutdbm#B&B2hgpVf5{eEyFU+TKmA8+~v(86jliil0$h_B0FUn1_A$km{NJ31O=i>%o zDyhdg((%-jlX;2QeMUOQ1`XLH6upJ}TY?<`!VZMpUnYtxoXoQ(d$WovhiW|mE>kb- zvN$3xWX=#O~=q-|^qW zOwL#5Sm|fi%F8j$cQ_MxDJ>I(O?@qa&#dwl47h4r{0Xik>amtz!mc&RvM|P?xT`rP zib6|wbKtmDntbCz^|1x&aN&EW0H#c%i#RI;E$v3LOKFUM}L7 z!?A|jz$5PLYx4bTRaj_SB%~^80|&MVyS6qZ;s6u%2LqMo!|a+>9;-MjSlk}I*xM|f zv`TM|a|ApZ7C~pN|i-W=}+mh|KeYymp} z9?vSfRy7-ImaDe&3Lcl=76jo!PfOra^E*4)EiCEH3)l+QsawVl$}YYTuz3OB3$Qr@ zyM+zaMc&|Cod;#o2fe$Q<)YrMWoOsN9)d*TnEt)vAa^U*0m@3}m|fZ}?3^vJg$YRf zrPVIZlQ@>IN2lA*R>q8utE!FGa8SNL*wpsY9js=<=t9iTZedB+{4g(%4n_KLuJ&uX z8A~wW`vp;G?Aa6O(c(t^C0kW_4?&H^jN6vgi?D6sP`$iZO~AKkXzE13`Q|;j*5wBf zKwI1!g){gQ_sYNE^JQ9dV>k;`wt@p+pr@e_VY|x8#I>EfeSe$doyeBJbg&hT^Nx}4 z#yPBRRCR+~8ISXi(EBm6XVqWYhRMZ@&D-}hp!)9A$bn^^@*==0R9AToTsdta}kBrwYA~Jwy*F|3Es=A+aVpob| z@Vt|?F6Gbmdos+W>qD`X3Mg~Xh?&}&TTpQX7dj_P{uBR%wX(CRaP%$>m`>iih9VcR z=0izs!jAEB&p5K)K_(g~j2~Sy&|$GlU7;gO8LGVJoEw{Y@mkd~J2RM=&56Q8;3fg4^)I`2kjK6%qx7&97P2f9F#kD^@CX2R0i znAKbiv*fvME=pXcNe5;lI~lqy<5G88c5B$&+%jp3Tt1`&12>%4=z^(nsoTh2DzIcw z8ZcewGpxj&3b|m7XNN*5!4g6mFx_25r_ULBfsXAdbPtMTr@vBzC5|*;Tsw30CN$`P zbm@z(1nJNDgrx{e_NM_;1l@1KWo63U${Ahy$`_jUzuNJKaU$T}Q$e;B;+M90&=tYopZ+)Wajt znosv8e&cP3-%b}u%6#5ysvMh!y-Z0%UbABBR+MUO2oWlpxV zOinZhQxy9x;DdG94z_YJu+V8TzF~6#bSsrEYBIdLsE^*}_f|3vd_8nNyLnPzNvXk- zy;)n>41`^q(RIGm4Yy@DZ_z!da&(IfVh=zk9CXk%13G#CAPx=!bwCyRCodHoeywaMIFcY_bzvrm(*4YrAgad+O$&zci(P^GC)%R8T=$#~GoFbYNPl$P|YethNYJL|ZLslh`JuXr(lFxx3t3 zznkX8_x~<;_bx9tZ)Y-Z_qY3YfBU(8`}WUoUl{Y9PrxVO6YvT61bhNMfnpG#Vie+q zGHO@yYBtcnfOBOY<5bNVt3u^3?+RLT`A_2fD5)@yS#={Tv|A%9)DsMxt1N=)PmE@>9mBY{Ml5y0#&< zSYhlJfIQ9~0QC{^!-((2-+P?Xcp_Gfd+IW^ezfi%Tv;za`0P?j+vjf`Q!=1y8se(} zYd!wVbwZ1j7;Q&a@IqNl_?08~Q^E>I?egSYHjuso0kqzUJ{F^kp9M%>f2@r}3(m@kKK^Vh{&m1!ZQaW0>F)N5 zFJ+b4P@*vp+7>dgUgC6XXM4rIkpR)Ao!!hYh@Xu=i>KsTtz7ttq!nFl@)o1qE-cwa zj0L#^^Qr0 zMq~Vr;jn{e%z-X8WR=~)DD_EY!FzyR*Lu^OJ-lQG52)$vu44-HXhBxtb#4j0iQ(N2 zHGJ;MXZ`U&|EKjbb7;(f9&N}fI-45SQ z0PQ8nDqPGxcd34HMW=o7MJxFETA9)B=@#up$O525%rpr~D#_lre+17R_pQ~aX_gu-V$KWtAm~dO_FpUCI*9R6}Y}s=(P(Y zq>+X(%7_^6K`VFM>MAqd;DvB!OZlEzKjf2By=-E>dv&hVN8!3vJF)J4US;^WQ(0qn z_0FkMZpJk?bLq*mv6Cp{0<|1~-rLn)p@Xl+saH>S9jbC(y#Bl|u>g7vLl!z3Coooe z`=G6;*vQ1XH0S9J#^@lEbTdU`ya@ZCt*F?@YNP#MM${Z#G_l`ww3Yu;C$k8Q`pZzX zl8>!p=ckj&s?-3lmN>)OuGCAxV9#A4cB;9VU_mhYuC_7pajpz()oVgr3Y4wX%dA7A z@-iH>gG==Ws&9lJU$TL4_$Od zId}=~z)SG55*P_zCyCmP?v^Y#khK9S6jtvIS3$&f zkj1z;5TF~5w#azevU9G3jznWuqxJsU+7Kl>B`s6I`UuM3jn)mji^4lQ$f6{a`;D&l zN|OnKlNPRm#uoiou|>ZXFT9Yo62cCSy^Oe5pvb>42I?V+rPC>1h1yI(%efl&ejf1? zt?!4F*amF*Ka|auzil3d2q(y*yzaKjHHKR<23-SP6YX1%7u{+r4FK>E#ujTsQ|0IF z?BLY<#18YHUQb-lxUvq==c{tvm8iYDts<(E<_>8`d)`&OTc!ce?hkVWjeHH-$fNl2K15S_n*zaQT0KVUcN?oT zZqYtuYp_OXUZ8!*Mx6HHoI$$@S)3(N(y8qjZ%@aJa(g%;H)I-b+gDK^gJTmD&-BIj zXh$t-ihRb&Y94mioItw?StuHb_Pq(fmkle8Q46eP7mE?cuq+49%$12xq*CeUF%GXY z-tH!3QPzlucWy%-0#K_1ft53yM>#M!VbMio7Z9^cu^f<0ruU5oWTEAVT6B>hvzlnE z4Ucw%6-JDm_u66+F_yA9+kOl9XGz?2>40`$dVZXjgrqh~b5#dP;a zrh2&yS(GQ%nyD;MkJhl;RDLc3f;|yq+si|Ac`+diRUKP&T~j=gQk2*6Xin1As|b*F zjfX_|}2G+Q}D`TgbBWRejsF{KLqLONJRJ%LcD_wZWwZ@etg#e2gILo}*`9TLo**yprzV$z*m z?eZ_RGT)ya0ZY(zEBa?+26fnw#anoR%=J<$G3e*%pyj9|l@fiR-r;=RY9F$m$w)$$ zpwY}18Zvo*S!MV|gUk<(fPe|~<;{bWgU@L5z?*xIS8U+4dI{4qG0oP>yy`cBKAlKR z!;mhhQ<&&wU3ioOV*3dze7{wau@lMe*vZPhZ600iGM8=wjcKjVC6X-HB zgT@Te)Ni|^jycy%kaM+#GneG9!~{Adg-#fYR5-IXE;J@AaJW<;3oItkhc*)yW7s=d zW>}gr%@noqZumZ}v22iU!OAWH9qa|p3YuR*e4(IFET0tqa ztP~;Jg1)N0{0|s?9MM9=#9-<4X!8HI7TU-H`AZeDEoiZgA0YOSo*$<)Pi+%l8Q04T z6DnoMwxC7C(N_6s>?j()bwB67C*#|MIY43Xp39}wA&XjC_R%6jtUVJCJP3~>!m7iI z@wVE={>QFu<^?%*JF77^Z9s|bHBGBgpxb6zYMqL4&Db&{(fD%wrw5BEF8y8}Cod6S zq|H@Pe8GG^e$D65|C=U6r36{<$p~5`s%eP*3hQKd2*1_|Llm_94dW{0pT5&9juU6+ zrbl^In#b3m@UNMcWRXRwK^9c90zLl`E+6lS!3tBH+crDEK8DSKCs`n{TYSIMoPsg2 zKtIr(xDH@%!5Q$o&{bGiABkOSTGQPwZ?wu|EX%S2Eh;#8-tR#Cdw3Ck+o{4s=2ji} zQF_qLpF!FS@mD22Vt}W@VZ?%?ag2QhAJ^XLl>b(ii$n^^GbNH9LwAv~OP7s&sE@yY{5biNQid#8jJQQ> z0Y;Yh*YULS0G3g2K?|?Z#@YKZY-IcmlIWQUljI+Z4`AD;EuEOWKx;9~XiCmW^Yj9o z*%k)hRd}ma1L=5N-$NnzhhH3hwzQv>mA^RJc5qs~eZNn@C*TwC3HStj0zQG#BJe*l WEfEmG#n`m~0000Px#@<~KNR2Ug;kiAXVAIh7aS)gEO&~jVwR7YR-Gk0-T!okp?y3+UsYuJ(7fwZowTGat!d9!6p(hb@P)Px$ph-kQR5%fxl`%`hKorOCE`^FXySg`4NUe*bn+SokKB`)ps24@v#p%kU7Q!x08--Y)&1tI;;wGn! z?+B3|IfltY(Ua8NH||&rnm${148!O&Ve|qN^9A^P>wC z72IMca15T|Hfo~~0A!p>UULzSnwY?4)Ci+6=QBT_7y`fb^V!1e_-E3Qg1rsLX4H;KyL cfBpjg0A(Th)=I=|Bme*a07*qoM6N<$f_voL*8l(j literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/disclosureIndicator.imageset/disclosureIndicator@3x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/disclosureIndicator.imageset/disclosureIndicator@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..788e682e81920c547fecd3287c9d10e8d77dfc9f GIT binary patch literal 684 zcmV;d0#p5oP)Px%W=TXrR7ef2moabCKorOCT>w?gAfRG|g@~j{Q&v6#NEHJN3>6;(7+O993{(sZ zFd!uO2&~kN>r`Q&jHt9~XH;n8OpfB@W%}oA?@XP3kK*0eN-3%XC9DoG6GDPs^t!EQrY~eH(+f(u6O>R-xBAIL z*Y9h~tgj7?F`mcsyInKTIsf#q}ps2imgWR;DZibb;3`CY}_61$bMp4 z*7oxUT4IW>UVdCv5iAt&I*OPH1-Pmr=0X9kq6juofVo%HA8eo|xPEOH6yXgGQAFwX z^Oc1t!W#;>uOfn=0Q)Gy`%D2euSpSqXZkQk*9cyz3*qcaE6qAWI{Kn3+JXc9*z2?& z1g{jG03E>vqE2M>Lf4HTC^`T-0Xl-YLUast4yXfuZz#l{bpYK7OdvW1ItEmc`@Nx) z%J0-yVAPshU(ePx)4@pEpR7ef27h6nJS8&eV*9CU5z(Uk4c44={sKrny@=*!DrbcVjuL?z(HIlbv>HQz5MNlr>n@-y&k8KN%d(Gq@9CVoy>~CK zZ3#@W%$%7yGiT17nKO`~f`UR>6hEYdlmmbpf9ZtM5UvLhcMyZ2*)=fGh5Sti;&Hpb zlqqdUW|;syGMG$Nd3}8&$@JDML%RTYfba1DwMjP<;z#+X2A*$~B`F(ZIfqJ;og+k~ z9OpC0@~qKr@6T;-UrcI8Csdr%h6c`a?OF!~cvmM|H;Kk1+|&z%v~vJ0c@D=PFEhBx2id3ft6DTcRuB2a+loT+# zT)=JF0-VhTG#Ulj?+0;wT>0sBH5w0r5q;(ogkLot5=Q+3Pcn{?uK>%QJzza}5Yj3t zz?7d4gj@Y`B%cq$Po6;V{(T6xwgO#Ph})txTLx$rT(0+AJYPe4dZJ9AMefM> z^$t}l=hwyI1nhqs54dW8>dgJq=IQU41wFXl|<4DM6Vb8H*O@N`Bxb8cpz}|CP=fh zdUZ%GD+5bmp~j<>mK!Bmc4{0Xc%1^{Pu12cnagO$_3OZwlqgv|dgKU5b8~=Q4c>hC z5QxPB5?=4<;lm)~fz4PIJ22z*!0+7)k?wAVg>OdzX8=f47a>55OR5i|7>Nqep&^B2 zQ8C91#MiHtI%jljY)o;i(4(Wsh%qt&x)Q}?qlU9~dpcgh$ErputL1Im)FqglPKfsR zLrQ5WWMbA5lSyeX*ttNOnSqRxCn2?*J&4#eaG#7NCWk_hRZ{~Nj8qSEjg49(Lg!tC zR#X@TuXhr^dlpl)9ykD7FJ02_*%Uhb{5g1!9@T82^Dj8o`0?FtRJp7>`4d^GvNwcT z=bJirE@1;-NQ2Gxv(hK6X=&f$OEj!Xr|at>aOaM?+z^hvdIe*Zl@J>l(cAed@7Xh- z;(Tj&_kxL#_wg#`6%AR2#m-K>^15jmTk71^t1x=#5JY=>6Z;8i!uI+DV`!=E931Qw z-0nZ|+ke0WTzWb~O8^rSF9?sg22jlI@QWAmhvn{FkgyW;fIEM5IUIE$2nt(suB<4{ zRh8KbrU!9)8pf)sKn@1M>~@18BLi6HVvmL#2q;+`85meuUT6fJPGCPjn=c40petR? z`LNqvCQ1&pue^v23Axx#joY_FsI5)u$H9B|k~>kQgha4%{$gVkHm?@vi4%`VLjykLtApYk z2gu7fKvt_NY+7Lx3P@}uivudoVN3kPXtlOtGG)`{10I2CF&mw~ zM#rD86eT$5_;;R=j~s&FO>j3(899#o1xH|U`9BS48nXvFIHR#SzrR2J8f@I(5)1zT XEYuUe*23n200000NkvXXu0mjfnyhZG literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/logoSmall.imageset/logoSmall@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/logoSmall.imageset/logoSmall@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a3e70aa1f4fc4c69f3dc3d24eed7198aea670423 GIT binary patch literal 2664 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

    Jox9NFV(h;SFMJMzT#!cOo*G9G#} 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 literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/Contents.json new file mode 100644 index 0000000000..10a333cf84 --- /dev/null +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "optionsHide.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "optionsHide@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "optionsHide@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/optionsHide.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/optionsHide.png new file mode 100644 index 0000000000000000000000000000000000000000..b63aa20bd413e8771f413e5f92fec05b03749dea GIT binary patch literal 862 zcmV-k1EKthP)Px&7)eAyR7efQS3hVIVHAJwyR;$>Qgo_+2T`%+%s(AE2#Qi&q>Bz6iaIDR4mvpL z;^yciI0>B;6ckZtu_zKmlQg;5q2QnmN-34#rlFV5_q*JMGk3XEP0|~3-@QM--+S-A z``!!F8n0q;VcTlGc7|A=BuzWTZJ3z0$ojjizsY)$G*8FW;L}86-`BOkawnr)@#8Vl z_H7~_)mnG7XJ$>Lv&6>DOyb~d6n6hIg1~zbj2i#V!KQc$gFcc%B z)vycCwn2Q#Ux6k$-m$LP@4J<8Sg?2nJZK#8_CT}j*j&9NMlis4HnAI-lQ}*oUAJF_ zMcWG*E8{pm!$#)Lcian_Hkd9SJ13X^Rgsc3-+vpIfS8#+YfZZYiVgxCL^0m5L*dB$ zCt~7TlrZ-a^Hc|}fEs+@jk#xaz#u|kE9NWdqwfgdG zZed|-CK-P&6?o^@hpvT}a|J6Wn>^^rrJj4!ip(V-bJ;S0RSI79!HZLqYb7^QP`fc z%Xb_2-UtQkCOIB3+!;z;l4Z98uz~9z9>FJvQt(>0xgDV(LQI*`CjV~}ia&5#GxpLA o&D>MszApdO`~hIyi+`!V0SGr#iL<3VO#lD@07*qoM6N<$f>>;k3;+NC literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/optionsHide@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/optionsHide@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5ff340df1e8ca836fb83863661030a597a67f91a GIT binary patch literal 1798 zcmV+h2l@DkP)Px*z)3_wRA>d|o9}BJMHt8D*-g@F8ltqszLSt*q{-#(l1qy%Rs?JPQ3ORSlorHy zQiS$}i1-JjAV?9!H$sKh`s0O&r7b0(SZt-{a=+4$q&6smC>7DrG_9BJj^Af@Fb)b@XnJg{OWrdN3qj9;svq+871m)0q70hm zJT+;jQnA?d3gvh{76`bMQXkEY9gspC0qic%nrh7?x&mcC7)ZoECnBR}akU6w;B@xd zt0d&xQpm1aWchuT1WijpL#br%$F(%TiY=bbkMES`y${iMlYW&Bv>b^nX-%)E;yqVa zB3G;SA`Y|eYyH*?%KY2LtJfGXeNb0 zSVz{?5BRbcXF-^NoP)5c`;i|7LMUTk0`&YqqW5AY*%iUry}1?fer~TMq|xpHYNlBi zJ1e<;Sy$(QjQjLjgJvVJ&a68#lrxGaIKLiv^ls=rU5?1kN1rdffjqmYCwL||_HLuS zvTUAe&dk6pUe7G)<2)ndi2)v3a?eXZqvzorFNLN*ws?l;vN*dqPeY>u%|>CC5|hj2 zUEut|fquO@bMG)+2TT^5QilW1*5-fi#TVAdT=&DjAUchO#p~f$`5!*>{-k-?$qKiX(Nb8dWW@5-$PEnc2UP<9g49p^P<|kaRTFAA8@HpU?l% zI&a?m5^t5K?YxlB2DNY6tns=xDyj!`QPZ@8Dl`Me<6CcwL~K7AP_tMW-QOSY{miS56wy4EjSs=?Pk7xAI*&Iv0B-GW1TEWmnwh!9JJige(y&}XY-rw4l{u0d-+@(~?=hKp z82Jb0ipIIg$w_M;%`P{P=sT(D`ir=}W9J2Y?trV4tI}X9pi82?bx&&h_TN=`ynaXW z-Zy~W;^a&D)a+dG+kF0p%K!uM-m`-Az32jeJ7oh(FtcXwS_UK&;}dZy0|XPqX*`Vxy$+dWT$#>Fxh*#iS);z<8Nwyt!ZX<2A5ie@$-QG6r=OY zot>R`Re2-1!ZBQ*hNYX;d^HXDZAGJaC6l@4ddnmdJ>#OKX;;wjJgW2FbRb9T#^yHw z?;4cSnZj{lO5W!2v7#fln!@-llPNr*DwOK!`4wZvkeXLZnwjD1)~0+da-3&P({wBf z&?dO|Nm%kNr+|+HyrSJCaS@-8FR8_m=NkRhd)20ynbO((RkXm4Y9ID2PjsP0YdIps zzb!>W@MPo}&vHI8;W;K&gWeIX8$QzR-i;e3eS&qQhkQJ`Y!P&uA8908I0b=+mMtBv z0;e#z$;oIj`Jl1lY!GPUqiCdxaBz{v(M6zgjl_|nTnb|_vt~^+tmvYpB_f#vR%R|u zVC4BoLV7|iuv*|8N9I{3f|)j}1#Sh;A&xA9oNgpA+JS;4SI0aX!E^3X(YsO^o%u7S znEGgTY>IarqKC|erRjlW4DqxJ-xB{@92p!j7)5AiVm2F^uN{k9H(~X3t}qh09aBU> zrV@RFD!5~Ds}*2%4wFOyd?ZEVV3rb-Ym(*yXHQ_ohc<}-9>1}|uq?Fr5| zI3Si|L*WuLe7%+q)|qv$6x3T5oIyD|H9sR_yG8fAFJE9i0?Hin%XI%#B+kU~XIxFN;h@(hX)o`|qpw1YvS%DM%iP)Rv zM(=WUtyuB3{xi;s!MP>b`s?oZE7gU#0oK(IcPhM{URS?Z+R%&7_D{7OXM=63?o#wc o`JZY9UB~v$6p@w>`={Ff0O!`blQX3AN&o-=07*qoM6N<$g1x7OMF0Q* literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/optionsHide@3x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/optionsHide.imageset/optionsHide@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c474eb9f0ddb46b87e1cb0e6e60344bb20ad331b GIT binary patch literal 2971 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 Rmcjr4002ovPDHLkV1n-w@9qEq literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/Contents.json new file mode 100644 index 0000000000..b22f58b0da --- /dev/null +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "plusWhite.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "plusWhite@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "plusWhite@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/plusWhite.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/plusWhite.png new file mode 100644 index 0000000000000000000000000000000000000000..4cceffccc87009d9b5810cf02a01ef4522663a89 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjjKx9jP7LeL$-D$|W_r3fhIsHM zCrAW7`2YX^LS#u2F;oJ_I?vnF%03cdW~Y`^&89d-@NnH>Ug3?ZNAbCfRj>fmQ&xFfE; Vbl1XfGl7m|@O1TaS?83{1OPEtOyU3l literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/plusWhite@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/plusWhite.imageset/plusWhite@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..69276aa008202c34600d9d40bdc119d511883f4e GIT binary patch literal 371 zcmV-(0gV2MP)Px$ElET{RA>e5S4#@QFc57-^foSZXI*qF)(dzMmwFqo;7$ZRfD6x4r_jPoNh!@V zP8Kf^GB3^i-b`7C&yR(|BE8t>awacl6neJ2_wQC;Z^kH=fFrwCq%3gF(6(or zpvcalpq!9oMJjoMLABQMg83@xtDMQ_ul&xhS;2jNad-UI|AMlow^|1;EDR0xU$=l& z=-k#Wo83;fXV7-QBj@d6`(vmE^J|nbY4d zsJ+TRfBx*-yUUiHWtM#Yx%`4f^4WJ@FZp*|=-3`uzJErX4DqwfIK!vGezL+~4$cxo)@xd*YJ0XCpZj h8W@-$#G1ed;%uTh8iDG)7lAR%;OXk;vd$@?2>}0L&~*R+ literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/Contents.json b/Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/Contents.json new file mode 100644 index 0000000000..10b396bde9 --- /dev/null +++ b/Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "server.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "server@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "server@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/server.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/server.png new file mode 100644 index 0000000000000000000000000000000000000000..68d0a3a91ddb55a457f0b9ecfc37f2dc4a20df03 GIT binary patch literal 21299 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 literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/server@2x.png b/Rocket.Chat/Resources/Assets.xcassets/Icons/server.imageset/server@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..faa77e0bcc1e726b5a0218a2115d6f0d82dda291 GIT binary patch literal 46941 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 VO%$60CRx)fYPT6U8!Z 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�)N8oedS-1?H?#05>i82YBWeo_b3%59zl^1 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 T&vsle7VuG1)l?}_G70`a&<;cD literal 0 HcmV?d00001 diff --git a/Rocket.Chat/Resources/cs.lproj/Localizable.strings b/Rocket.Chat/Resources/cs.lproj/Localizable.strings index 3aeeb37155..c9df3fd2a8 100644 --- a/Rocket.Chat/Resources/cs.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/cs.lproj/Localizable.strings @@ -92,14 +92,33 @@ "connection.server.redirect.alert.confirm" = "Yes, change the URL"; // Socket Connection +"connection.title" = "Sign in your server"; // TODO +"connection.button_connect" = "Connect"; // TODO "connection.offline.banner.message" = "Jste offline, zkuste se znovu připojit"; -"connection.connecting.banner.message" = "Connecting..."; +"connection.connecting.banner.message" = "Connecting..."; // TODO +"connection.waiting_for_network.banner.message" = "Waiting for network"; // TODO + +// Onboarding +"onboarding.label_welcome" = "Welcome to Rocket Chat"; // TODO +"onboarding.label_subtitle" = "Open Source Communication"; // TODO +"onboarding.button_connect_server" = "Connect with a server"; // TODO +"onboarding.button_create_server" = "Create a new server"; // TODO +"onboarding.button_join_community_prefix" = "Join in the community"; // TODO // Auth "auth.connect.button_connect" = "Připojit"; "auth.connect.ssl_required" = "Je nutné, aby Váš server podporoval protokol SSL"; "auth.connect.connecting" = "Připojení probíhá. Držte se pevně"; +"auth.email_auth_prefix" = "Login with "; // TODO +"auth.email_auth" = "e-mail"; // TODO +"auth.login_service_prefix" = "Continue with "; // TODO + +"auth.signup_title" = "Sign up"; // TODO +"auth.login.login_title" = "Login"; // TODO +"auth.login.button_login_title" = "Login"; // TODO +"auth.login.create_account_prefix" = "Don't have an account?"; // TODO +"auth.login.create_account" = "\nCreate an Account"; // TODO "auth.login.username.placeholder" = "Email or username"; "auth.login.password.placeholder" = "Password"; "auth.login.buttonRegister" = "Create new account"; diff --git a/Rocket.Chat/Resources/de.lproj/Localizable.strings b/Rocket.Chat/Resources/de.lproj/Localizable.strings index 888efedf6b..aab55515fb 100644 --- a/Rocket.Chat/Resources/de.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/de.lproj/Localizable.strings @@ -92,14 +92,33 @@ "connection.server.redirect.alert.confirm" = "Ja, URL aktualisieren"; // Socket Connection +"connection.title" = "Sign in your server"; // TODO +"connection.button_connect" = "Connect"; // TODO "connection.offline.banner.message" = "Sie sind offline. Versuche neu zu verbinden..."; "connection.connecting.banner.message" = "Verbinde..."; +"connection.waiting_for_network.banner.message" = "Waiting for network"; // TODO + +// Onboarding +"onboarding.label_welcome" = "Welcome to Rocket Chat"; // TODO +"onboarding.label_subtitle" = "Open Source Communication"; // TODO +"onboarding.button_connect_server" = "Connect with a server"; // TODO +"onboarding.button_create_server" = "Create a new server"; // TODO +"onboarding.button_join_community_prefix" = "Join in the community"; // TODO // Auth "auth.connect.button_connect" = "Verbinden"; "auth.connect.ssl_required" = "Der Server muss SSL unterstützen"; "auth.connect.connecting" = "Verbindung läuft. Bitte warten Sie kurz!"; +"auth.email_auth_prefix" = "Login with "; // TODO +"auth.email_auth" = "e-mail"; // TODO +"auth.login_service_prefix" = "Continue with "; // TODO + +"auth.signup_title" = "Sign up"; // TODO +"auth.login.login_title" = "Login"; // TODO +"auth.login.button_login_title" = "Login"; // TODO +"auth.login.create_account_prefix" = "Don't have an account?"; // TODO +"auth.login.create_account" = "\nCreate an Account"; // TODO "auth.login.username.placeholder" = "E-Mail oder Benutzername"; "auth.login.password.placeholder" = "Passwort"; "auth.login.buttonRegister" = "Neues Konto erstellen"; diff --git a/Rocket.Chat/Resources/el.lproj/Localizable.strings b/Rocket.Chat/Resources/el.lproj/Localizable.strings index 036c8ea72e..c22e97007f 100644 --- a/Rocket.Chat/Resources/el.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/el.lproj/Localizable.strings @@ -92,14 +92,33 @@ "connection.server.redirect.alert.confirm" = "Ναι, αλλάξτε το URL"; // Socket Connection +"connection.title" = "Sign in your server"; // TODO +"connection.button_connect" = "Connect"; // TODO "connection.offline.banner.message" = "Βρίσκεστε εκτός σύνδεσης, προσπαθήστε να συνδεθείτε ξανά"; "connection.connecting.banner.message" = "Συνδεόμαστε..."; +"connection.waiting_for_network.banner.message" = "Waiting for network"; // TODO + +// Onboarding +"onboarding.label_welcome" = "Welcome to Rocket Chat"; // TODO +"onboarding.label_subtitle" = "Open Source Communication"; // TODO +"onboarding.button_connect_server" = "Connect with a server"; // TODO +"onboarding.button_create_server" = "Create a new server"; // TODO +"onboarding.button_join_community_prefix" = "Join in the community"; // TODO // Auth "auth.connect.button_connect" = "Σύνδεση"; "auth.connect.ssl_required" = "Απαιτείται υποστήριξη SSL στον εξυπηρετητή"; "auth.connect.connecting" = "Σύνδεση σε εξέλιξη. Περιμένετε παρακαλώ"; +"auth.email_auth_prefix" = "Login with "; // TODO +"auth.email_auth" = "e-mail"; // TODO +"auth.login_service_prefix" = "Continue with "; // TODO + +"auth.signup_title" = "Sign up"; // TODO +"auth.login.login_title" = "Login"; // TODO +"auth.login.button_login_title" = "Login"; // TODO +"auth.login.create_account_prefix" = "Don't have an account?"; // TODO +"auth.login.create_account" = "\nCreate an Account"; // TODO "auth.login.username.placeholder" = "Email ή όνομα χρήστη"; "auth.login.password.placeholder" = "Συνθηματικό"; "auth.login.buttonRegister" = "Δημιουργήστε νέο λογαριασμό"; diff --git a/Rocket.Chat/Resources/en.lproj/Localizable.strings b/Rocket.Chat/Resources/en.lproj/Localizable.strings index 84f404ff17..408d8d8703 100644 --- a/Rocket.Chat/Resources/en.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/en.lproj/Localizable.strings @@ -92,14 +92,33 @@ "connection.server.redirect.alert.confirm" = "Yes, change the URL"; // Socket Connection +"connection.title" = "Sign in your server"; +"connection.button_connect" = "Connect"; "connection.offline.banner.message" = "You're offline, try connecting again"; "connection.connecting.banner.message" = "Connecting..."; +"connection.waiting_for_network.banner.message" = "Waiting for network"; + +// Onboarding +"onboarding.label_welcome" = "Welcome to Rocket Chat"; +"onboarding.label_subtitle" = "Open Source Communication"; +"onboarding.button_connect_server" = "Connect with a server"; +"onboarding.button_create_server" = "Create a new server"; +"onboarding.button_join_community_prefix" = "Join in the community"; // Auth "auth.connect.button_connect" = "Connect"; "auth.connect.ssl_required" = "It is required that your server supports SSL"; "auth.connect.connecting" = "Connection in progress. Hold tight"; +"auth.email_auth_prefix" = "Login with "; +"auth.email_auth" = "e-mail"; +"auth.login_service_prefix" = "Continue with "; + +"auth.signup_title" = "Sign up"; +"auth.login.login_title" = "Login"; +"auth.login.button_login_title" = "Login"; +"auth.login.create_account_prefix" = "Don't have an account?"; +"auth.login.create_account" = "\nCreate an Account"; "auth.login.username.placeholder" = "Email or username"; "auth.login.password.placeholder" = "Password"; "auth.login.buttonRegister" = "Create new account"; diff --git a/Rocket.Chat/Resources/es.lproj/Localizable.strings b/Rocket.Chat/Resources/es.lproj/Localizable.strings index df54426f34..80f65a25cf 100644 --- a/Rocket.Chat/Resources/es.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/es.lproj/Localizable.strings @@ -92,14 +92,33 @@ "connection.server.redirect.alert.confirm" = "Sí, cambia la URL"; // Socket Connection +"connection.title" = "Sign in your server"; // TODO +"connection.button_connect" = "Connect"; // TODO "connection.offline.banner.message" = "Estás fuera de línea, intenta conectarte de nuevo"; "connection.connecting.banner.message" = "Conectando ..."; +"connection.waiting_for_network.banner.message" = "Waiting for network"; // TODO + +// Onboarding +"onboarding.label_welcome" = "Welcome to Rocket Chat"; // TODO +"onboarding.label_subtitle" = "Open Source Communication"; // TODO +"onboarding.button_connect_server" = "Connect with a server"; // TODO +"onboarding.button_create_server" = "Create a new server"; // TODO +"onboarding.button_join_community_prefix" = "Join in the community"; // TODO // Auth "auth.connect.button_connect" = "Conectar"; "auth.connect.ssl_required" = "Se requiere que su servidor sea compatible con SSL"; "auth.connect.connecting" = "Conexión en progreso. Mantener apretado"; +"auth.email_auth_prefix" = "Login with "; // TODO +"auth.email_auth" = "e-mail"; // TODO +"auth.login_service_prefix" = "Continue with "; // TODO + +"auth.signup_title" = "Sign up"; // TODO +"auth.login.login_title" = "Login"; // TODO +"auth.login.button_login_title" = "Login"; // TODO +"auth.login.create_account_prefix" = "Don't have an account?"; // TODO +"auth.login.create_account" = "\nCreate an Account"; // TODO "auth.login.username.placeholder" = "Email or username"; "auth.login.password.placeholder" = "Password"; "auth.login.buttonRegister" = "Create new account"; diff --git a/Rocket.Chat/Resources/fr.lproj/Localizable.strings b/Rocket.Chat/Resources/fr.lproj/Localizable.strings index 261b9403cf..97d49a4f66 100644 --- a/Rocket.Chat/Resources/fr.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/fr.lproj/Localizable.strings @@ -92,14 +92,33 @@ "connection.server.redirect.alert.confirm" = "Oui, changez l'URL"; // Socket Connection +"connection.title" = "Sign in your server"; // TODO +"connection.button_connect" = "Connect"; // TODO "connection.offline.banner.message" = "Vous êtes déconnecté, essayez de nouveau"; "connection.connecting.banner.message" = "Connecter..."; +"connection.waiting_for_network.banner.message" = "Waiting for network"; // TODO + +// Onboarding +"onboarding.label_welcome" = "Welcome to Rocket Chat"; // TODO +"onboarding.label_subtitle" = "Open Source Communication"; // TODO +"onboarding.button_connect_server" = "Connect with a server"; // TODO +"onboarding.button_create_server" = "Create a new server"; // TODO +"onboarding.button_join_community_prefix" = "Join in the community"; // TODO // Auth "auth.connect.button_connect" = "Se connecter"; "auth.connect.ssl_required" = "Votre serveur doit supporter le SSL"; "auth.connect.connecting" = "Connexion en cours. Tenez bon."; +"auth.email_auth_prefix" = "Login with "; // TODO +"auth.email_auth" = "e-mail"; // TODO +"auth.login_service_prefix" = "Continue with "; // TODO + +"auth.signup_title" = "Sign up"; // TODO +"auth.login.login_title" = "Login"; // TODO +"auth.login.button_login_title" = "Login"; // TODO +"auth.login.create_account_prefix" = "Don't have an account?"; // TODO +"auth.login.create_account" = "\nCreate an Account"; // TODO "auth.login.username.placeholder" = "Email or username"; "auth.login.password.placeholder" = "Password"; "auth.login.buttonRegister" = "Create new account"; diff --git a/Rocket.Chat/Resources/pl.lproj/Localizable.strings b/Rocket.Chat/Resources/pl.lproj/Localizable.strings index 4ad3a8924f..23213a060e 100644 --- a/Rocket.Chat/Resources/pl.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/pl.lproj/Localizable.strings @@ -92,14 +92,33 @@ "connection.server.redirect.alert.confirm" = "Tak, zmień adres"; // Socket Connection +"connection.title" = "Sign in your server"; // TODO +"connection.button_connect" = "Connect"; // TODO "connection.offline.banner.message" = "Jesteś w trybie offline, połącz się ponownie"; "connection.connecting.banner.message" = "Łączenie..."; +"connection.waiting_for_network.banner.message" = "Waiting for network"; // TODO + +// Onboarding +"onboarding.label_welcome" = "Welcome to Rocket Chat"; // TODO +"onboarding.label_subtitle" = "Open Source Communication"; // TODO +"onboarding.button_connect_server" = "Connect with a server"; // TODO +"onboarding.button_create_server" = "Create a new server"; // TODO +"onboarding.button_join_community_prefix" = "Join in the community"; // TODO // Auth "auth.connect.button_connect" = "Połącz"; "auth.connect.ssl_required" = "Wymagane jest, aby Twój serwer wspierał SSL"; "auth.connect.connecting" = "Trwa łączenie. Trzymaj się"; +"auth.email_auth_prefix" = "Login with "; // TODO +"auth.email_auth" = "e-mail"; // TODO +"auth.login_service_prefix" = "Continue with "; // TODO + +"auth.signup_title" = "Sign up"; // TODO +"auth.login.login_title" = "Login"; // TODO +"auth.login.button_login_title" = "Login"; // TODO +"auth.login.create_account_prefix" = "Don't have an account?"; // TODO +"auth.login.create_account" = "\nCreate an Account"; // TODO "auth.login.username.placeholder" = "Email or username"; "auth.login.password.placeholder" = "Password"; "auth.login.buttonRegister" = "Create new account"; diff --git a/Rocket.Chat/Resources/pt-BR.lproj/Localizable.strings b/Rocket.Chat/Resources/pt-BR.lproj/Localizable.strings index a9c5cfa1a7..f473b680d7 100644 --- a/Rocket.Chat/Resources/pt-BR.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/pt-BR.lproj/Localizable.strings @@ -92,14 +92,33 @@ "connection.server.redirect.alert.confirm" = "Sim, mudar a URL"; // Socket Connection +"connection.title" = "Conecte seu servidor"; +"connection.button_connect" = "Conectar"; "connection.offline.banner.message" = "Você está offline, conecte novamente"; "connection.connecting.banner.message" = "Conectando..."; +"connection.waiting_for_network.banner.message" = "Aguardando conexão"; + +// Onboarding +"onboarding.label_welcome" = "Bem-vindo ao Rocket Chat"; +"onboarding.label_subtitle" = "Comunicação Open Source"; +"onboarding.button_connect_server" = "Conectar um servidor"; +"onboarding.button_create_server" = "Criar um servidor"; +"onboarding.button_join_community_prefix" = "Junte-se a comunidade"; // Auth "auth.connect.button_connect" = "Conectar"; "auth.connect.ssl_required" = "É necessário que seu servidor suporte SSL"; "auth.connect.connecting" = "Conectando no servidor"; +"auth.email_auth_prefix" = "Entrar com "; +"auth.email_auth" = "e-mail"; +"auth.login_service_prefix" = "Continuar com "; + +"auth.signup_title" = "Cadastre-se"; +"auth.login.login_title" = "Entrar"; +"auth.login.button_login_title" = "Entrar"; +"auth.login.create_account_prefix" = "Não tem uma conta?"; +"auth.login.create_account" = "\nCriar uma conta"; "auth.login.username.placeholder" = "E-mail ou usuário"; "auth.login.password.placeholder" = "Senha"; "auth.login.buttonRegister" = "Criar uma conta"; diff --git a/Rocket.Chat/Resources/ru.lproj/Localizable.strings b/Rocket.Chat/Resources/ru.lproj/Localizable.strings index df0a4b2b87..1b649786a1 100644 --- a/Rocket.Chat/Resources/ru.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/ru.lproj/Localizable.strings @@ -88,14 +88,33 @@ "connection.server.redirect.alert.confirm" = "Да, изменить URL-адрес"; // Socket Connection +"connection.title" = "Sign in your server"; // TODO +"connection.button_connect" = "Connect"; // TODO "connection.offline.banner.message" = "Вы в автономном режиме, попробуйте подключиться снова"; "connection.connecting.banner.message" = "Соединение..."; +"connection.waiting_for_network.banner.message" = "Waiting for network"; // TODO + +// Onboarding +"onboarding.label_welcome" = "Welcome to Rocket Chat"; // TODO +"onboarding.label_subtitle" = "Open Source Communication"; // TODO +"onboarding.button_connect_server" = "Connect with a server"; // TODO +"onboarding.button_create_server" = "Create a new server"; // TODO +"onboarding.button_join_community_prefix" = "Join in the community"; // TODO // Auth "auth.connect.button_connect" = "Соединение"; "auth.connect.ssl_required" = "Требуется, чтобы ваш сервер поддерживал SSL"; "auth.connect.connecting" = "Выполняется соединение"; +"auth.email_auth_prefix" = "Login with "; // TODO +"auth.email_auth" = "e-mail"; // TODO +"auth.login_service_prefix" = "Continue with "; // TODO + +"auth.signup_title" = "Sign up"; // TODO +"auth.login.login_title" = "Login"; // TODO +"auth.login.button_login_title" = "Login"; // TODO +"auth.login.create_account_prefix" = "Don't have an account?"; // TODO +"auth.login.create_account" = "\nCreate an Account"; // TODO "auth.login.username.placeholder" = "Электронная почта или имя пользователя"; "auth.login.password.placeholder" = "Пароль"; "auth.login.buttonRegister" = "Создать новый аккаунт"; diff --git a/Rocket.Chat/Storyboards/Auth.storyboard b/Rocket.Chat/Storyboards/Auth.storyboard index 2378b08688..bca201e30c 100644 --- a/Rocket.Chat/Storyboards/Auth.storyboard +++ b/Rocket.Chat/Storyboards/Auth.storyboard @@ -1,811 +1,1226 @@ - - + + - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - + + - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + + + + + + + + + + + + + + - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + - - + + - + - - + + - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + - - + + - + - - + + - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - + + + + - - + + - + - - + + - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - - + + - + - - + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + - + + + + + + + + + + + + + + + + - + - - - - - + + + + + + + + + + + + - - - - - + - + - - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + - + + + + + + diff --git a/Rocket.Chat/Theme/NotThemeableViews.swift b/Rocket.Chat/Theme/NotThemeableViews.swift index 5eec929203..2359db598b 100644 --- a/Rocket.Chat/Theme/NotThemeableViews.swift +++ b/Rocket.Chat/Theme/NotThemeableViews.swift @@ -12,6 +12,10 @@ class NotThemeableView: UIView { override var theme: Theme? { return nil } } +class NotThemeableTableView: UITableView { + override var theme: Theme? { return nil } +} + class NotThemeableNavigationBar: UINavigationBar { override var theme: Theme? { return nil } } diff --git a/Rocket.Chat/Views/Buttons/StyledButton.swift b/Rocket.Chat/Views/Buttons/StyledButton.swift new file mode 100644 index 0000000000..0293573525 --- /dev/null +++ b/Rocket.Chat/Views/Buttons/StyledButton.swift @@ -0,0 +1,141 @@ +// +// StyledButton.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 01/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +final class StyledButton: UIButton { + + // MARK: - Nested Types + + enum Style: Int { + case solid = 0, outline + } + + // MARK: - Properties + + var style = Style.solid + var fontWeight = UIFont.Weight.regular + @IBInspectable var fontWeightDescription: String = "Regular" { + didSet { + switch fontWeightDescription { + case "Regular": + fontWeight = UIFont.Weight.regular + case "Light": + fontWeight = UIFont.Weight.light + case "Medium": + fontWeight = UIFont.Weight.medium + case "Bold": + fontWeight = UIFont.Weight.bold + default: + fontWeight = UIFont.Weight.regular + } + } + } + @IBInspectable var cornerRadius: CGFloat = 2 + @IBInspectable var borderWidth: CGFloat = 1 + @IBInspectable var buttonColor: UIColor = UIColor.RCSkyBlue() + @IBInspectable var borderColor: UIColor = UIColor.RCSkyBlue() + @IBInspectable var textColor: UIColor = UIColor.white + @IBInspectable var fontSize: CGFloat = 16.0 + @IBInspectable var styleRaw: Int = 0 { + didSet { + guard let style = Style(rawValue: styleRaw) else { + return assertionFailure("Value inputed on IB doesn't match any valid option") + } + + self.style = style + } + } + + lazy var loadingIndicator: UIActivityIndicatorView = { + let activity = UIActivityIndicatorView(activityIndicatorStyle: .gray) + return activity + }() + + var isLoading = false + var titleBeforeLoading: String? + + // MARK: - Life Cycle + + override func awakeFromNib() { + super.awakeFromNib() + + applyStyle() + } + + override func imageRect(forContentRect contentRect: CGRect) -> CGRect { + var imageRect = contentRect + imageRect.origin = CGPoint(x: 15, y: 11) + imageRect.size = CGSize(width: 24, height: 24) + return imageRect + } + + // MARK: Style Modifiers + + func applyStyle() { + layer.cornerRadius = cornerRadius + clipsToBounds = true + + switch style { + case .solid: + backgroundColor = buttonColor + layer.borderColor = borderColor.cgColor + layer.borderWidth = borderWidth + setTitleColor(textColor, for: UIControlState()) + setTitleShadowColor(nil, for: UIControlState()) + titleLabel?.font = UIFont.systemFont(ofSize: fontSize, weight: fontWeight) + case .outline: + backgroundColor = UIColor.clear + layer.borderColor = borderColor.cgColor + layer.borderWidth = borderWidth + setTitleColor(textColor, for: UIControlState()) + titleLabel?.font = UIFont.systemFont(ofSize: fontSize, weight: fontWeight) + } + } + + // MARK: - Loading + + func startLoading() { + isLoading = true + titleBeforeLoading = title(for: UIControlState()) + setTitle(nil, for: UIControlState()) + + switch style { + case .solid: + if buttonColor.isBrightColor() { + loadingIndicator.activityIndicatorViewStyle = .gray + } else { + loadingIndicator.activityIndicatorViewStyle = .white + } + case .outline: + loadingIndicator.color = borderColor + loadingIndicator.tintColor = borderColor + } + + setNeedsLayout() + layoutIfNeeded() + let width = frame.width + loadingIndicator.frame = CGRect( + x: (width / 2 - loadingIndicator.frame.width / 2), + y: (frame.height / 2 - loadingIndicator.frame.height / 2), + width: loadingIndicator.frame.width, + height: loadingIndicator.frame.height + ) + + addSubview(loadingIndicator) + loadingIndicator.startAnimating() + } + + func stopLoading() { + isLoading = false + loadingIndicator.stopAnimating() + loadingIndicator.removeFromSuperview() + setTitle(titleBeforeLoading, for: UIControlState()) + } + +} diff --git a/Rocket.Chat/Views/Cells/Auth/AuthSeparatorTableViewCell.swift b/Rocket.Chat/Views/Cells/Auth/AuthSeparatorTableViewCell.swift new file mode 100644 index 0000000000..bda8cb85f1 --- /dev/null +++ b/Rocket.Chat/Views/Cells/Auth/AuthSeparatorTableViewCell.swift @@ -0,0 +1,15 @@ +// +// AuthSeparatorTableViewCell.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 05/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class AuthSeparatorTableViewCell: UITableViewCell { + + static let rowHeight: CGFloat = 31 + +} diff --git a/Rocket.Chat/Views/Cells/Auth/AuthSeparatorTableViewCell.xib b/Rocket.Chat/Views/Cells/Auth/AuthSeparatorTableViewCell.xib new file mode 100644 index 0000000000..a86262f23c --- /dev/null +++ b/Rocket.Chat/Views/Cells/Auth/AuthSeparatorTableViewCell.xib @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Rocket.Chat/Views/Cells/Auth/EmailAuthTableViewCell.swift b/Rocket.Chat/Views/Cells/Auth/EmailAuthTableViewCell.swift new file mode 100644 index 0000000000..2a2b66d49b --- /dev/null +++ b/Rocket.Chat/Views/Cells/Auth/EmailAuthTableViewCell.swift @@ -0,0 +1,23 @@ +// +// EmailAuthTableViewCell.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 06/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class EmailAuthTableViewCell: UITableViewCell { + + static let rowHeight: CGFloat = 164 + static let rowHeightBelowSeparator: CGFloat = 134 + + @IBOutlet weak var loginButton: StyledButton! + @IBOutlet weak var registerButton: StyledButton! { + didSet { + registerButton.setTitle(localized("auth.login.buttonRegister"), for: .normal) + } + } + +} diff --git a/Rocket.Chat/Views/Cells/Auth/EmailAuthTableViewCell.xib b/Rocket.Chat/Views/Cells/Auth/EmailAuthTableViewCell.xib new file mode 100644 index 0000000000..17ecd3dfda --- /dev/null +++ b/Rocket.Chat/Views/Cells/Auth/EmailAuthTableViewCell.xib @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Rocket.Chat/Views/Cells/Auth/LoginServiceTableViewCell.swift b/Rocket.Chat/Views/Cells/Auth/LoginServiceTableViewCell.swift new file mode 100644 index 0000000000..81aaece8dd --- /dev/null +++ b/Rocket.Chat/Views/Cells/Auth/LoginServiceTableViewCell.swift @@ -0,0 +1,77 @@ +// +// LoginServiceTableViewCell.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 05/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class LoginServiceTableViewCell: UITableViewCell { + + static let identifier = "LoginService" + static let rowHeight: CGFloat = 56 + static let firstRowHeight: CGFloat = 82 + static let lastRowHeight: CGFloat = 52 + + @IBOutlet weak var loginServiceButton: StyledButton! + @IBOutlet weak var loginServiceBottomConstraint: NSLayoutConstraint! + + var defaultTextColor: UIColor! + var defaultBorderColor: UIColor! + var defaultButtonColor: UIColor! + + var loginService: LoginService! { + didSet { + updateLoginService() + } + } + + override func awakeFromNib() { + super.awakeFromNib() + defaultTextColor = loginServiceButton.textColor + defaultBorderColor = loginServiceButton.borderColor + defaultButtonColor = loginServiceButton.buttonColor + } + + func updateLoginService() { + if let icon = loginService.type.icon { + loginServiceButton.style = .outline + loginServiceButton.textColor = defaultTextColor + loginServiceButton.borderColor = defaultBorderColor + loginServiceButton.buttonColor = defaultButtonColor + loginServiceButton.applyStyle() + + let prefix = NSAttributedString( + string: localized("auth.login_service_prefix"), + attributes: [ + NSAttributedStringKey.font: UIFont.systemFont(ofSize: 16, weight: .regular) + ] + ) + let service = NSAttributedString( + string: loginService.service?.capitalized ?? "", + attributes: [ + NSAttributedStringKey.font: UIFont.systemFont(ofSize: 16, weight: .bold) + ] + ) + + let combinedString = NSMutableAttributedString(attributedString: prefix) + combinedString.append(service) + + loginServiceButton.setAttributedTitle(combinedString, for: .normal) + loginServiceButton.setImage(icon, for: .normal) + } else { + loginServiceButton.style = .solid + loginServiceButton.textColor = UIColor(hex: loginService.buttonLabelColor) + loginServiceButton.borderColor = .clear + loginServiceButton.buttonColor = UIColor(hex: loginService.buttonColor) + loginServiceButton.fontSize = 16 + loginServiceButton.fontWeight = .bold + loginServiceButton.applyStyle() + + loginServiceButton.setTitle(loginService.buttonLabelText, for: .normal) + } + } + +} diff --git a/Rocket.Chat/Views/Cells/Auth/LoginServiceTableViewCell.xib b/Rocket.Chat/Views/Cells/Auth/LoginServiceTableViewCell.xib new file mode 100644 index 0000000000..6c8f3fb8d1 --- /dev/null +++ b/Rocket.Chat/Views/Cells/Auth/LoginServiceTableViewCell.xib @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Rocket.Chat/Views/Cells/Auth/ShowMoreSeparatorTableViewCell.swift b/Rocket.Chat/Views/Cells/Auth/ShowMoreSeparatorTableViewCell.swift new file mode 100644 index 0000000000..285629d66d --- /dev/null +++ b/Rocket.Chat/Views/Cells/Auth/ShowMoreSeparatorTableViewCell.swift @@ -0,0 +1,23 @@ +// +// ShowMoreSeparatorTableViewCell.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 06/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +class ShowMoreSeparatorTableViewCell: UITableViewCell { + + static let rowHeight: CGFloat = 76 + + @IBOutlet weak var showMoreButton: UIButton! + + var showOrHideLoginServices: (() -> Void)? + + @IBAction func showMoreButtonDidPressed() { + showOrHideLoginServices?() + } + +} diff --git a/Rocket.Chat/Views/Cells/Auth/ShowMoreSeparatorTableViewCell.xib b/Rocket.Chat/Views/Cells/Auth/ShowMoreSeparatorTableViewCell.xib new file mode 100644 index 0000000000..0fb6757a77 --- /dev/null +++ b/Rocket.Chat/Views/Cells/Auth/ShowMoreSeparatorTableViewCell.xib @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Rocket.Chat/Views/Chat/ChatTitleView.swift b/Rocket.Chat/Views/Chat/ChatTitleView.swift index ba0506d1ee..25b7ebde97 100644 --- a/Rocket.Chat/Views/Chat/ChatTitleView.swift +++ b/Rocket.Chat/Views/Chat/ChatTitleView.swift @@ -24,6 +24,15 @@ final class ChatTitleView: UIView { } } + var state: SocketConnectionState = SocketManager.sharedInstance.state { + didSet { + updateConnectionState() + } + } + + @IBOutlet weak var viewLoading: UIView! + @IBOutlet weak var labelLoading: UILabel! + override var intrinsicContentSize: CGSize { return UILayoutFittingExpandedSize } @@ -38,6 +47,26 @@ final class ChatTitleView: UIView { let image = UIImage(named: viewModel.imageName)?.imageWithTint(viewModel.iconColor) buttonTitle.setImage(image, for: .normal) + + updateConnectionState() + } + } + + internal func updateConnectionState() { + if state == .connecting || state == .waitingForNetwork { + viewLoading?.isHidden = false + buttonTitle?.isHidden = true + + if state == .connecting { + labelLoading?.text = localized("connection.connecting.banner.message") + } + + if state == .waitingForNetwork { + labelLoading?.text = localized("connection.waiting_for_network.banner.message") + } + } else { + buttonTitle?.isHidden = false + viewLoading?.isHidden = true } } diff --git a/Rocket.Chat/Views/Chat/ChatTitleView.xib b/Rocket.Chat/Views/Chat/ChatTitleView.xib index 9b17524794..09c34cc614 100644 --- a/Rocket.Chat/Views/Chat/ChatTitleView.xib +++ b/Rocket.Chat/Views/Chat/ChatTitleView.xib @@ -1,5 +1,5 @@ - + @@ -39,22 +39,55 @@ + + + + + + + diff --git a/Rocket.Chat/Views/Subscriptions/ServersListView.swift b/Rocket.Chat/Views/Subscriptions/ServersListView.swift index a486a71ec2..c851033449 100644 --- a/Rocket.Chat/Views/Subscriptions/ServersListView.swift +++ b/Rocket.Chat/Views/Subscriptions/ServersListView.swift @@ -60,6 +60,8 @@ final class ServersListView: UIView { } } + var presentAddServer: (() -> Void)? + private func animates(_ animations: @escaping VoidCompletion, completion: VoidCompletion? = nil) { UIView.animate(withDuration: 0.15, delay: 0, options: UIViewAnimationOptions(rawValue: 7 << 16), animations: { animations() @@ -107,7 +109,7 @@ final class ServersListView: UIView { // MARK: Server Management @IBAction func buttonAddNewServerDidPressed(sender: Any) { - WindowManager.open(.auth(serverUrl: "", credentials: nil)) + presentAddServer?() } func selectServer(at indexPath: IndexPath) { diff --git a/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.swift b/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.swift index 0157585be0..10b4a40e8e 100644 --- a/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.swift +++ b/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.swift @@ -16,6 +16,15 @@ final class SubscriptionsTitleView: UIView { weak var delegate: SubscriptionsTitleViewDelegate? + var state: SocketConnectionState = SocketManager.sharedInstance.state { + didSet { + updateConnectionState() + } + } + + @IBOutlet weak var viewLoading: UIStackView! + @IBOutlet weak var labelLoading: UILabel! + @IBOutlet weak var labelMessages: UILabel! { didSet { labelMessages.text = localized("subscriptions.messages") @@ -49,6 +58,24 @@ final class SubscriptionsTitleView: UIView { } } + internal func updateConnectionState() { + if state == .connecting || state == .waitingForNetwork { + viewLoading?.isHidden = false + labelMessages?.isHidden = true + + if state == .connecting { + labelLoading?.text = localized("connection.connecting.banner.message") + } + + if state == .waitingForNetwork { + labelLoading?.text = localized("connection.waiting_for_network.banner.message") + } + } else { + labelMessages?.isHidden = false + viewLoading?.isHidden = true + } + } + override var intrinsicContentSize: CGSize { if #available(iOS 11.0, *) { return UILayoutFittingExpandedSize diff --git a/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.xib b/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.xib index 4586502362..e4de411b05 100644 --- a/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.xib +++ b/Rocket.Chat/Views/Subscriptions/SubscriptionsTitleView.xib @@ -1,5 +1,5 @@ - + @@ -18,6 +18,20 @@ + diff --git a/Rocket.Chat/Views/TextFields/StyledTextField.swift b/Rocket.Chat/Views/TextFields/StyledTextField.swift new file mode 100644 index 0000000000..40c79f0a92 --- /dev/null +++ b/Rocket.Chat/Views/TextFields/StyledTextField.swift @@ -0,0 +1,80 @@ +// +// StyledTextField.swift +// Rocket.Chat +// +// Created by Filipe Alvarenga on 01/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +final class StyledTextField: VOTextField { + + @IBInspectable var leftIcon: UIImage? + lazy var iconView: UIImageView = { + let iconView = UIImageView(frame: CGRect(x: 0.0, y: 0.0, width: 20, height: 20)) + iconView.contentMode = .center + iconView.image = self.leftIcon + + return iconView + }() + + override func draw(_ rect: CGRect) { + super.draw(rect) + + leftView = iconView + leftViewMode = .always + applyStyle() + } + + override func textRect(forBounds bounds: CGRect) -> CGRect { + return bounds.insetBy(dx: leftIcon != nil ? 45 : 15, dy: 0) + } + + override func leftViewRect(forBounds bounds: CGRect) -> CGRect { + let defaultRect = super.leftViewRect(forBounds: bounds) + return CGRect( + x: 15, + y: defaultRect.origin.y, + width: defaultRect.width, + height: defaultRect.height + ) + } + + override func editingRect(forBounds bounds: CGRect) -> CGRect { + return bounds.insetBy(dx: leftIcon != nil ? 45 : 15, dy: 0) + } + + override func clearButtonRect(forBounds bounds: CGRect) -> CGRect { + let defaultRect = super.clearButtonRect(forBounds: bounds) + return CGRect( + x: defaultRect.origin.x - 10, + y: defaultRect.origin.y, + width: defaultRect.width, + height: defaultRect.height + ) + } + + func applyStyle() { + iconView.image = leftIcon + + clearButtonMode = .whileEditing + + textColor = UIColor.RCTextFieldGray() + let placeholderText = placeholder ?? "" + let placeholderAttributes = NSAttributedString( + string: placeholderText, + attributes: [ + NSAttributedStringKey.foregroundColor: UIColor.RCTextFieldGray(), + NSAttributedStringKey.font: UIFont.systemFont(ofSize: 17, weight: .regular) + ] + ) + + attributedPlaceholder = placeholder != nil ? placeholderAttributes : nil + + layer.cornerRadius = 2 + layer.borderWidth = 1.5 + layer.borderColor = UIColor.RCTextFieldBorderGray().cgColor + } + +} diff --git a/Rocket.ChatTests/Extensions/Models/SubscriptionExtensionsSpec.swift b/Rocket.ChatTests/Extensions/Models/SubscriptionExtensionsSpec.swift index 5d249e2cd8..17eaa5f89c 100644 --- a/Rocket.ChatTests/Extensions/Models/SubscriptionExtensionsSpec.swift +++ b/Rocket.ChatTests/Extensions/Models/SubscriptionExtensionsSpec.swift @@ -65,6 +65,100 @@ class SubscriptionExtensionsSpec: XCTestCase, RealmTestCase { } +// MARK: URL generation + +extension SubscriptionExtensionsSpec { + + func testURLGenerationChannelSubscription() { + let authSettings = AuthSettings() + authSettings.siteURL = "https://foo.bar" + + let auth = Auth() + auth.settings = authSettings + + let subscription = Subscription() + subscription.auth = auth + subscription.name = "baz" + subscription.type = .channel + + XCTAssertEqual(subscription.externalURL()?.absoluteString, "https://foo.bar/channel/baz") + } + + func testURLGenerationGroupSubscription() { + let authSettings = AuthSettings() + authSettings.siteURL = "https://foo.bar" + + let auth = Auth() + auth.settings = authSettings + + let subscription = Subscription() + subscription.auth = auth + subscription.name = "baz" + subscription.type = .group + + XCTAssertEqual(subscription.externalURL()?.absoluteString, "https://foo.bar/group/baz") + } + + func testURLGenerationDirectMessageSubscription() { + let authSettings = AuthSettings() + authSettings.siteURL = "https://foo.bar" + + let auth = Auth() + auth.settings = authSettings + + let subscription = Subscription() + subscription.auth = auth + subscription.name = "baz" + subscription.type = .directMessage + + XCTAssertEqual(subscription.externalURL()?.absoluteString, "https://foo.bar/direct/baz") + } + + func testURLGenerationInvalidSiteURLSubscription() { + let authSettings = AuthSettings() + + let auth = Auth() + auth.settings = authSettings + + let subscription = Subscription() + subscription.auth = auth + subscription.name = "baz" + + XCTAssertNil(subscription.externalURL()) + } + + func testURLGenerationInvalidSettingsSubscription() { + let auth = Auth() + + let subscription = Subscription() + subscription.auth = auth + subscription.name = "baz" + + XCTAssertNil(subscription.externalURL()) + } + + func testURLGenerationEmptyAuthSubscription() { + let subscription = Subscription() + subscription.name = "baz" + + XCTAssertNil(subscription.externalURL()) + } + + func testURLGenerationEmptyNameSubscription() { + let authSettings = AuthSettings() + authSettings.siteURL = "https://foo.bar" + + let auth = Auth() + auth.settings = authSettings + + let subscription = Subscription() + subscription.auth = auth + + XCTAssertNil(subscription.externalURL()) + } + +} + // MARK: Information Viewing Options extension SubscriptionExtensionsSpec { diff --git a/Rocket.ChatTests/Extensions/StringExtensionSpec.swift b/Rocket.ChatTests/Extensions/StringExtensionSpec.swift index b7ccb6571e..f17e42854c 100644 --- a/Rocket.ChatTests/Extensions/StringExtensionSpec.swift +++ b/Rocket.ChatTests/Extensions/StringExtensionSpec.swift @@ -34,6 +34,19 @@ class StringExtensionSpec: XCTestCase { XCTAssert(string.sha256() == hash, "String SHA-256 cryptographic is correct") } + // MARK: Removing Last Slash (when needed) + + func testRemovingLastSlashURLPresent() { + XCTAssertEqual("http://foo.bar/".removingLastSlashIfNeeded(), "http://foo.bar") + XCTAssertEqual("http://foo.bar/foo/bar/".removingLastSlashIfNeeded(), "http://foo.bar/foo/bar") + XCTAssertEqual("http://foo.bar/foo/bar/?12345".removingLastSlashIfNeeded(), "http://foo.bar/foo/bar/?12345") + } + + func testRemovingLastSlashURLNotPresent() { + XCTAssertEqual("foo".removingLastSlashIfNeeded(), "foo") + XCTAssertEqual("http://foo.bar".removingLastSlashIfNeeded(), "http://foo.bar") + } + // MARK: Range func testRangesOf() { diff --git a/Rocket.ChatTests/Managers/Socket/SocketManagerConnectionHandlerSpec.swift b/Rocket.ChatTests/Managers/Socket/SocketManagerConnectionHandlerSpec.swift new file mode 100644 index 0000000000..4574bafe43 --- /dev/null +++ b/Rocket.ChatTests/Managers/Socket/SocketManagerConnectionHandlerSpec.swift @@ -0,0 +1,83 @@ +// +// SocketManagerConnectionHandlerSpec.swift +// Rocket.ChatTests +// +// Created by Rafael Kellermann Streit on 12/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import XCTest +import SwiftyJSON + +@testable import Rocket_Chat + +class TestSocketConnectionHandler: SocketConnectionHandler { + + var state: SocketConnectionState = .disconnected + + func socketDidChangeState(state: SocketConnectionState) { + self.state = state + } +} + +class SocketManagerConnectionHandlerSpec: XCTestCase { + + let connectionHandlerToken = "socketmanager-handler" + + func testSocketStateHasChangedNotification() { + let instance = TestSocketConnectionHandler() + + SocketManager.addConnectionHandler(token: connectionHandlerToken, handler: instance) + + SocketManager.sharedInstance.state = .connected + XCTAssertEqual(instance.state, .connected) + + SocketManager.sharedInstance.state = .disconnected + XCTAssertEqual(instance.state, .disconnected) + + SocketManager.sharedInstance.state = .waitingForNetwork + XCTAssertEqual(instance.state, .waitingForNetwork) + + SocketManager.sharedInstance.state = .connecting + XCTAssertEqual(instance.state, .connecting) + } + + func testSocketStateHasNotChangedNotificationOnRemovingHandler() { + let instance = TestSocketConnectionHandler() + + SocketManager.addConnectionHandler(token: connectionHandlerToken, handler: instance) + + SocketManager.sharedInstance.state = .connected + XCTAssertEqual(instance.state, .connected) + + SocketManager.removeConnectionHandler(token: connectionHandlerToken) + + SocketManager.sharedInstance.state = .disconnected + XCTAssertNotEqual(instance.state, .disconnected) + XCTAssertEqual(instance.state, .connected) + } + + func testSocketStateHasNotChangedNotificationOnRemovingAllHandlers() { + let instance = TestSocketConnectionHandler() + + SocketManager.addConnectionHandler(token: connectionHandlerToken, handler: instance) + + SocketManager.sharedInstance.state = .connected + XCTAssertEqual(instance.state, .connected) + + SocketManager.sharedInstance.connectionHandlers.removeAllObjects() + + SocketManager.sharedInstance.state = .disconnected + XCTAssertNotEqual(instance.state, .disconnected) + XCTAssertEqual(instance.state, .connected) + } + + func testSocketStateHasNotChangedNotificationOnNotAddingHandler() { + let instance = TestSocketConnectionHandler() + + SocketManager.sharedInstance.state = .connected + XCTAssertNotEqual(instance.state, .connected) + XCTAssertEqual(instance.state, .disconnected) + } + +} diff --git a/Rocket.ChatTests/Models/AuthSettingsSpec.swift b/Rocket.ChatTests/Models/AuthSettingsSpec.swift index b55fdd6cda..418f145485 100644 --- a/Rocket.ChatTests/Models/AuthSettingsSpec.swift +++ b/Rocket.ChatTests/Models/AuthSettingsSpec.swift @@ -18,12 +18,47 @@ extension AuthSettings { let settings = AuthSettings() settings.siteURL = "https://open.rocket.chat" settings.cdnPrefixURL = "https://open.rocket.chat" + return settings } } class AuthSettingsSpec: XCTestCase { + // MARK: Base URLs + + func testBaseURLsMappingNoSlashInTheEnd() { + let json = JSON([[ + "_id": "Site_Url", + "value": "https://foo.bar" + ], [ + "_id": "CDN_PREFIX", + "value": "https://cdn.foo.bar" + ]]) + + let settings = AuthSettings() + settings.map(json, realm: nil) + + XCTAssertEqual(settings.siteURL, "https://foo.bar") + XCTAssertEqual(settings.cdnPrefixURL, "https://cdn.foo.bar") + } + + func testBaseURLsMappingWithSlashInTheEnd() { + let json = JSON([[ + "_id": "Site_Url", + "value": "https://foo.bar/" + ], [ + "_id": "CDN_PREFIX", + "value": "https://cdn.foo.bar/" + ]]) + + let settings = AuthSettings() + settings.map(json, realm: nil) + + XCTAssertEqual(settings.siteURL, "https://foo.bar") + XCTAssertEqual(settings.cdnPrefixURL, "https://cdn.foo.bar") + } + // MARK: Registration Form func testRegistrationFormPublic() { diff --git a/Rocket.ChatTests/Views/Chat/ChatTitleViewSpec.swift b/Rocket.ChatTests/Views/Chat/ChatTitleViewSpec.swift new file mode 100644 index 0000000000..a826d7bb82 --- /dev/null +++ b/Rocket.ChatTests/Views/Chat/ChatTitleViewSpec.swift @@ -0,0 +1,64 @@ +// +// ChatTitleViewSpec.swift +// Rocket.ChatTests +// +// Created by Rafael Kellermann Streit on 12/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import XCTest +import RealmSwift + +@testable import Rocket_Chat + +class ChatTitleViewSpec: XCTestCase { + + func testInitializeFromNib() { + XCTAssertNotNil(ChatTitleView.instantiateFromNib(), "instantiation from nib will work") + } + + func testInitialStateFromWebSocket() { + SocketManager.sharedInstance.state = .waitingForNetwork + + guard let instance = ChatTitleView.instantiateFromNib() else { + return XCTFail("instantion from nib should've worked") + } + + instance.updateConnectionState() + + XCTAssertEqual(instance.state, .waitingForNetwork) + XCTAssertFalse(instance.viewLoading.isHidden) + XCTAssertTrue(instance.buttonTitle.isHidden) + } + + func testStateConnectedLabelsVisibility() { + guard let instance = ChatTitleView.instantiateFromNib() else { + return XCTFail("instantion from nib should've worked") + } + + instance.state = .connected + XCTAssertTrue(instance.viewLoading.isHidden) + XCTAssertFalse(instance.buttonTitle.isHidden) + } + + func testStateWaitingForNetworkLabelsVisibility() { + guard let instance = ChatTitleView.instantiateFromNib() else { + return XCTFail("instantion from nib should've worked") + } + + instance.state = .waitingForNetwork + XCTAssertFalse(instance.viewLoading.isHidden) + XCTAssertTrue(instance.buttonTitle.isHidden) + } + + func testStateConnectingLabelsVisibility() { + guard let instance = ChatTitleView.instantiateFromNib() else { + return XCTFail("instantion from nib should've worked") + } + + instance.state = .connecting + XCTAssertFalse(instance.viewLoading.isHidden) + XCTAssertTrue(instance.buttonTitle.isHidden) + } + +} diff --git a/Rocket.ChatTests/Views/Subscriptions/SubscriptionsTitleViewSpec.swift b/Rocket.ChatTests/Views/Subscriptions/SubscriptionsTitleViewSpec.swift new file mode 100644 index 0000000000..562573c7e3 --- /dev/null +++ b/Rocket.ChatTests/Views/Subscriptions/SubscriptionsTitleViewSpec.swift @@ -0,0 +1,68 @@ +// +// SubscriptionsTitleViewSpec.swift +// Rocket.ChatTests +// +// Created by Rafael Kellermann Streit on 12/06/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import XCTest +import RealmSwift + +@testable import Rocket_Chat + +class SubscriptionsTitleViewSpec: XCTestCase { + + func testInitializeFromNib() { + XCTAssertNotNil(SubscriptionsTitleView.instantiateFromNib(), "instantiation from nib will work") + } + + func testInitialStateFromWebSocket() { + SocketManager.sharedInstance.state = .waitingForNetwork + + guard let instance = SubscriptionsTitleView.instantiateFromNib() else { + return XCTFail("instantion from nib should've worked") + } + + instance.updateConnectionState() + + XCTAssertEqual(instance.state, .waitingForNetwork) + XCTAssertFalse(instance.viewLoading.isHidden) + XCTAssertTrue(instance.labelMessages.isHidden) + XCTAssertFalse(instance.buttonServer.isHidden) + } + + func testStateConnectedLabelsVisibility() { + guard let instance = SubscriptionsTitleView.instantiateFromNib() else { + return XCTFail("instantion from nib should've worked") + } + + instance.state = .connected + XCTAssertTrue(instance.viewLoading.isHidden) + XCTAssertFalse(instance.labelMessages.isHidden) + XCTAssertFalse(instance.buttonServer.isHidden) + } + + func testStateWaitingForNetworkLabelsVisibility() { + guard let instance = SubscriptionsTitleView.instantiateFromNib() else { + return XCTFail("instantion from nib should've worked") + } + + instance.state = .waitingForNetwork + XCTAssertFalse(instance.viewLoading.isHidden) + XCTAssertTrue(instance.labelMessages.isHidden) + XCTAssertFalse(instance.buttonServer.isHidden) + } + + func testStateConnectingLabelsVisibility() { + guard let instance = SubscriptionsTitleView.instantiateFromNib() else { + return XCTFail("instantion from nib should've worked") + } + + instance.state = .connecting + XCTAssertFalse(instance.viewLoading.isHidden) + XCTAssertTrue(instance.labelMessages.isHidden) + XCTAssertFalse(instance.buttonServer.isHidden) + } + +} From 207aefa80210206d1ae68431908b77995a23453b Mon Sep 17 00:00:00 2001 From: Samar Sunkaria Date: Thu, 14 Jun 2018 11:41:29 +0200 Subject: [PATCH 124/124] Fix merge issues --- Rocket.Chat.xcodeproj/project.pbxproj | 12 ++++++++ .../Base/BaseNavigationController.swift | 28 +++++++++++++++++-- Rocket.Chat/Info.plist | 2 +- Rocket.Chat/Storyboards/Auth.storyboard | 4 +-- .../Views/Base/BaseNavigationBar.swift | 24 ++++++++++++++++ 5 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 Rocket.Chat/Views/Base/BaseNavigationBar.swift diff --git a/Rocket.Chat.xcodeproj/project.pbxproj b/Rocket.Chat.xcodeproj/project.pbxproj index 7e2726f32f..a8121f8d09 100644 --- a/Rocket.Chat.xcodeproj/project.pbxproj +++ b/Rocket.Chat.xcodeproj/project.pbxproj @@ -121,6 +121,7 @@ 33FB9D3E20CEF610005AF504 /* SubscriptionsSortingSeparatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33FB9D3D20CEF610005AF504 /* SubscriptionsSortingSeparatorView.swift */; }; 33FB9D4220D06492005AF504 /* EditProfileStatusCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33FB9D4120D06492005AF504 /* EditProfileStatusCell.swift */; }; 33FB9D4420D0EE7F005AF504 /* ServerInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33FB9D4320D0EE7F005AF504 /* ServerInfoCell.swift */; }; + 33FD181D20D253AE00380BEC /* BaseNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33FD181C20D253AE00380BEC /* BaseNavigationBar.swift */; }; 35A203212022D3F900B4BE5A /* ChatMessageAttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */; }; 35BCD301201A57EA00B4BE5A /* Ask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD300201A57EA00B4BE5A /* Ask.swift */; }; 35BCD303201A9FB800B4BE5A /* AskSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35BCD302201A9FB800B4BE5A /* AskSpec.swift */; }; @@ -864,6 +865,7 @@ 33FB9D3D20CEF610005AF504 /* SubscriptionsSortingSeparatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionsSortingSeparatorView.swift; sourceTree = ""; }; 33FB9D4120D06492005AF504 /* EditProfileStatusCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileStatusCell.swift; sourceTree = ""; }; 33FB9D4320D0EE7F005AF504 /* ServerInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerInfoCell.swift; sourceTree = ""; }; + 33FD181C20D253AE00380BEC /* BaseNavigationBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseNavigationBar.swift; sourceTree = ""; }; 35A203202022D3F900B4BE5A /* ChatMessageAttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAttachmentView.swift; sourceTree = ""; }; 35AE3FC690B1D3DC4E9DE715 /* Pods-Rocket.ChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Rocket.ChatTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Rocket.ChatTests/Pods-Rocket.ChatTests.release.xcconfig"; sourceTree = ""; }; 35BCD300201A57EA00B4BE5A /* Ask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ask.swift; sourceTree = ""; }; @@ -1746,6 +1748,14 @@ path = Notification; sourceTree = ""; }; + 33FD181B20D252FE00380BEC /* Base */ = { + isa = PBXGroup; + children = ( + 33FD181C20D253AE00380BEC /* BaseNavigationBar.swift */, + ); + path = Base; + sourceTree = ""; + }; 4102E3AB1E53272C004BAA82 /* Preferences */ = { isa = PBXGroup; children = ( @@ -1873,6 +1883,7 @@ 99805D7320C190FC00741B8E /* TextFields */, 80D41DFB2092152A00034D1F /* ActionSheets */, 41C275DD1D847FEE003C88CF /* Avatar */, + 33FD181B20D252FE00380BEC /* Base */, 416133301D46CA3100E09DA2 /* Cells */, 41F167E51DAC450200775CCA /* Chat */, 897083CC1F8CF08100233561 /* Form */, @@ -3947,6 +3958,7 @@ B5893BF41F6C4A5F00365768 /* UserReviewManager.swift in Sources */, 9977302C2072B746009AF465 /* PublicSettingsRequest.swift in Sources */, 41552F661D30308C0081438D /* AuthManager.swift in Sources */, + 33FD181D20D253AE00380BEC /* BaseNavigationBar.swift in Sources */, 4112DC5A1FFFB9B2005995E1 /* ModelMappeable.swift in Sources */, 809B53161FE3D3DC00833DD2 /* MessageReaction.swift in Sources */, D10E9C1A1F643457007F1796 /* Channel.swift in Sources */, diff --git a/Rocket.Chat/Controllers/Base/BaseNavigationController.swift b/Rocket.Chat/Controllers/Base/BaseNavigationController.swift index 60d7b4457d..16b24a318e 100644 --- a/Rocket.Chat/Controllers/Base/BaseNavigationController.swift +++ b/Rocket.Chat/Controllers/Base/BaseNavigationController.swift @@ -16,6 +16,19 @@ class BaseNavigationController: UINavigationController { return !(topViewController is WelcomeViewController) } + override init(rootViewController: UIViewController) { + super.init(navigationBarClass: BaseNavigationBar.self, toolbarClass: nil) + self.setViewControllers([rootViewController], animated: false) + } + + override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { + super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + override func viewDidLoad() { super.viewDidLoad() @@ -23,6 +36,7 @@ class BaseNavigationController: UINavigationController { let navBar = self.navigationBar navBar.isTranslucent = false + (navBar as? BaseNavigationBar)?.themeSource = self } override func popToRootViewController(animated: Bool) -> [UIViewController]? { @@ -54,19 +68,21 @@ class BaseNavigationController: UINavigationController { } func setTransparentTheme(forceRedraw: Bool = false) { - UIApplication.shared.statusBarStyle = .default let navBar = self.navigationBar + navBar.barStyle = .default navBar.setBackgroundImage(UIImage(), for: .default) navBar.shadowImage = UIImage() navBar.backgroundColor = UIColor.clear navBar.isTranslucent = true navBar.tintColor = .RCBlue() if forceRedraw { forceNavigationToRedraw() } + navBar.applyTheme() + setNeedsStatusBarAppearanceUpdate() } func setGrayTheme(forceRedraw: Bool = false) { - UIApplication.shared.statusBarStyle = .lightContent let navBar = self.navigationBar + navBar.barStyle = .black navBar.shadowImage = UIImage() navBar.backgroundColor = .RCNavBarGray() navBar.barTintColor = .RCNavBarGray() @@ -74,6 +90,8 @@ class BaseNavigationController: UINavigationController { navBar.tintColor = .white navBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white] if forceRedraw { forceNavigationToRedraw() } + navBar.applyTheme() + setNeedsStatusBarAppearanceUpdate() } func forceNavigationToRedraw() { @@ -81,3 +99,9 @@ class BaseNavigationController: UINavigationController { isNavigationBarHidden = false } } + +extension BaseNavigationController: BaseNavigationBarThemeSource { + var navgiationBarTheme: Theme? { + return topViewController?.view.theme + } +} diff --git a/Rocket.Chat/Info.plist b/Rocket.Chat/Info.plist index 93063da93a..66a57b4293 100644 --- a/Rocket.Chat/Info.plist +++ b/Rocket.Chat/Info.plist @@ -300,6 +300,6 @@ UIInterfaceOrientationLandscapeRight UIViewControllerBasedStatusBarAppearance - + diff --git a/Rocket.Chat/Storyboards/Auth.storyboard b/Rocket.Chat/Storyboards/Auth.storyboard index bca201e30c..26863b1f1b 100644 --- a/Rocket.Chat/Storyboards/Auth.storyboard +++ b/Rocket.Chat/Storyboards/Auth.storyboard @@ -1169,7 +1169,7 @@ to mention you in messages - + @@ -1220,7 +1220,7 @@ to mention you in messages - + diff --git a/Rocket.Chat/Views/Base/BaseNavigationBar.swift b/Rocket.Chat/Views/Base/BaseNavigationBar.swift new file mode 100644 index 0000000000..c85cd0ec45 --- /dev/null +++ b/Rocket.Chat/Views/Base/BaseNavigationBar.swift @@ -0,0 +1,24 @@ +// +// BaseNavigationBar.swift +// Rocket.Chat +// +// Created by Samar Sunkaria on 6/14/18. +// Copyright © 2018 Rocket.Chat. All rights reserved. +// + +import UIKit + +protocol BaseNavigationBarThemeSource { + var navgiationBarTheme: Theme? { get } +} + +class BaseNavigationBar: UINavigationBar { + var themeSource: BaseNavigationBarThemeSource? + override var theme: Theme? { + if let themeSource = themeSource { + return themeSource.navgiationBarTheme + } else { + return Theme.light + } + } +}

    (IYh?}$SDwOxhnUIcs{160;^#XTxcs0E9 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