From 4da3336dfbd0545c93fcbf12466017a5e9113c6a Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Thu, 17 Oct 2019 15:22:44 +0300 Subject: [PATCH 01/32] Various fixes --- BUCK | 3 +- Telegram-iOS/en.lproj/Localizable.strings | 11 +- Wallet/Sources/AppDelegate.swift | 3 + Watch/Extension/TGExtensionDelegate.m | 9 +- .../Sources/ChatListController.swift | 2 +- .../DeleteChatPeerActionSheetItem.swift | 40 +- .../Display/ActionSheetButtonItem.swift | 1 - .../Display/Display/TooltipController.swift | 30 +- .../Display/TooltipControllerNode.swift | 9 +- .../PasscodeUI/Sources/PasscodeLayout.swift | 2 +- .../Sources/ChannelInfoController.swift | 2 + .../Sources/GroupInfoController.swift | 2 +- .../Sources/PeerReportController.swift | 9 +- .../Sources/UserInfoController.swift | 4 +- .../Postbox/Postbox/MessageHistoryTable.swift | 9 +- submodules/Postbox/Postbox/Postbox.swift | 4 +- .../Sources/SegmentedControlNode.swift | 2 +- submodules/SettingsUI/BUCK | 2 + .../StorageUsageController.swift | 28 +- .../ForwardPrivacyChatPreviewItem.swift | 7 +- .../Sources/CallController.swift | 4 + .../Sources/CallFeedbackController.swift | 1 + .../Sources/CallRatingController.swift | 5 +- .../TelegramCore/CollectCacheUsageStats.swift | 36 +- .../DefaultDarkPresentationTheme.swift | 6 +- .../DefaultDarkTintedPresentationTheme.swift | 6 +- .../Sources/DefaultDayPresentationTheme.swift | 6 +- .../Sources/PresentationStrings.swift | 6729 +++++++++-------- .../Sources/PresentationTheme.swift | 10 +- .../Sources/PresentationThemeCodable.swift | 14 +- .../TelegramUI/ChatController.swift | 253 +- .../ChatInterfaceStateNavigationButtons.swift | 4 + .../ChatMessageSelectionInputPanelNode.swift | 5 + .../TelegramUI/ChatTextInputPanelNode.swift | 3 +- .../TelegramUI/CreateGroupController.swift | 6 +- .../TelegramUI/OpenChatMessage.swift | 20 +- .../PeerMediaCollectionController.swift | 2 + .../Resources/PresentationStrings.mapping | Bin 135122 -> 135296 bytes .../TelegramUI/WalletContextImpl.swift | 111 +- .../Sources/WalletCreateInvoiceScreen.swift | 2 +- .../Sources/WalletInfoTransactionItem.swift | 29 +- .../Sources/WalletPresentationData.swift | 17 +- .../WalletUI/Sources/WalletQrScanScreen.swift | 2 +- .../Sources/WalletReceiveScreen.swift | 61 +- .../Sources/WalletSettingsScreen.swift | 1 - .../Sources/WalletTransactionInfoScreen.swift | 177 +- .../Sources/WalletWordDisplayScreen.swift | 8 +- 47 files changed, 4143 insertions(+), 3554 deletions(-) diff --git a/BUCK b/BUCK index 06a249ef20..f20df001aa 100644 --- a/BUCK +++ b/BUCK @@ -383,8 +383,9 @@ apple_binary( "//submodules/BuildConfig:BuildConfig", ], frameworks = [ - "$SDKROOT/System/Library/Frameworks/UIKit.framework", "$SDKROOT/System/Library/Frameworks/Foundation.framework", + "$SDKROOT/System/Library/Frameworks/Intents.framework", + "$SDKROOT/System/Library/Frameworks/Contacts.framework", ], ) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index e3079a7b29..de1d1b0e52 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -4870,11 +4870,11 @@ Any member of this group will be able to see messages in the channel."; "Wallet.TransactionInfo.SenderHeader" = "SENDER"; "Wallet.TransactionInfo.CopyAddress" = "Copy Wallet Address"; "Wallet.TransactionInfo.AddressCopied" = "Address copied to clipboard."; -"Wallet.TransactionInfo.SendGrams" = "Send Grams"; +"Wallet.TransactionInfo.SendGrams" = "Send Grams to This Address"; "Wallet.TransactionInfo.CommentHeader" = "COMMENT"; "Wallet.TransactionInfo.StorageFeeHeader" = "STORAGE FEE"; "Wallet.TransactionInfo.OtherFeeHeader" = "TRANSACTION FEE"; -"Wallet.TransactionInfo.StorageFeeInfo" = "Blockchain validators collect a tiny fee for storing information about your decentralized wallet. [More info]()"; +"Wallet.TransactionInfo.StorageFeeInfo" = "Blockchain validators collect a tiny fee for storing information about your decentralized wallet and processing your transactions. [More info]()"; "Wallet.TransactionInfo.OtherFeeInfo" = "Blockchain validators collect a tiny fee for processing your decentralized transactions. [More info]()"; "Wallet.TransactionInfo.FeeInfoURL" = "https://telegram.org/wallet/fee"; "Wallet.WordCheck.Title" = "Test Time!"; @@ -4908,6 +4908,7 @@ Any member of this group will be able to see messages in the channel."; "Wallet.Send.SendAnyway" = "Send Anyway"; "Wallet.Receive.CreateInvoice" = "Create Invoice"; "Wallet.Receive.CreateInvoiceInfo" = "You can specify amount and purpose of the payment to save the sender some time."; + "Conversation.WalletRequiredTitle" = "Gram Wallet Required"; "Conversation.WalletRequiredText" = "This link can be used to send money on the TON Blockchain. To do this, you need to set up a Gram wallet first."; "Conversation.WalletRequiredNotNow" = "Not Now"; @@ -4973,3 +4974,9 @@ Any member of this group will be able to see messages in the channel."; "Wallet.VoiceOver.Editing.ClearText" = "Clear text"; "Wallet.Receive.ShareInvoiceUrlInfo" = "Share this link with other Gram wallet owners to receive %@ Grams from them."; + +"Conversation.ClearCache" = "Clear Cache"; +"ClearCache.Description" = "Media files will be deleted from your phone, but available for re-downloading when necessary."; +"ClearCache.FreeSpaceDescription" = "If you want to save space on your device, you don't need to delete anything.\n\nYou can use cache settings to remove unnecessary media — and re-download files if you need them again."; +"ClearCache.FreeSpace" = "Free Space"; +"ClearCache.Success" = "**%@** freed on your phone!"; diff --git a/Wallet/Sources/AppDelegate.swift b/Wallet/Sources/AppDelegate.swift index b86d7acf78..5976e02feb 100644 --- a/Wallet/Sources/AppDelegate.swift +++ b/Wallet/Sources/AppDelegate.swift @@ -430,6 +430,9 @@ private final class WalletContextImpl: NSObject, WalletContext, UIImagePickerCon info: WalletInfoTheme( incomingFundsTitleColor: UIColor(rgb: 0x00b12c), outgoingFundsTitleColor: UIColor(rgb: 0xff3b30) + ), transaction: WalletTransactionTheme( + descriptionBackgroundColor: UIColor(rgb: 0xf1f1f4), + descriptionTextColor: .black ), setup: WalletSetupTheme( buttonFillColor: accentColor, buttonForegroundColor: .white, diff --git a/Watch/Extension/TGExtensionDelegate.m b/Watch/Extension/TGExtensionDelegate.m index 60c912675c..0ce238fcee 100644 --- a/Watch/Extension/TGExtensionDelegate.m +++ b/Watch/Extension/TGExtensionDelegate.m @@ -1,11 +1,12 @@ #import "TGExtensionDelegate.h" +#import #import "TGWatchCommon.h" #import "TGFileCache.h" #import "TGBridgeClient.h" #import "TGDateUtils.h" #import "TGNeoChatsController.h" -@interface TGExtensionDelegate () +@interface TGExtensionDelegate () { NSString *_cachedContentSize; TGContentSizeCategory _sizeCategory; @@ -26,10 +27,16 @@ _audioCache.defaultFileExtension = @"m4a"; _imageCache = [[TGFileCache alloc] initWithName:@"images" useMemoryCache:true]; + + [UNUserNotificationCenter currentNotificationCenter].delegate = self; } return self; } +- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { + +} + - (TGNeoChatsController *)chatsController { return (TGNeoChatsController *)[WKExtension sharedExtension].rootInterfaceController; diff --git a/submodules/ChatListUI/Sources/ChatListController.swift b/submodules/ChatListUI/Sources/ChatListController.swift index 90a3c9f6cf..507aeb7db6 100644 --- a/submodules/ChatListUI/Sources/ChatListController.swift +++ b/submodules/ChatListUI/Sources/ChatListController.swift @@ -301,7 +301,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController, strongSelf.didShowProxyUnavailableTooltipController = true let tooltipController = TooltipController(content: .text(strongSelf.presentationData.strings.Proxy_TooltipUnavailable), timeout: 60.0, dismissByTapOutside: true) strongSelf.proxyUnavailableTooltipController = tooltipController - tooltipController.dismissed = { [weak tooltipController] in + tooltipController.dismissed = { [weak tooltipController] _ in if let strongSelf = self, let tooltipController = tooltipController, strongSelf.proxyUnavailableTooltipController === tooltipController { strongSelf.proxyUnavailableTooltipController = nil } diff --git a/submodules/DeleteChatPeerActionSheetItem/Sources/DeleteChatPeerActionSheetItem.swift b/submodules/DeleteChatPeerActionSheetItem/Sources/DeleteChatPeerActionSheetItem.swift index c9e92e8510..67a4a47774 100644 --- a/submodules/DeleteChatPeerActionSheetItem/Sources/DeleteChatPeerActionSheetItem.swift +++ b/submodules/DeleteChatPeerActionSheetItem/Sources/DeleteChatPeerActionSheetItem.swift @@ -11,6 +11,8 @@ import AccountContext public enum DeleteChatPeerAction { case delete case clearHistory + case clearCache + case clearCacheSuggestion } public final class DeleteChatPeerActionSheetItem: ActionSheetItem { @@ -80,8 +82,20 @@ private final class DeleteChatPeerActionSheetItemNode: ActionSheetItemNode { self.avatarNode.setPeer(account: context.account, theme: (context.sharedContext.currentPresentationData.with { $0 }).theme, peer: peer, overrideImage: overrideImage) } - let text: (String, [(Int, NSRange)]) + var attributedText: NSAttributedString? switch action { + case .clearCache, .clearCacheSuggestion: + switch action { + case .clearCache: + attributedText = NSAttributedString(string: strings.ClearCache_Description, font: Font.regular(14.0), textColor: theme.primaryTextColor) + case .clearCacheSuggestion: + attributedText = NSAttributedString(string: strings.ClearCache_FreeSpaceDescription, font: Font.regular(14.0), textColor: theme.primaryTextColor) + default: + break + } + default: + var text: (String, [(Int, NSRange)])? + switch action { case .delete: if chatPeer.id == context.account.peerId { text = (strings.ChatList_DeleteSavedMessagesConfirmation, []) @@ -96,16 +110,24 @@ private final class DeleteChatPeerActionSheetItemNode: ActionSheetItemNode { } case .clearHistory: text = strings.ChatList_ClearChatConfirmation(peer.displayTitle(strings: strings, displayOrder: nameOrder)) - } - let attributedText = NSMutableAttributedString(attributedString: NSAttributedString(string: text.0, font: Font.regular(14.0), textColor: theme.primaryTextColor)) - for (_, range) in text.1 { - attributedText.addAttribute(.font, value: Font.semibold(14.0), range: range) + default: + break + } + if let text = text { + var formattedAttributedText = NSMutableAttributedString(attributedString: NSAttributedString(string: text.0, font: Font.regular(14.0), textColor: theme.primaryTextColor)) + for (_, range) in text.1 { + formattedAttributedText.addAttribute(.font, value: Font.semibold(14.0), range: range) + } + attributedText = formattedAttributedText + } } - self.textNode.attributedText = attributedText - - self.accessibilityArea.accessibilityLabel = attributedText.string - self.accessibilityArea.accessibilityTraits = .staticText + if let attributedText = attributedText { + self.textNode.attributedText = attributedText + + self.accessibilityArea.accessibilityLabel = attributedText.string + self.accessibilityArea.accessibilityTraits = .staticText + } } override func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize { diff --git a/submodules/Display/Display/ActionSheetButtonItem.swift b/submodules/Display/Display/ActionSheetButtonItem.swift index b78ad09ac1..d5e66cb69e 100644 --- a/submodules/Display/Display/ActionSheetButtonItem.swift +++ b/submodules/Display/Display/ActionSheetButtonItem.swift @@ -8,7 +8,6 @@ public enum ActionSheetButtonColor { case disabled } - public enum ActionSheetButtonFont { case `default` case bold diff --git a/submodules/Display/Display/TooltipController.swift b/submodules/Display/Display/TooltipController.swift index bf2c377492..2b440b21b1 100644 --- a/submodules/Display/Display/TooltipController.swift +++ b/submodules/Display/Display/TooltipController.swift @@ -63,11 +63,12 @@ open class TooltipController: ViewController, StandalonePresentableController { public private(set) var content: TooltipControllerContent - open func updateContent(_ content: TooltipControllerContent, animated: Bool, extendTimer: Bool) { + open func updateContent(_ content: TooltipControllerContent, animated: Bool, extendTimer: Bool, arrowOnBottom: Bool = true) { if self.content != content { self.content = content if self.isNodeLoaded { self.controllerNode.updateText(self.content.text, transition: animated ? .animated(duration: 0.25, curve: .easeInOut) : .immediate) + self.controllerNode.arrowOnBottom = arrowOnBottom if extendTimer, self.timeoutTimer != nil { self.timeoutTimer?.invalidate() self.timeoutTimer = nil @@ -84,15 +85,17 @@ open class TooltipController: ViewController, StandalonePresentableController { private var timeoutTimer: SwiftSignalKit.Timer? private var layout: ContainerViewLayout? + private var initialArrowOnBottom: Bool - public var dismissed: (() -> Void)? + public var dismissed: ((Bool) -> Void)? - public init(content: TooltipControllerContent, timeout: Double = 2.0, dismissByTapOutside: Bool = false, dismissByTapOutsideSource: Bool = false, dismissImmediatelyOnLayoutUpdate: Bool = false) { + public init(content: TooltipControllerContent, timeout: Double = 2.0, dismissByTapOutside: Bool = false, dismissByTapOutsideSource: Bool = false, dismissImmediatelyOnLayoutUpdate: Bool = false, arrowOnBottom: Bool = true) { self.content = content self.timeout = timeout self.dismissByTapOutside = dismissByTapOutside self.dismissByTapOutsideSource = dismissByTapOutsideSource self.dismissImmediatelyOnLayoutUpdate = dismissImmediatelyOnLayoutUpdate + self.initialArrowOnBottom = arrowOnBottom super.init(navigationBarPresentationData: nil) @@ -108,9 +111,10 @@ open class TooltipController: ViewController, StandalonePresentableController { } override open func loadDisplayNode() { - self.displayNode = TooltipControllerNode(content: self.content, dismiss: { [weak self] in - self?.dismiss() + self.displayNode = TooltipControllerNode(content: self.content, dismiss: { [weak self] tappedInside in + self?.dismiss(tappedInside: tappedInside) }, dismissByTapOutside: self.dismissByTapOutside, dismissByTapOutsideSource: self.dismissByTapOutsideSource) + self.controllerNode.arrowOnBottom = self.initialArrowOnBottom self.displayNodeDidLoad() } @@ -154,7 +158,7 @@ open class TooltipController: ViewController, StandalonePresentableController { if self.timeoutTimer == nil { let timeoutTimer = SwiftSignalKit.Timer(timeout: self.timeout, repeat: false, completion: { [weak self] in if let strongSelf = self { - strongSelf.dismissed?() + strongSelf.dismissed?(false) strongSelf.controllerNode.animateOut { self?.presentingViewController?.dismiss(animated: false) } @@ -165,16 +169,20 @@ open class TooltipController: ViewController, StandalonePresentableController { } } - override open func dismiss(completion: (() -> Void)? = nil) { - self.dismissed?() + private func dismiss(tappedInside: Bool, completion: (() -> Void)? = nil) { + self.dismissed?(tappedInside) self.controllerNode.animateOut { [weak self] in - self?.presentingViewController?.dismiss(animated: false) - completion?() + self?.presentingViewController?.dismiss(animated: false) + completion?() } } + override open func dismiss(completion: (() -> Void)? = nil) { + self.dismiss(tappedInside: false, completion: completion) + } + open func dismissImmediately() { - self.dismissed?() + self.dismissed?(false) self.presentingViewController?.dismiss(animated: false) } } diff --git a/submodules/Display/Display/TooltipControllerNode.swift b/submodules/Display/Display/TooltipControllerNode.swift index 1723fc757e..3b39885dc0 100644 --- a/submodules/Display/Display/TooltipControllerNode.swift +++ b/submodules/Display/Display/TooltipControllerNode.swift @@ -3,7 +3,7 @@ import UIKit import AsyncDisplayKit final class TooltipControllerNode: ASDisplayNode { - private let dismiss: () -> Void + private let dismiss: (Bool) -> Void private var validLayout: ContainerViewLayout? @@ -19,7 +19,7 @@ final class TooltipControllerNode: ASDisplayNode { private var dismissedByTouchOutside = false private var dismissByTapOutsideSource = false - init(content: TooltipControllerContent, dismiss: @escaping () -> Void, dismissByTapOutside: Bool, dismissByTapOutsideSource: Bool) { + init(content: TooltipControllerContent, dismiss: @escaping (Bool) -> Void, dismissByTapOutside: Bool, dismissByTapOutsideSource: Bool) { self.dismissByTapOutside = dismissByTapOutside self.dismissByTapOutsideSource = dismissByTapOutsideSource @@ -129,15 +129,16 @@ final class TooltipControllerNode: ASDisplayNode { eventIsPresses = event.type == .presses } if event.type == .touches || eventIsPresses { + let pointInside = self.containerNode.frame.contains(point) if self.containerNode.frame.contains(point) || self.dismissByTapOutside { if !self.dismissedByTouchOutside { self.dismissedByTouchOutside = true - self.dismiss() + self.dismiss(pointInside) } } else if self.dismissByTapOutsideSource, let sourceRect = self.sourceRect, !sourceRect.contains(point) { if !self.dismissedByTouchOutside { self.dismissedByTouchOutside = true - self.dismiss() + self.dismiss(false) } } return nil diff --git a/submodules/PasscodeUI/Sources/PasscodeLayout.swift b/submodules/PasscodeUI/Sources/PasscodeLayout.swift index 90a8c918bf..d9ea84cebe 100644 --- a/submodules/PasscodeUI/Sources/PasscodeLayout.swift +++ b/submodules/PasscodeUI/Sources/PasscodeLayout.swift @@ -101,7 +101,7 @@ struct PasscodeKeyboardLayout { self.verticalThird = 176.0 self.verticalFourth = 264.0 self.size = CGSize(width: 265.0, height: 339.0) - self.topOffset = 0.0 + self.topOffset = 120.0 + (layout.size.height - self.size.height - 120.0) / 2.0 self.biometricsOffset = 30.0 self.deleteOffset = 20.0 } diff --git a/submodules/PeerInfoUI/Sources/ChannelInfoController.swift b/submodules/PeerInfoUI/Sources/ChannelInfoController.swift index 70b6442e39..2479110667 100644 --- a/submodules/PeerInfoUI/Sources/ChannelInfoController.swift +++ b/submodules/PeerInfoUI/Sources/ChannelInfoController.swift @@ -892,6 +892,8 @@ public func channelInfoController(context: AccountContext, peerId: PeerId) -> Vi }, reportChannel: { presentControllerImpl?(peerReportOptionsController(context: context, subject: .peer(peerId), present: { c, a in presentControllerImpl?(c, a) + }, push: { c in + pushControllerImpl?(c) }, completion: { _ in }), nil) }, leaveChannel: { let _ = (context.account.postbox.transaction { transaction -> Peer? in diff --git a/submodules/PeerInfoUI/Sources/GroupInfoController.swift b/submodules/PeerInfoUI/Sources/GroupInfoController.swift index 01e9f90f7d..6dac64d6c1 100644 --- a/submodules/PeerInfoUI/Sources/GroupInfoController.swift +++ b/submodules/PeerInfoUI/Sources/GroupInfoController.swift @@ -2071,7 +2071,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: }, sendLiveLocation: { _, _ in }, theme: presentationData.theme, customLocationPicker: true, presentationCompleted: { clearHighlightImpl?() }) - presentControllerImpl?(controller, nil) + pushControllerImpl?(controller) }) }, displayLocationContextMenu: { text in displayCopyContextMenuImpl?(text, .location) diff --git a/submodules/PeerInfoUI/Sources/PeerReportController.swift b/submodules/PeerInfoUI/Sources/PeerReportController.swift index 835c709b74..7c8eec97c1 100644 --- a/submodules/PeerInfoUI/Sources/PeerReportController.swift +++ b/submodules/PeerInfoUI/Sources/PeerReportController.swift @@ -91,7 +91,7 @@ public func presentPeerReportOptions(context: AccountContext, parent: ViewContro }) } } else { - parent?.present(peerReportController(context: context, subject: subject, completion: completion), in: .window(.root), with: ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + parent?.push(peerReportController(context: context, subject: subject, completion: completion)) } f(.dismissWithoutContent) }))) @@ -102,11 +102,13 @@ public func presentPeerReportOptions(context: AccountContext, parent: ViewContro parent.view.endEditing(true) parent.present(peerReportOptionsController(context: context, subject: subject, present: { [weak parent] c, a in parent?.present(c, in: .window(.root), with: a) + }, push: { [weak parent] c in + parent?.push(c) }, completion: completion), in: .window(.root)) } } -public func peerReportOptionsController(context: AccountContext, subject: PeerReportSubject, present: @escaping (ViewController, Any?) -> Void, completion: @escaping (Bool) -> Void) -> ViewController { +public func peerReportOptionsController(context: AccountContext, subject: PeerReportSubject, present: @escaping (ViewController, Any?) -> Void, push: @escaping (ViewController) -> Void, completion: @escaping (Bool) -> Void) -> ViewController { let presentationData = context.sharedContext.currentPresentationData.with { $0 } let controller = ActionSheetController(theme: ActionSheetControllerTheme(presentationTheme: presentationData.theme)) @@ -169,7 +171,7 @@ public func peerReportOptionsController(context: AccountContext, subject: PeerRe }) } } else { - controller?.present(peerReportController(context: context, subject: subject, completion: completion), in: .window(.root), with: ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + push(peerReportController(context: context, subject: subject, completion: completion)) } controller?.dismissAnimated() @@ -348,6 +350,7 @@ private func peerReportController(context: AccountContext, subject: PeerReportSu } let controller = ItemListController(context: context, state: signal) + controller.navigationPresentation = .modal presentControllerImpl = { [weak controller] c, a in controller?.present(c, in: .window(.root), with: a) } diff --git a/submodules/PeerInfoUI/Sources/UserInfoController.swift b/submodules/PeerInfoUI/Sources/UserInfoController.swift index 45dbdc1dd2..654dfa774c 100644 --- a/submodules/PeerInfoUI/Sources/UserInfoController.swift +++ b/submodules/PeerInfoUI/Sources/UserInfoController.swift @@ -1179,6 +1179,8 @@ public func userInfoController(context: AccountContext, peerId: PeerId, mode: Pe }, report: { presentControllerImpl?(peerReportOptionsController(context: context, subject: .peer(peerId), present: { c, a in presentControllerImpl?(c, a) + }, push: { c in + pushControllerImpl?(c) }, completion: { _ in }), nil) }) @@ -1577,8 +1579,6 @@ public func userInfoController(context: AccountContext, peerId: PeerId, mode: Pe let text: String = presentationData.strings.UserInfo_TapToCall let tooltipController = TooltipController(content: .text(text), dismissByTapOutside: true) - tooltipController.dismissed = { - } controller.present(tooltipController, in: .window(.root), with: TooltipControllerPresentationArguments(sourceNodeAndRect: { [weak resultItemNode] in if let resultItemNode = resultItemNode { return (resultItemNode, callButtonFrame) diff --git a/submodules/Postbox/Postbox/MessageHistoryTable.swift b/submodules/Postbox/Postbox/MessageHistoryTable.swift index b650a789b3..5f40bd055b 100644 --- a/submodules/Postbox/Postbox/MessageHistoryTable.swift +++ b/submodules/Postbox/Postbox/MessageHistoryTable.swift @@ -2479,18 +2479,23 @@ final class MessageHistoryTable: Table { } } - func enumerateMedia(lowerBound: MessageIndex?, limit: Int) -> ([PeerId: Set], [MediaId: Media], MessageIndex?) { + func enumerateMedia(lowerBound: MessageIndex?, upperBound: MessageIndex?, limit: Int) -> ([PeerId: Set], [MediaId: Media], MessageIndex?) { var mediaRefs: [MediaId: Media] = [:] var result: [PeerId: Set] = [:] var lastIndex: MessageIndex? var count = 0 - self.valueBox.range(self.table, start: self.key(lowerBound == nil ? MessageIndex.absoluteLowerBound() : lowerBound!), end: self.key(MessageIndex.absoluteUpperBound()), values: { key, value in + self.valueBox.range(self.table, start: self.key(lowerBound == nil ? MessageIndex.absoluteLowerBound() : lowerBound!), end: self.key(upperBound == nil ? MessageIndex.absoluteUpperBound() : upperBound!), values: { key, value in count += 1 let entry = self.readIntermediateEntry(key, value: value) lastIndex = entry.message.index let message = entry.message + + if let upperBound = upperBound, message.id.peerId != upperBound.id.peerId { + return true + } + var parsedMedia: [Media] = [] let embeddedMediaData = message.embeddedMediaData.sharedBufferNoCopy() diff --git a/submodules/Postbox/Postbox/Postbox.swift b/submodules/Postbox/Postbox/Postbox.swift index ba0929d54f..e004b15660 100644 --- a/submodules/Postbox/Postbox/Postbox.swift +++ b/submodules/Postbox/Postbox/Postbox.swift @@ -756,10 +756,10 @@ public final class Transaction { } } - public func enumerateMedia(lowerBound: MessageIndex?, limit: Int) -> ([PeerId: Set], [MediaId: Media], MessageIndex?) { + public func enumerateMedia(lowerBound: MessageIndex?, upperBound: MessageIndex?, limit: Int) -> ([PeerId: Set], [MediaId: Media], MessageIndex?) { assert(!self.disposed) if let postbox = self.postbox { - return postbox.messageHistoryTable.enumerateMedia(lowerBound: lowerBound, limit: limit) + return postbox.messageHistoryTable.enumerateMedia(lowerBound: lowerBound, upperBound: upperBound, limit: limit) } else { return ([:], [:], nil) } diff --git a/submodules/SegmentedControlNode/Sources/SegmentedControlNode.swift b/submodules/SegmentedControlNode/Sources/SegmentedControlNode.swift index 14765944f2..ba95b378b7 100644 --- a/submodules/SegmentedControlNode/Sources/SegmentedControlNode.swift +++ b/submodules/SegmentedControlNode/Sources/SegmentedControlNode.swift @@ -49,7 +49,7 @@ public final class SegmentedControlTheme: Equatable { public extension SegmentedControlTheme { convenience init(theme: PresentationTheme) { - self.init(backgroundColor: theme.rootController.navigationSearchBar.inputFillColor, foregroundColor: theme.rootController.navigationBar.backgroundColor, shadowColor: .black, textColor: theme.rootController.navigationBar.primaryTextColor, dividerColor: theme.list.freeInputField.strokeColor) + self.init(backgroundColor: theme.rootController.navigationBar.segmentedBackgroundColor, foregroundColor: theme.rootController.navigationBar.segmentedForegroundColor, shadowColor: .black, textColor: theme.rootController.navigationBar.segmentedTextColor, dividerColor: theme.rootController.navigationBar.segmentedDividerColor) } } diff --git a/submodules/SettingsUI/BUCK b/submodules/SettingsUI/BUCK index 1a7bffaa8a..01d9883e6b 100644 --- a/submodules/SettingsUI/BUCK +++ b/submodules/SettingsUI/BUCK @@ -79,6 +79,8 @@ static_library( "//submodules/ContextUI:ContextUI", "//submodules/WalletUI:WalletUI", "//submodules/Markdown:Markdown", + "//submodules/UndoUI:UndoUI", + "//submodules/DeleteChatPeerActionSheetItem:DeleteChatPeerActionSheetItem", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift b/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift index a0f408ac7b..92b6d2e8df 100644 --- a/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift +++ b/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift @@ -11,6 +11,8 @@ import PresentationDataUtils import OverlayStatusController import AccountContext import ItemListPeerItem +import DeleteChatPeerActionSheetItem +import UndoUI private final class StorageUsageControllerArguments { let account: Account @@ -284,7 +286,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals return cacheSettings }) - var presentControllerImpl: ((ViewController) -> Void)? + var presentControllerImpl: ((ViewController, Any?) -> Void)? let statsPromise = Promise() let resetStats: () -> Void = { @@ -338,7 +340,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals ActionSheetItemGroup(items: timeoutItems), ActionSheetItemGroup(items: [ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, action: { dismissAction() })]) ]) - presentControllerImpl?(controller) + presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }, openClearAll: { let _ = (statsPromise.get() |> take(1) @@ -505,7 +507,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: { cancelImpl?() })) - presentControllerImpl?(controller) + presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) return ActionDisposable { [weak controller] in Queue.mainQueue().async() { controller?.dismiss() @@ -529,6 +531,8 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals clearDisposable.set((signal |> deliverOnMainQueue).start(completed: { statsPromise.set(.single(.result(resultStats))) + + presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0), elevatedLayout: false, action: { _ in }), nil) })) } @@ -539,7 +543,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, action: { dismissAction() })]) ]) - presentControllerImpl?(controller) + presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) } } }) @@ -547,8 +551,8 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals let _ = (statsPromise.get() |> take(1) |> deliverOnMainQueue).start(next: { [weak statsPromise] result in if let result = result, case let .result(stats) = result { var additionalPeerId: PeerId? - if var categories = stats.media[peerId] { - if let channel = stats.peers[peerId] as? TelegramChannel, case .group = channel.info { + if var categories = stats.media[peerId], let peer = stats.peers[peerId] { + if let channel = peer as? TelegramChannel, case .group = channel.info { for (_, peer) in stats.peers { if let group = peer as? TelegramGroup, let migrationReference = group.migrationReference, migrationReference.peerId == peerId { if let additionalCategories = stats.media[group.id] { @@ -605,6 +609,8 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals } var items: [ActionSheetItem] = [] + items.append(DeleteChatPeerActionSheetItem(context: context, peer: peer, chatPeer: peer, action: .clearCache, strings: presentationData.strings, nameDisplayOrder: presentationData.nameDisplayOrder)) + let validCategories: [PeerCacheUsageCategory] = [.image, .video, .audio, .file] var totalSize: Int64 = 0 @@ -680,7 +686,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: { cancelImpl?() })) - presentControllerImpl?(controller) + presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) return ActionDisposable { [weak controller] in Queue.mainQueue().async() { controller?.dismiss() @@ -704,6 +710,8 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals clearDisposable.set((signal |> deliverOnMainQueue).start(completed: { statsPromise.set(.single(.result(resultStats))) + + presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0), elevatedLayout: false, action: { _ in }), nil) })) } @@ -714,7 +722,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, action: { dismissAction() })]) ]) - presentControllerImpl?(controller) + presentControllerImpl?(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) } } } @@ -738,8 +746,8 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals } let controller = ItemListController(context: context, state: signal) - presentControllerImpl = { [weak controller] c in - controller?.present(c, in: .window(.root), with: ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + presentControllerImpl = { [weak controller] c, a in + controller?.present(c, in: .window(.root), with: a) } dismissImpl = { [weak controller] in controller?.dismiss() diff --git a/submodules/SettingsUI/Sources/Privacy and Security/ForwardPrivacyChatPreviewItem.swift b/submodules/SettingsUI/Sources/Privacy and Security/ForwardPrivacyChatPreviewItem.swift index 8729d0abf0..155ea86f63 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/ForwardPrivacyChatPreviewItem.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/ForwardPrivacyChatPreviewItem.swift @@ -282,16 +282,11 @@ class ForwardPrivacyChatPreviewItemNode: ListViewItemNode { let horizontalOrigin: CGFloat = floor(min(max(8.0, sourceRect.midX - contentSize.width / 2.0), layout.size.width - contentSize.width - 8.0)) strongSelf.tooltipContainerNode.frame = CGRect(origin: CGPoint(x: horizontalOrigin, y: verticalOrigin), size: contentSize) - //transition.updateFrame(node: self.containerNode, frame: CGRect(origin: CGPoint(x: horizontalOrigin, y: verticalOrigin), size: contentSize)) strongSelf.tooltipContainerNode.relativeArrowPosition = (sourceRect.midX - horizontalOrigin, arrowOnBottom) strongSelf.tooltipContainerNode.updateLayout(transition: .immediate) - let textFrame = CGRect(origin: CGPoint(x: 6.0, y: 17.0), size: textSize) -// if transition.isAnimated, textFrame.size != self.textNode.frame.size { -// transition.animatePositionAdditive(node: self.textNode, offset: CGPoint(x: textFrame.minX - self.textNode.frame.minX, y: 0.0)) -// } - + let textFrame = CGRect(origin: CGPoint(x: 6.0, y: 17.0), size: textSize) strongSelf.textNode.frame = textFrame } }) diff --git a/submodules/TelegramCallsUI/Sources/CallController.swift b/submodules/TelegramCallsUI/Sources/CallController.swift index 4962c6db50..fe2c26a66c 100644 --- a/submodules/TelegramCallsUI/Sources/CallController.swift +++ b/submodules/TelegramCallsUI/Sources/CallController.swift @@ -189,6 +189,10 @@ public final class CallController: ViewController { c.presentationArguments = a window.present(c, on: .root, blockInteraction: false, completion: {}) } + }, push: { [weak self] c in + if let strongSelf = self { + strongSelf.push(c) + } }) strongSelf.present(controller, in: .window(.root)) }) diff --git a/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift b/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift index ea63da505b..a5f7238ed2 100644 --- a/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift +++ b/submodules/TelegramCallsUI/Sources/CallFeedbackController.swift @@ -274,6 +274,7 @@ public func callFeedbackController(sharedContext: SharedAccountContext, account: let controller = ItemListController(sharedContext: sharedContext, state: signal) + controller.navigationPresentation = .modal presentControllerImpl = { [weak controller] c in controller?.present(c, in: .window(.root)) } diff --git a/submodules/TelegramCallsUI/Sources/CallRatingController.swift b/submodules/TelegramCallsUI/Sources/CallRatingController.swift index 10da6c947f..2b0dcbdc18 100644 --- a/submodules/TelegramCallsUI/Sources/CallRatingController.swift +++ b/submodules/TelegramCallsUI/Sources/CallRatingController.swift @@ -265,7 +265,7 @@ func rateCallAndSendLogs(account: Account, callId: CallId, starsCount: Int, comm } } -public func callRatingController(sharedContext: SharedAccountContext, account: Account, callId: CallId, userInitiated: Bool, present: @escaping (ViewController, Any) -> Void) -> AlertController { +public func callRatingController(sharedContext: SharedAccountContext, account: Account, callId: CallId, userInitiated: Bool, present: @escaping (ViewController, Any) -> Void, push: @escaping (ViewController) -> Void) -> AlertController { let presentationData = sharedContext.currentPresentationData.with { $0 } let theme = presentationData.theme let strings = presentationData.strings @@ -281,8 +281,7 @@ public func callRatingController(sharedContext: SharedAccountContext, account: A }, apply: { rating in dismissImpl?(true) if rating < 4 { - let controller = callFeedbackController(sharedContext: sharedContext, account: account, callId: callId, rating: rating, userInitiated: userInitiated) - present(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + push(callFeedbackController(sharedContext: sharedContext, account: account, callId: callId, rating: rating, userInitiated: userInitiated)) } else { let _ = rateCallAndSendLogs(account: account, callId: callId, starsCount: rating, comment: "", userInitiated: userInitiated, includeLogs: false).start() } diff --git a/submodules/TelegramCore/TelegramCore/CollectCacheUsageStats.swift b/submodules/TelegramCore/TelegramCore/CollectCacheUsageStats.swift index 699893259a..3b251b68f6 100644 --- a/submodules/TelegramCore/TelegramCore/CollectCacheUsageStats.swift +++ b/submodules/TelegramCore/TelegramCore/CollectCacheUsageStats.swift @@ -53,10 +53,17 @@ private final class CacheUsageStatsState { var mediaResourceIds: [MediaId: [MediaResourceId]] = [:] var allResourceIds = Set() var lowerBound: MessageIndex? + var upperBound: MessageIndex? } -public func collectCacheUsageStats(account: Account, additionalCachePaths: [String], logFilesPath: String) -> Signal { - let state = Atomic(value: CacheUsageStatsState()) +public func collectCacheUsageStats(account: Account, peerId: PeerId? = nil, additionalCachePaths: [String] = [], logFilesPath: String? = nil) -> Signal { + var initialState = CacheUsageStatsState() + if let peerId = peerId { + initialState.lowerBound = MessageIndex.lowerBound(peerId: peerId) + initialState.upperBound = MessageIndex.upperBound(peerId: peerId) + } + + let state = Atomic(value: initialState) let excludeResourceIds = account.postbox.transaction { transaction -> Set in var result = Set() @@ -70,7 +77,7 @@ public func collectCacheUsageStats(account: Account, additionalCachePaths: [Stri return excludeResourceIds |> mapToSignal { excludeResourceIds -> Signal in let fetch = account.postbox.transaction { transaction -> ([PeerId : Set], [MediaId : Media], MessageIndex?) in - return transaction.enumerateMedia(lowerBound: state.with { $0.lowerBound }, limit: 1000) + return transaction.enumerateMedia(lowerBound: state.with { $0.lowerBound }, upperBound: state.with { $0.upperBound }, limit: 1000) } |> mapError { _ -> CollectCacheUsageStatsError in preconditionFailure() } @@ -167,6 +174,27 @@ public func collectCacheUsageStats(account: Account, additionalCachePaths: [Stri } } if updatedLowerBound == nil { + if peerId != nil { + let (finalMedia, finalMediaResourceIds, allResourceIds) = state.with { state -> ([PeerId: [PeerCacheUsageCategory: [MediaId: Int64]]], [MediaId: [MediaResourceId]], Set) in + return (state.media, state.mediaResourceIds, state.allResourceIds) + } + return account.postbox.transaction { transaction -> CacheUsageStats in + var peers: [PeerId: Peer] = [:] + for peerId in finalMedia.keys { + if let peer = transaction.getPeer(peerId) { + peers[peer.id] = peer + if let associatedPeerId = peer.associatedPeerId, let associatedPeer = transaction.getPeer(associatedPeerId) { + peers[associatedPeer.id] = associatedPeer + } + } + } + return CacheUsageStats(media: finalMedia, mediaResourceIds: finalMediaResourceIds, peers: peers, otherSize: 0, otherPaths: [], cacheSize: 0, tempPaths: [], tempSize: 0, immutableSize: 0) + } |> mapError { _ -> CollectCacheUsageStatsError in preconditionFailure() } + |> mapToSignal { stats -> Signal in + return .fail(.done(stats)) + } + } + let (finalMedia, finalMediaResourceIds, allResourceIds) = state.with { state -> ([PeerId: [PeerCacheUsageCategory: [MediaId: Int64]]], [MediaId: [MediaResourceId]], Set) in return (state.media, state.mediaResourceIds, state.allResourceIds) } @@ -203,7 +231,7 @@ public func collectCacheUsageStats(account: Account, additionalCachePaths: [Stri } } } - if let files = try? FileManager.default.contentsOfDirectory(at: URL(fileURLWithPath: logFilesPath), includingPropertiesForKeys: [URLResourceKey.fileSizeKey], options: []) { + if let logFilesPath = logFilesPath, let files = try? FileManager.default.contentsOfDirectory(at: URL(fileURLWithPath: logFilesPath), includingPropertiesForKeys: [URLResourceKey.fileSizeKey], options: []) { for url in files { if let fileSize = (try? url.resourceValues(forKeys: Set([.fileSizeKey])))?.fileSize { immutableSize += Int64(fileSize) diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift index 57bd814166..887c0d0c6e 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift @@ -85,7 +85,11 @@ private func makeDarkPresentationTheme(accentColor: UIColor, baseColor: Presenta separatorColor: UIColor(rgb: 0x3d3d40), badgeBackgroundColor: badgeFillColor, badgeStrokeColor: UIColor(rgb: 0x1c1c1d), - badgeTextColor: badgeTextColor + badgeTextColor: badgeTextColor, + segmentedBackgroundColor: UIColor(rgb: 0x3a3b3d), + segmentedForegroundColor: UIColor(rgb: 0x6f7075), + segmentedTextColor: UIColor(rgb: 0xffffff), + segmentedDividerColor: UIColor(rgb: 0x505155) ) let navigationSearchBar = PresentationThemeNavigationSearchBar( diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift index 21298a6eab..913f21f507 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift @@ -61,7 +61,11 @@ private func makeDarkPresentationTheme(accentColor: UIColor, baseColor: Presenta separatorColor: mainSeparatorColor, badgeBackgroundColor: UIColor(rgb: 0xef5b5b), badgeStrokeColor: UIColor(rgb: 0xef5b5b), - badgeTextColor: UIColor(rgb: 0xffffff) + badgeTextColor: UIColor(rgb: 0xffffff), + segmentedBackgroundColor: mainInputColor, + segmentedForegroundColor: mainBackgroundColor, + segmentedTextColor: UIColor(rgb: 0xffffff), + segmentedDividerColor: mainSecondaryTextColor.withAlphaComponent(0.5) ) let navigationSearchBar = PresentationThemeNavigationSearchBar( diff --git a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift index 40a6a838cb..9e4ad9117f 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift @@ -68,7 +68,11 @@ private func makeDefaultDayPresentationTheme(accentColor: UIColor, serviceBackgr separatorColor: UIColor(rgb: 0xb1b1b1), badgeBackgroundColor: UIColor(rgb: 0xff3b30), badgeStrokeColor: UIColor(rgb: 0xff3b30), - badgeTextColor: .white + badgeTextColor: .white, + segmentedBackgroundColor: UIColor(rgb: 0xe9e9e9), + segmentedForegroundColor: UIColor(rgb: 0xf7f7f7), + segmentedTextColor: UIColor(rgb: 0x000000), + segmentedDividerColor: UIColor(rgb: 0xd6d6dc) ) let navigationSearchBar = PresentationThemeNavigationSearchBar( diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 6e0a60fa26..f4a86e840e 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -849,4173 +849,4180 @@ public final class PresentationStrings: Equatable { public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[612]!, self._r[612]!, [_1, _2]) } - public var PhotoEditor_ShadowsTint: String { return self._s[613]! } - public var Message_Audio: String { return self._s[614]! } - public var Passport_Language_lt: String { return self._s[615]! } + public var Conversation_ClearCache: String { return self._s[613]! } + public var PhotoEditor_ShadowsTint: String { return self._s[614]! } + public var Message_Audio: String { return self._s[615]! } + public var Passport_Language_lt: String { return self._s[616]! } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[616]!, self._r[616]!, [_0]) + return formatWithArgumentRanges(self._s[617]!, self._r[617]!, [_0]) } - public var Permissions_SiriText_v0: String { return self._s[617]! } - public var Conversation_FileICloudDrive: String { return self._s[618]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[619]! } - public var Notifications_Badge_IncludeMutedChats: String { return self._s[620]! } + public var Permissions_SiriText_v0: String { return self._s[618]! } + public var Conversation_FileICloudDrive: String { return self._s[619]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[620]! } + public var Notifications_Badge_IncludeMutedChats: String { return self._s[621]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[621]!, self._r[621]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[622]!, self._r[622]!, [_1, _2, _3, _4, _5, _6]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[622]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[623]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[623]!, self._r[623]!, [_0]) + return formatWithArgumentRanges(self._s[624]!, self._r[624]!, [_0]) } - public var Channel_SignMessages: String { return self._s[624]! } + public var Channel_SignMessages: String { return self._s[625]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[625]!, self._r[625]!, [_1]) + return formatWithArgumentRanges(self._s[626]!, self._r[626]!, [_1]) } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[626]! } - public var Passport_ScanPassport: String { return self._s[627]! } - public var Watch_Suggestion_Thanks: String { return self._s[628]! } - public var BlockedUsers_AddNew: String { return self._s[629]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[627]! } + public var Passport_ScanPassport: String { return self._s[628]! } + public var Watch_Suggestion_Thanks: String { return self._s[629]! } + public var BlockedUsers_AddNew: String { return self._s[630]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[630]!, self._r[630]!, [_1, _2]) + return formatWithArgumentRanges(self._s[631]!, self._r[631]!, [_1, _2]) } - public var Watch_Message_Invoice: String { return self._s[631]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[632]! } - public var Month_GenJuly: String { return self._s[633]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[634]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[636]! } - public var Notification_ChannelInviterSelf: String { return self._s[637]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[638]! } + public var Watch_Message_Invoice: String { return self._s[632]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[633]! } + public var Month_GenJuly: String { return self._s[634]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[635]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[637]! } + public var Notification_ChannelInviterSelf: String { return self._s[638]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[639]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[639]!, self._r[639]!, [_1, _2]) + return formatWithArgumentRanges(self._s[640]!, self._r[640]!, [_1, _2]) } - public var CheckoutInfo_Title: String { return self._s[640]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[641]! } + public var CheckoutInfo_Title: String { return self._s[641]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[642]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[642]!, self._r[642]!, [_0]) + return formatWithArgumentRanges(self._s[643]!, self._r[643]!, [_0]) } - public var Passport_Identity_MainPage: String { return self._s[643]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[644]! } - public var Passport_Language_de: String { return self._s[645]! } - public var Update_Title: String { return self._s[646]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[647]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[648]! } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[649]! } - public var Notifications_ChannelNotificationsPreview: String { return self._s[650]! } - public var NotificationsSound_Telegraph: String { return self._s[651]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[652]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[653]! } + public var Passport_Identity_MainPage: String { return self._s[644]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[645]! } + public var Passport_Language_de: String { return self._s[646]! } + public var Update_Title: String { return self._s[647]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[648]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[649]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[650]! } + public var Notifications_ChannelNotificationsPreview: String { return self._s[651]! } + public var NotificationsSound_Telegraph: String { return self._s[652]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[653]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[654]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[654]!, self._r[654]!, [_0]) + return formatWithArgumentRanges(self._s[655]!, self._r[655]!, [_0]) } - public var Stickers_SuggestAll: String { return self._s[655]! } - public var Conversation_ForwardTitle: String { return self._s[656]! } - public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[657]! } + public var ClearCache_Description: String { return self._s[656]! } + public var Stickers_SuggestAll: String { return self._s[657]! } + public var Conversation_ForwardTitle: String { return self._s[658]! } + public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[659]! } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[658]!, self._r[658]!, [_0]) + return formatWithArgumentRanges(self._s[660]!, self._r[660]!, [_0]) } - public var Calls_NewCall: String { return self._s[659]! } - public var Call_StatusEnded: String { return self._s[660]! } - public var AutoDownloadSettings_DataUsageLow: String { return self._s[661]! } - public var Settings_ProxyConnected: String { return self._s[662]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[663]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[664]! } - public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[665]! } - public var Passport_PasswordPlaceholder: String { return self._s[666]! } - public var Message_PinnedInvoice: String { return self._s[667]! } - public var Passport_Identity_IssueDate: String { return self._s[668]! } - public var Passport_Language_pl: String { return self._s[669]! } + public var Calls_NewCall: String { return self._s[661]! } + public var Call_StatusEnded: String { return self._s[662]! } + public var AutoDownloadSettings_DataUsageLow: String { return self._s[663]! } + public var Settings_ProxyConnected: String { return self._s[664]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[665]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[666]! } + public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[667]! } + public var Passport_PasswordPlaceholder: String { return self._s[668]! } + public var Message_PinnedInvoice: String { return self._s[669]! } + public var Passport_Identity_IssueDate: String { return self._s[670]! } + public var Passport_Language_pl: String { return self._s[671]! } public func ChannelInfo_ChannelForbidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[670]!, self._r[670]!, [_0]) + return formatWithArgumentRanges(self._s[672]!, self._r[672]!, [_0]) } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[671]! } - public var Call_StatusConnecting: String { return self._s[672]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[673]! } + public var Call_StatusConnecting: String { return self._s[674]! } public func Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[673]!, self._r[673]!, [_0]) + return formatWithArgumentRanges(self._s[675]!, self._r[675]!, [_0]) } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[675]! } - public var Common_Edit: String { return self._s[676]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[677]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[677]! } + public var Common_Edit: String { return self._s[678]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[679]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[678]!, self._r[678]!, [_0]) + return formatWithArgumentRanges(self._s[680]!, self._r[680]!, [_0]) } - public var GroupInfo_ChatAdmins: String { return self._s[679]! } - public var PrivateDataSettings_Title: String { return self._s[680]! } - public var Login_CancelPhoneVerificationStop: String { return self._s[681]! } - public var ChatList_Read: String { return self._s[682]! } - public var Wallet_WordImport_Text: String { return self._s[683]! } - public var Undo_ChatClearedForBothSides: String { return self._s[684]! } - public var GroupPermission_SectionTitle: String { return self._s[685]! } + public var GroupInfo_ChatAdmins: String { return self._s[681]! } + public var PrivateDataSettings_Title: String { return self._s[682]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[683]! } + public var ChatList_Read: String { return self._s[684]! } + public var Wallet_WordImport_Text: String { return self._s[685]! } + public var Undo_ChatClearedForBothSides: String { return self._s[686]! } + public var GroupPermission_SectionTitle: String { return self._s[687]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[687]!, self._r[687]!, [_1, _2]) + return formatWithArgumentRanges(self._s[689]!, self._r[689]!, [_1, _2]) } - public var Checkout_ErrorPaymentFailed: String { return self._s[688]! } - public var Update_UpdateApp: String { return self._s[689]! } - public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[690]! } - public var Settings_Appearance: String { return self._s[691]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[695]! } - public var Watch_Location_Access: String { return self._s[696]! } - public var ShareMenu_CopyShareLink: String { return self._s[698]! } - public var TwoStepAuth_SetupHintTitle: String { return self._s[699]! } - public var Conversation_Theme: String { return self._s[701]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[690]! } + public var Update_UpdateApp: String { return self._s[691]! } + public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[692]! } + public var Settings_Appearance: String { return self._s[693]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[697]! } + public var Watch_Location_Access: String { return self._s[698]! } + public var ShareMenu_CopyShareLink: String { return self._s[700]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[701]! } + public var Conversation_Theme: String { return self._s[703]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[702]!, self._r[702]!, [_0]) + return formatWithArgumentRanges(self._s[704]!, self._r[704]!, [_0]) } - public var Notifications_ClassicTones: String { return self._s[703]! } - public var Weekday_ShortWednesday: String { return self._s[704]! } - public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[705]! } - public var Undo_LeftGroup: String { return self._s[708]! } - public var Wallet_RestoreFailed_Text: String { return self._s[709]! } - public var Conversation_LinkDialogCopy: String { return self._s[710]! } - public var Wallet_TransactionInfo_NoAddress: String { return self._s[712]! } - public var Wallet_Navigation_Back: String { return self._s[713]! } - public var KeyCommand_FocusOnInputField: String { return self._s[714]! } - public var Contacts_SelectAll: String { return self._s[715]! } - public var Preview_SaveToCameraRoll: String { return self._s[716]! } - public var PrivacySettings_PasscodeOff: String { return self._s[717]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[718]! } - public var Wallpaper_Title: String { return self._s[719]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[720]! } - public var AccessDenied_Camera: String { return self._s[721]! } - public var Watch_Compose_CurrentLocation: String { return self._s[722]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[724]! } + public var Notifications_ClassicTones: String { return self._s[705]! } + public var Weekday_ShortWednesday: String { return self._s[706]! } + public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[707]! } + public var Undo_LeftGroup: String { return self._s[710]! } + public var Wallet_RestoreFailed_Text: String { return self._s[711]! } + public var Conversation_LinkDialogCopy: String { return self._s[712]! } + public var Wallet_TransactionInfo_NoAddress: String { return self._s[714]! } + public var Wallet_Navigation_Back: String { return self._s[715]! } + public var KeyCommand_FocusOnInputField: String { return self._s[716]! } + public var Contacts_SelectAll: String { return self._s[717]! } + public var Preview_SaveToCameraRoll: String { return self._s[718]! } + public var PrivacySettings_PasscodeOff: String { return self._s[719]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[720]! } + public var Wallpaper_Title: String { return self._s[721]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[722]! } + public var AccessDenied_Camera: String { return self._s[723]! } + public var Watch_Compose_CurrentLocation: String { return self._s[724]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[726]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[725]!, self._r[725]!, [_0]) + return formatWithArgumentRanges(self._s[727]!, self._r[727]!, [_0]) } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[726]! } - public var Passport_Language_ro: String { return self._s[727]! } - public var EditTheme_UploadNewTheme: String { return self._s[728]! } - public var CheckoutInfo_SaveInfoHelp: String { return self._s[729]! } - public var Wallet_Intro_Terms: String { return self._s[730]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[728]! } + public var Passport_Language_ro: String { return self._s[729]! } + public var EditTheme_UploadNewTheme: String { return self._s[730]! } + public var CheckoutInfo_SaveInfoHelp: String { return self._s[731]! } + public var Wallet_Intro_Terms: String { return self._s[732]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[731]!, self._r[731]!, [_0]) + return formatWithArgumentRanges(self._s[733]!, self._r[733]!, [_0]) } - public var Login_CancelPhoneVerification: String { return self._s[732]! } - public var State_ConnectingToProxy: String { return self._s[733]! } - public var Calls_RatingTitle: String { return self._s[734]! } - public var Generic_ErrorMoreInfo: String { return self._s[735]! } - public var Appearance_PreviewReplyText: String { return self._s[736]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[737]! } + public var Login_CancelPhoneVerification: String { return self._s[734]! } + public var State_ConnectingToProxy: String { return self._s[735]! } + public var Calls_RatingTitle: String { return self._s[736]! } + public var Generic_ErrorMoreInfo: String { return self._s[737]! } + public var Appearance_PreviewReplyText: String { return self._s[738]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[739]! } public func Wallet_Send_Balance(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[738]!, self._r[738]!, [_0]) + return formatWithArgumentRanges(self._s[740]!, self._r[740]!, [_0]) } - public var SharedMedia_CategoryLinks: String { return self._s[739]! } - public var Calls_Missed: String { return self._s[740]! } - public var Cache_Photos: String { return self._s[744]! } - public var GroupPermission_NoAddMembers: String { return self._s[745]! } - public var ScheduledMessages_Title: String { return self._s[746]! } + public var SharedMedia_CategoryLinks: String { return self._s[741]! } + public var Calls_Missed: String { return self._s[742]! } + public var Cache_Photos: String { return self._s[746]! } + public var GroupPermission_NoAddMembers: String { return self._s[747]! } + public var ScheduledMessages_Title: String { return self._s[748]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[747]!, self._r[747]!, [_0]) + return formatWithArgumentRanges(self._s[749]!, self._r[749]!, [_0]) } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[748]! } - public var Settings_ProxyDisabled: String { return self._s[749]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[750]! } + public var Settings_ProxyDisabled: String { return self._s[751]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[750]!, self._r[750]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[752]!, self._r[752]!, [_1, _2, _3, _4]) } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[751]!, self._r[751]!, [_0]) + return formatWithArgumentRanges(self._s[753]!, self._r[753]!, [_0]) } - public var ChatList_Context_RemoveFromRecents: String { return self._s[753]! } - public var Appearance_Title: String { return self._s[754]! } + public var ChatList_Context_RemoveFromRecents: String { return self._s[755]! } + public var Appearance_Title: String { return self._s[756]! } public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[756]!, self._r[756]!, [_0]) + return formatWithArgumentRanges(self._s[758]!, self._r[758]!, [_0]) } - public var Conversation_WalletRequiredText: String { return self._s[757]! } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[758]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[759]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[760]! } - public var Preview_DeletePhoto: String { return self._s[761]! } - public var Appearance_AppIconFilledX: String { return self._s[762]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[763]! } + public var Conversation_WalletRequiredText: String { return self._s[759]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[760]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[761]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[762]! } + public var Preview_DeletePhoto: String { return self._s[763]! } + public var Appearance_AppIconFilledX: String { return self._s[764]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[765]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[764]!, self._r[764]!, [_0]) + return formatWithArgumentRanges(self._s[766]!, self._r[766]!, [_0]) } - public var Coub_TapForSound: String { return self._s[766]! } - public var Map_LocatingError: String { return self._s[767]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[769]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[770]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[771]! } + public var Coub_TapForSound: String { return self._s[768]! } + public var Map_LocatingError: String { return self._s[769]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[771]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[772]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[773]! } public func Wallet_Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[772]!, self._r[772]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[774]!, self._r[774]!, [_1, _2, _3]) } - public var Passport_ForgottenPassword: String { return self._s[773]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[774]! } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[775]! } - public var Login_TermsOfServiceSignupDecline: String { return self._s[777]! } - public var Channel_Moderator_AccessLevelRevoke: String { return self._s[778]! } - public var Message_Location: String { return self._s[779]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[780]! } - public var Channel_Management_Title: String { return self._s[781]! } - public var DialogList_SearchSectionDialogs: String { return self._s[783]! } - public var Compose_NewChannel_Members: String { return self._s[784]! } + public var Passport_ForgottenPassword: String { return self._s[775]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[776]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[777]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[779]! } + public var Channel_Moderator_AccessLevelRevoke: String { return self._s[780]! } + public var Message_Location: String { return self._s[781]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[782]! } + public var Channel_Management_Title: String { return self._s[783]! } + public var DialogList_SearchSectionDialogs: String { return self._s[785]! } + public var Compose_NewChannel_Members: String { return self._s[786]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[785]!, self._r[785]!, [_0]) + return formatWithArgumentRanges(self._s[787]!, self._r[787]!, [_0]) } - public var GroupInfo_Location: String { return self._s[786]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[787]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[788]! } - public var PhotoEditor_WarmthTool: String { return self._s[789]! } - public var Passport_Language_tr: String { return self._s[790]! } + public var GroupInfo_Location: String { return self._s[788]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[789]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[790]! } + public var PhotoEditor_WarmthTool: String { return self._s[791]! } + public var Passport_Language_tr: String { return self._s[792]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[791]!, self._r[791]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[793]!, self._r[793]!, [_1, _2, _3]) } - public var Login_ResetAccountProtected_Reset: String { return self._s[793]! } - public var Watch_PhotoView_Title: String { return self._s[794]! } - public var Passport_Phone_Delete: String { return self._s[795]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[796]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[797]! } - public var GroupInfo_Permissions: String { return self._s[798]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[799]! } - public var Profile_ShareContactButton: String { return self._s[800]! } - public var ChatSettings_Other: String { return self._s[801]! } - public var UserInfo_NotificationsDisabled: String { return self._s[802]! } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[803]! } - public var LastSeen_WithinAMonth: String { return self._s[804]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[805]! } - public var Conversation_ReportGroupLocation: String { return self._s[806]! } - public var Conversation_EncryptionCanceled: String { return self._s[807]! } - public var MediaPicker_GroupDescription: String { return self._s[808]! } - public var WebSearch_Images: String { return self._s[809]! } + public var Login_ResetAccountProtected_Reset: String { return self._s[795]! } + public var Watch_PhotoView_Title: String { return self._s[796]! } + public var Passport_Phone_Delete: String { return self._s[797]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[798]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[799]! } + public var GroupInfo_Permissions: String { return self._s[800]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[801]! } + public var Profile_ShareContactButton: String { return self._s[802]! } + public var ChatSettings_Other: String { return self._s[803]! } + public var UserInfo_NotificationsDisabled: String { return self._s[804]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[805]! } + public var LastSeen_WithinAMonth: String { return self._s[806]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[807]! } + public var Conversation_ReportGroupLocation: String { return self._s[808]! } + public var Conversation_EncryptionCanceled: String { return self._s[809]! } + public var MediaPicker_GroupDescription: String { return self._s[810]! } + public var WebSearch_Images: String { return self._s[811]! } public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[810]!, self._r[810]!, [_0]) + return formatWithArgumentRanges(self._s[812]!, self._r[812]!, [_0]) } - public var Message_Photo: String { return self._s[811]! } - public var PasscodeSettings_HelpBottom: String { return self._s[812]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[813]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[814]! } - public var Passport_Identity_AddDriversLicense: String { return self._s[815]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[816]! } - public var NotificationsSound_Calypso: String { return self._s[817]! } - public var Map_Map: String { return self._s[818]! } - public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[820]! } - public var ChatSettings_TextSizeUnits: String { return self._s[821]! } + public var Message_Photo: String { return self._s[813]! } + public var PasscodeSettings_HelpBottom: String { return self._s[814]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[815]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[816]! } + public var Passport_Identity_AddDriversLicense: String { return self._s[817]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[818]! } + public var NotificationsSound_Calypso: String { return self._s[819]! } + public var Map_Map: String { return self._s[820]! } + public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[822]! } + public var ChatSettings_TextSizeUnits: String { return self._s[823]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[822]!, self._r[822]!, [_0]) + return formatWithArgumentRanges(self._s[824]!, self._r[824]!, [_0]) } - public var Common_of: String { return self._s[823]! } - public var Conversation_ForwardContacts: String { return self._s[826]! } + public var Common_of: String { return self._s[825]! } + public var Conversation_ForwardContacts: String { return self._s[828]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[828]!, self._r[828]!, [_0]) + return formatWithArgumentRanges(self._s[830]!, self._r[830]!, [_0]) } - public var Passport_Language_hy: String { return self._s[829]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[830]! } - public var AutoDownloadSettings_Reset: String { return self._s[831]! } - public var Wallet_TransactionInfo_AddressCopied: String { return self._s[832]! } - public var Paint_ClearConfirm: String { return self._s[833]! } - public var Camera_VideoMode: String { return self._s[834]! } + public var Passport_Language_hy: String { return self._s[831]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[832]! } + public var AutoDownloadSettings_Reset: String { return self._s[833]! } + public var Wallet_TransactionInfo_AddressCopied: String { return self._s[834]! } + public var Paint_ClearConfirm: String { return self._s[835]! } + public var Camera_VideoMode: String { return self._s[836]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[835]!, self._r[835]!, [_0]) + return formatWithArgumentRanges(self._s[837]!, self._r[837]!, [_0]) } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[836]! } - public var Conversation_ViewBackground: String { return self._s[837]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[838]! } + public var Conversation_ViewBackground: String { return self._s[839]! } public func Wallet_Info_TransactionDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[838]!, self._r[838]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[840]!, self._r[840]!, [_1, _2, _3]) } - public var Passport_Language_el: String { return self._s[839]! } - public var PhotoEditor_Original: String { return self._s[840]! } - public var Settings_FAQ_Button: String { return self._s[842]! } - public var Channel_Setup_PublicNoLink: String { return self._s[844]! } - public var Conversation_UnsupportedMedia: String { return self._s[845]! } - public var Conversation_SlideToCancel: String { return self._s[846]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[847]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[848]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[849]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[850]! } - public var AutoNightTheme_NotAvailable: String { return self._s[851]! } - public var Conversation_Owner: String { return self._s[852]! } - public var Common_Create: String { return self._s[853]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[854]! } - public var ContactList_Context_Call: String { return self._s[855]! } - public var Localization_ChooseLanguage: String { return self._s[857]! } - public var ChatList_Context_AddToContacts: String { return self._s[859]! } - public var Settings_Proxy: String { return self._s[861]! } - public var Privacy_TopPeersHelp: String { return self._s[862]! } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[863]! } - public var Chat_UnsendMyMessages: String { return self._s[864]! } + public var Passport_Language_el: String { return self._s[841]! } + public var PhotoEditor_Original: String { return self._s[842]! } + public var Settings_FAQ_Button: String { return self._s[844]! } + public var Channel_Setup_PublicNoLink: String { return self._s[846]! } + public var Conversation_UnsupportedMedia: String { return self._s[847]! } + public var Conversation_SlideToCancel: String { return self._s[848]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[849]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[850]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[851]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[852]! } + public var AutoNightTheme_NotAvailable: String { return self._s[853]! } + public var Conversation_Owner: String { return self._s[854]! } + public var Common_Create: String { return self._s[855]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[856]! } + public var ContactList_Context_Call: String { return self._s[857]! } + public var Localization_ChooseLanguage: String { return self._s[859]! } + public var ChatList_Context_AddToContacts: String { return self._s[861]! } + public var Settings_Proxy: String { return self._s[863]! } + public var Privacy_TopPeersHelp: String { return self._s[864]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[865]! } + public var Chat_UnsendMyMessages: String { return self._s[866]! } public func VoiceOver_Chat_Duration(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[865]!, self._r[865]!, [_0]) + return formatWithArgumentRanges(self._s[867]!, self._r[867]!, [_0]) } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[866]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[868]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[868]!, self._r[868]!, [_0]) + return formatWithArgumentRanges(self._s[870]!, self._r[870]!, [_0]) } - public var Contacts_SortedByPresence: String { return self._s[869]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[870]! } - public var Cache_Title: String { return self._s[871]! } + public var Contacts_SortedByPresence: String { return self._s[871]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[872]! } + public var Cache_Title: String { return self._s[873]! } public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[872]!, self._r[872]!, [_0]) + return formatWithArgumentRanges(self._s[874]!, self._r[874]!, [_0]) } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[873]! } - public var Channel_Moderator_Title: String { return self._s[874]! } - public var InstantPage_AutoNightTheme: String { return self._s[876]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[875]! } + public var Channel_Moderator_Title: String { return self._s[876]! } + public var InstantPage_AutoNightTheme: String { return self._s[878]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[879]!, self._r[879]!, [_1]) + return formatWithArgumentRanges(self._s[881]!, self._r[881]!, [_1]) } - public var Passport_Scans_Upload: String { return self._s[880]! } - public var Undo_Undo: String { return self._s[882]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[883]! } - public var TwoStepAuth_RemovePassword: String { return self._s[884]! } - public var Common_Delete: String { return self._s[885]! } - public var Contacts_AddPeopleNearby: String { return self._s[887]! } - public var Conversation_ContextMenuDelete: String { return self._s[888]! } - public var SocksProxySetup_Credentials: String { return self._s[889]! } - public var Appearance_EditTheme: String { return self._s[891]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[892]! } - public var Wallet_Send_NetworkErrorText: String { return self._s[893]! } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[896]! } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[897]! } - public var Passport_Language_id: String { return self._s[899]! } - public var WallpaperSearch_ColorTeal: String { return self._s[900]! } - public var ChannelIntro_Title: String { return self._s[901]! } + public var Passport_Scans_Upload: String { return self._s[882]! } + public var Undo_Undo: String { return self._s[884]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[885]! } + public var TwoStepAuth_RemovePassword: String { return self._s[886]! } + public var Common_Delete: String { return self._s[887]! } + public var Contacts_AddPeopleNearby: String { return self._s[889]! } + public var Conversation_ContextMenuDelete: String { return self._s[890]! } + public var SocksProxySetup_Credentials: String { return self._s[891]! } + public var Appearance_EditTheme: String { return self._s[893]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[894]! } + public var Wallet_Send_NetworkErrorText: String { return self._s[895]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[898]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[899]! } + public var Passport_Language_id: String { return self._s[901]! } + public var WallpaperSearch_ColorTeal: String { return self._s[902]! } + public var ChannelIntro_Title: String { return self._s[903]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[902]!, self._r[902]!, [_0]) + return formatWithArgumentRanges(self._s[904]!, self._r[904]!, [_0]) } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[904]! } - public var VoiceOver_Chat_Reply: String { return self._s[905]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[906]! } - public var Channel_Info_Description: String { return self._s[907]! } - public var Stickers_FavoriteStickers: String { return self._s[908]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[909]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[910]! } - public var ChatSearch_ResultsTooltip: String { return self._s[911]! } - public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[912]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[913]! } - public var Group_PublicLink_Placeholder: String { return self._s[914]! } - public var Notifications_ExceptionsDefaultSound: String { return self._s[915]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[906]! } + public var VoiceOver_Chat_Reply: String { return self._s[907]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[908]! } + public var Channel_Info_Description: String { return self._s[909]! } + public var Stickers_FavoriteStickers: String { return self._s[910]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[911]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[912]! } + public var ChatSearch_ResultsTooltip: String { return self._s[913]! } + public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[914]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[915]! } + public var Group_PublicLink_Placeholder: String { return self._s[916]! } + public var Notifications_ExceptionsDefaultSound: String { return self._s[917]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[916]!, self._r[916]!, [_1]) + return formatWithArgumentRanges(self._s[918]!, self._r[918]!, [_1]) } - public var TextFormat_Underline: String { return self._s[917]! } + public var TextFormat_Underline: String { return self._s[919]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[918]!, self._r[918]!, [_1, _2]) + return formatWithArgumentRanges(self._s[920]!, self._r[920]!, [_1, _2]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[919]!, self._r[919]!, [_0]) + return formatWithArgumentRanges(self._s[921]!, self._r[921]!, [_0]) } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[920]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[922]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[921]!, self._r[921]!, [_1, _2]) + return formatWithArgumentRanges(self._s[923]!, self._r[923]!, [_1, _2]) } - public var Wallet_Intro_ImportExisting: String { return self._s[922]! } - public var GroupPermission_Delete: String { return self._s[923]! } - public var Passport_Language_uk: String { return self._s[924]! } - public var StickerPack_HideStickers: String { return self._s[926]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[927]! } + public var Wallet_Intro_ImportExisting: String { return self._s[924]! } + public var GroupPermission_Delete: String { return self._s[925]! } + public var Passport_Language_uk: String { return self._s[926]! } + public var StickerPack_HideStickers: String { return self._s[928]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[929]! } public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[928]!, self._r[928]!, [_1, _2]) + return formatWithArgumentRanges(self._s[930]!, self._r[930]!, [_1, _2]) } - public var Activity_UploadingVideoMessage: String { return self._s[929]! } + public var Activity_UploadingVideoMessage: String { return self._s[931]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[930]!, self._r[930]!, [_0]) + return formatWithArgumentRanges(self._s[932]!, self._r[932]!, [_0]) } - public var Channel_TitleInfo: String { return self._s[931]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[932]! } - public var Settings_CallSettings: String { return self._s[933]! } - public var Camera_SquareMode: String { return self._s[934]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[935]! } - public var GroupInfo_SharedMediaNone: String { return self._s[936]! } + public var Channel_TitleInfo: String { return self._s[933]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[934]! } + public var Settings_CallSettings: String { return self._s[935]! } + public var Camera_SquareMode: String { return self._s[936]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[937]! } + public var GroupInfo_SharedMediaNone: String { return self._s[938]! } public func PUSH_MESSAGE_VIDEO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[937]!, self._r[937]!, [_1]) + return formatWithArgumentRanges(self._s[939]!, self._r[939]!, [_1]) } - public var Bot_GenericBotStatus: String { return self._s[938]! } - public var Application_Update: String { return self._s[940]! } - public var Month_ShortJanuary: String { return self._s[941]! } - public var Contacts_PermissionsKeepDisabled: String { return self._s[942]! } - public var Channel_AdminLog_BanReadMessages: String { return self._s[943]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[944]! } - public var Passport_Address_Street2Placeholder: String { return self._s[945]! } + public var Bot_GenericBotStatus: String { return self._s[940]! } + public var Application_Update: String { return self._s[942]! } + public var Month_ShortJanuary: String { return self._s[943]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[944]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[945]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[946]! } + public var Passport_Address_Street2Placeholder: String { return self._s[947]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[946]!, self._r[946]!, [_0]) + return formatWithArgumentRanges(self._s[948]!, self._r[948]!, [_0]) } - public var NetworkUsageSettings_Cellular: String { return self._s[947]! } - public var Appearance_PreviewOutgoingText: String { return self._s[948]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[949]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[951]! } - public var Map_Directions: String { return self._s[952]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[954]! } - public var Appearance_ThemeDay: String { return self._s[955]! } - public var LogoutOptions_LogOut: String { return self._s[956]! } - public var Group_PublicLink_Title: String { return self._s[958]! } - public var Channel_AddBotErrorNoRights: String { return self._s[959]! } - public var Passport_Identity_AddPassport: String { return self._s[960]! } - public var LocalGroup_ButtonTitle: String { return self._s[961]! } - public var Call_Message: String { return self._s[962]! } - public var PhotoEditor_ExposureTool: String { return self._s[963]! } - public var Wallet_Receive_CommentInfo: String { return self._s[965]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[966]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[968]! } - public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[969]! } - public var Appearance_Preview: String { return self._s[970]! } - public var Compose_ChannelMembers: String { return self._s[971]! } - public var Conversation_DeleteManyMessages: String { return self._s[972]! } - public var ReportPeer_ReasonOther_Title: String { return self._s[973]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[974]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[975]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[978]! } - public var Conversation_UpdateTelegram: String { return self._s[979]! } - public var EditTheme_Create_TopInfo: String { return self._s[980]! } + public var NetworkUsageSettings_Cellular: String { return self._s[949]! } + public var Appearance_PreviewOutgoingText: String { return self._s[950]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[951]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[953]! } + public var Map_Directions: String { return self._s[954]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[956]! } + public var Appearance_ThemeDay: String { return self._s[957]! } + public var LogoutOptions_LogOut: String { return self._s[958]! } + public var Group_PublicLink_Title: String { return self._s[960]! } + public var Channel_AddBotErrorNoRights: String { return self._s[961]! } + public var Passport_Identity_AddPassport: String { return self._s[962]! } + public var LocalGroup_ButtonTitle: String { return self._s[963]! } + public var Call_Message: String { return self._s[964]! } + public var PhotoEditor_ExposureTool: String { return self._s[965]! } + public var Wallet_Receive_CommentInfo: String { return self._s[967]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[968]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[970]! } + public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[971]! } + public var Appearance_Preview: String { return self._s[972]! } + public var Compose_ChannelMembers: String { return self._s[973]! } + public var Conversation_DeleteManyMessages: String { return self._s[974]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[975]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[976]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[977]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[980]! } + public var Conversation_UpdateTelegram: String { return self._s[981]! } + public var EditTheme_Create_TopInfo: String { return self._s[982]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[981]!, self._r[981]!, [_0]) + return formatWithArgumentRanges(self._s[983]!, self._r[983]!, [_0]) } - public var Wallet_WordCheck_Continue: String { return self._s[982]! } + public var Wallet_WordCheck_Continue: String { return self._s[984]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[983]!, self._r[983]!, [_1]) + return formatWithArgumentRanges(self._s[985]!, self._r[985]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[984]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[985]! } + public var GroupInfo_Administrators_Title: String { return self._s[986]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[987]! } public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[986]!, self._r[986]!, [_0]) + return formatWithArgumentRanges(self._s[988]!, self._r[988]!, [_0]) } - public var Tour_Title3: String { return self._s[987]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[988]! } - public var Clipboard_SendPhoto: String { return self._s[992]! } - public var MediaPicker_Videos: String { return self._s[993]! } - public var Passport_Email_Title: String { return self._s[994]! } + public var Tour_Title3: String { return self._s[989]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[990]! } + public var Clipboard_SendPhoto: String { return self._s[994]! } + public var MediaPicker_Videos: String { return self._s[995]! } + public var Passport_Email_Title: String { return self._s[996]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[995]!, self._r[995]!, [_0]) + return formatWithArgumentRanges(self._s[997]!, self._r[997]!, [_0]) } - public var StickerPacksSettings_Title: String { return self._s[996]! } - public var Conversation_MessageDialogDelete: String { return self._s[997]! } - public var Privacy_Calls_CustomHelp: String { return self._s[999]! } - public var Message_Wallpaper: String { return self._s[1000]! } - public var MemberSearch_BotSection: String { return self._s[1001]! } - public var GroupInfo_SetSound: String { return self._s[1002]! } - public var Core_ServiceUserStatus: String { return self._s[1003]! } - public var LiveLocationUpdated_JustNow: String { return self._s[1004]! } - public var Call_StatusFailed: String { return self._s[1005]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1006]! } - public var TwoStepAuth_SetPassword: String { return self._s[1007]! } - public var Permissions_PeopleNearbyText_v0: String { return self._s[1008]! } + public var StickerPacksSettings_Title: String { return self._s[998]! } + public var Conversation_MessageDialogDelete: String { return self._s[999]! } + public var Privacy_Calls_CustomHelp: String { return self._s[1001]! } + public var Message_Wallpaper: String { return self._s[1002]! } + public var MemberSearch_BotSection: String { return self._s[1003]! } + public var GroupInfo_SetSound: String { return self._s[1004]! } + public var Core_ServiceUserStatus: String { return self._s[1005]! } + public var LiveLocationUpdated_JustNow: String { return self._s[1006]! } + public var Call_StatusFailed: String { return self._s[1007]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1008]! } + public var TwoStepAuth_SetPassword: String { return self._s[1009]! } + public var Permissions_PeopleNearbyText_v0: String { return self._s[1010]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1010]!, self._r[1010]!, [_0]) + return formatWithArgumentRanges(self._s[1012]!, self._r[1012]!, [_0]) } - public var Calls_SubmitRating: String { return self._s[1011]! } - public var Profile_Username: String { return self._s[1012]! } - public var Bot_DescriptionTitle: String { return self._s[1013]! } - public var MaskStickerSettings_Title: String { return self._s[1014]! } - public var SharedMedia_CategoryOther: String { return self._s[1015]! } - public var GroupInfo_SetGroupPhoto: String { return self._s[1016]! } - public var Common_NotNow: String { return self._s[1017]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[1018]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[1019]! } - public var Map_Location: String { return self._s[1020]! } - public var Invitation_JoinGroup: String { return self._s[1021]! } - public var AutoDownloadSettings_Title: String { return self._s[1023]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1024]! } - public var Channel_ErrorAddBlocked: String { return self._s[1025]! } - public var Conversation_UnblockUser: String { return self._s[1026]! } - public var EditTheme_Edit_TopInfo: String { return self._s[1027]! } - public var Watch_Bot_Restart: String { return self._s[1028]! } - public var TwoStepAuth_Title: String { return self._s[1029]! } - public var Channel_AdminLog_BanSendMessages: String { return self._s[1030]! } - public var Checkout_ShippingMethod: String { return self._s[1031]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1032]! } + public var Calls_SubmitRating: String { return self._s[1013]! } + public var Profile_Username: String { return self._s[1014]! } + public var Bot_DescriptionTitle: String { return self._s[1015]! } + public var MaskStickerSettings_Title: String { return self._s[1016]! } + public var SharedMedia_CategoryOther: String { return self._s[1017]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1018]! } + public var Common_NotNow: String { return self._s[1019]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[1020]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[1021]! } + public var Map_Location: String { return self._s[1022]! } + public var Invitation_JoinGroup: String { return self._s[1023]! } + public var AutoDownloadSettings_Title: String { return self._s[1025]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1026]! } + public var Channel_ErrorAddBlocked: String { return self._s[1027]! } + public var Conversation_UnblockUser: String { return self._s[1028]! } + public var EditTheme_Edit_TopInfo: String { return self._s[1029]! } + public var Watch_Bot_Restart: String { return self._s[1030]! } + public var TwoStepAuth_Title: String { return self._s[1031]! } + public var Channel_AdminLog_BanSendMessages: String { return self._s[1032]! } + public var Checkout_ShippingMethod: String { return self._s[1033]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1034]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1033]!, self._r[1033]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1035]!, self._r[1035]!, [_1, _2, _3]) } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1035]!, self._r[1035]!, [_0]) + return formatWithArgumentRanges(self._s[1037]!, self._r[1037]!, [_0]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1036]!, self._r[1036]!, [_0]) + return formatWithArgumentRanges(self._s[1038]!, self._r[1038]!, [_0]) } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1037]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1038]! } - public var AuthSessions_TerminateOtherSessions: String { return self._s[1039]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[1040]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[1041]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1042]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1043]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[1044]! } - public var Checkout_PaymentMethod_Title: String { return self._s[1045]! } - public var SocksProxySetup_Connection: String { return self._s[1046]! } - public var Group_MessagePhotoRemoved: String { return self._s[1047]! } - public var Channel_Stickers_NotFound: String { return self._s[1050]! } - public var Group_About_Help: String { return self._s[1051]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[1052]! } - public var PeopleNearby_Title: String { return self._s[1054]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1039]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1040]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[1041]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[1042]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[1043]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1044]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1045]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[1046]! } + public var Checkout_PaymentMethod_Title: String { return self._s[1047]! } + public var SocksProxySetup_Connection: String { return self._s[1048]! } + public var Group_MessagePhotoRemoved: String { return self._s[1049]! } + public var Channel_Stickers_NotFound: String { return self._s[1052]! } + public var Group_About_Help: String { return self._s[1053]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[1054]! } + public var PeopleNearby_Title: String { return self._s[1056]! } public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1055]!, self._r[1055]!, [_1]) + return formatWithArgumentRanges(self._s[1057]!, self._r[1057]!, [_1]) } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1057]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1058]! } - public var SocksProxySetup_Password: String { return self._s[1059]! } - public var Notifications_PermissionsEnable: String { return self._s[1060]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[1062]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1059]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1060]! } + public var SocksProxySetup_Password: String { return self._s[1061]! } + public var Notifications_PermissionsEnable: String { return self._s[1062]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[1064]! } public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1063]!, self._r[1063]!, [_1]) + return formatWithArgumentRanges(self._s[1065]!, self._r[1065]!, [_1]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1065]!, self._r[1065]!, [_0]) + return formatWithArgumentRanges(self._s[1067]!, self._r[1067]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1066]! } - public var ArchivedPacksAlert_Title: String { return self._s[1067]! } - public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1068]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1068]! } + public var ArchivedPacksAlert_Title: String { return self._s[1069]! } + public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1070]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1069]!, self._r[1069]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1071]!, self._r[1071]!, [_1, _2, _3]) } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1070]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1072]! } - public var Conversation_StatusTyping: String { return self._s[1073]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[1074]! } - public var Notification_PassportValueProofOfAddress: String { return self._s[1075]! } - public var UserInfo_CreateNewContact: String { return self._s[1076]! } - public var Passport_Identity_FrontSide: String { return self._s[1077]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1078]! } - public var Calls_CallTabTitle: String { return self._s[1079]! } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1080]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1072]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1074]! } + public var Conversation_StatusTyping: String { return self._s[1075]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[1076]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[1077]! } + public var UserInfo_CreateNewContact: String { return self._s[1078]! } + public var Passport_Identity_FrontSide: String { return self._s[1079]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1080]! } + public var Calls_CallTabTitle: String { return self._s[1081]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1082]! } public func Login_BannedPhoneBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1082]!, self._r[1082]!, [_0]) + return formatWithArgumentRanges(self._s[1084]!, self._r[1084]!, [_0]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[1083]! } - public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1084]! } - public var SharedMedia_EmptyMusicText: String { return self._s[1085]! } - public var Wallet_Completed_Text: String { return self._s[1086]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1087]! } - public var Paint_Stickers: String { return self._s[1088]! } - public var Privacy_GroupsAndChannels: String { return self._s[1089]! } - public var ChatList_Context_Delete: String { return self._s[1091]! } - public var UserInfo_AddContact: String { return self._s[1092]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[1085]! } + public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1086]! } + public var SharedMedia_EmptyMusicText: String { return self._s[1087]! } + public var Wallet_Completed_Text: String { return self._s[1088]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1089]! } + public var Paint_Stickers: String { return self._s[1090]! } + public var Privacy_GroupsAndChannels: String { return self._s[1091]! } + public var ChatList_Context_Delete: String { return self._s[1093]! } + public var UserInfo_AddContact: String { return self._s[1094]! } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1093]!, self._r[1093]!, [_0]) + return formatWithArgumentRanges(self._s[1095]!, self._r[1095]!, [_0]) } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1095]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1097]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1097]!, self._r[1097]!, [_0]) + return formatWithArgumentRanges(self._s[1099]!, self._r[1099]!, [_0]) } - public var DialogList_NoMessagesTitle: String { return self._s[1098]! } - public var EditProfile_NameAndPhotoHelp: String { return self._s[1099]! } - public var BlockedUsers_BlockUser: String { return self._s[1100]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1101]! } - public var MediaPicker_UngroupDescription: String { return self._s[1102]! } - public var Watch_NoConnection: String { return self._s[1103]! } - public var Month_GenSeptember: String { return self._s[1104]! } - public var Conversation_ViewGroup: String { return self._s[1106]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1109]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[1110]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1111]! } - public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1112]! } - public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1113]! } - public var MediaPicker_CameraRoll: String { return self._s[1115]! } - public var Month_GenAugust: String { return self._s[1116]! } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[1117]! } - public var SharedMedia_EmptyText: String { return self._s[1118]! } - public var Map_ShareLiveLocation: String { return self._s[1119]! } - public var Calls_All: String { return self._s[1120]! } - public var Appearance_ThemeNight: String { return self._s[1123]! } - public var Conversation_HoldForAudio: String { return self._s[1124]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[1127]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[1128]! } - public var SocksProxySetup_Secret: String { return self._s[1129]! } + public var DialogList_NoMessagesTitle: String { return self._s[1100]! } + public var EditProfile_NameAndPhotoHelp: String { return self._s[1101]! } + public var BlockedUsers_BlockUser: String { return self._s[1102]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1103]! } + public var MediaPicker_UngroupDescription: String { return self._s[1104]! } + public var Watch_NoConnection: String { return self._s[1105]! } + public var Month_GenSeptember: String { return self._s[1106]! } + public var Conversation_ViewGroup: String { return self._s[1108]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1111]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[1112]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1113]! } + public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1114]! } + public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1115]! } + public var MediaPicker_CameraRoll: String { return self._s[1117]! } + public var Month_GenAugust: String { return self._s[1118]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[1119]! } + public var SharedMedia_EmptyText: String { return self._s[1120]! } + public var Map_ShareLiveLocation: String { return self._s[1121]! } + public var Calls_All: String { return self._s[1122]! } + public var Appearance_ThemeNight: String { return self._s[1125]! } + public var Conversation_HoldForAudio: String { return self._s[1126]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[1129]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[1130]! } + public var SocksProxySetup_Secret: String { return self._s[1131]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1130]!, self._r[1130]!, [_0]) + return formatWithArgumentRanges(self._s[1132]!, self._r[1132]!, [_0]) } - public var Channel_BanList_RestrictedTitle: String { return self._s[1132]! } - public var Conversation_Location: String { return self._s[1133]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[1134]! } + public var Conversation_Location: String { return self._s[1135]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1134]!, self._r[1134]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1136]!, self._r[1136]!, [_1, _2]) } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[1136]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1137]! } - public var Notifications_PermissionsText: String { return self._s[1138]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1139]! } - public var Call_Flip: String { return self._s[1140]! } - public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1142]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1143]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1144]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1146]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1148]! } - public var Channel_TooMuchBots: String { return self._s[1150]! } - public var Passport_DeletePassportConfirmation: String { return self._s[1151]! } - public var Login_InvalidCodeError: String { return self._s[1152]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1153]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[1138]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1139]! } + public var Notifications_PermissionsText: String { return self._s[1140]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1141]! } + public var Call_Flip: String { return self._s[1142]! } + public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1144]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1145]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1146]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1148]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1150]! } + public var Channel_TooMuchBots: String { return self._s[1152]! } + public var Passport_DeletePassportConfirmation: String { return self._s[1153]! } + public var Login_InvalidCodeError: String { return self._s[1154]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1155]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1154]!, self._r[1154]!, [_0]) + return formatWithArgumentRanges(self._s[1156]!, self._r[1156]!, [_0]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1155]!, self._r[1155]!, [_0]) + return formatWithArgumentRanges(self._s[1157]!, self._r[1157]!, [_0]) } - public var VoiceOver_Navigation_ProxySettings: String { return self._s[1156]! } - public var Call_CallInProgressTitle: String { return self._s[1157]! } - public var Month_ShortSeptember: String { return self._s[1158]! } - public var Watch_ChannelInfo_Title: String { return self._s[1159]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1162]! } - public var DialogList_PasscodeLockHelp: String { return self._s[1163]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[1164]! } - public var Wallet_Receive_Title: String { return self._s[1165]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[1166]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1167]! } - public var PhotoEditor_CropReset: String { return self._s[1168]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1170]! } - public var Channel_Management_LabelEditor: String { return self._s[1171]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1173]! } - public var PhotoEditor_HighlightsTool: String { return self._s[1174]! } - public var Wallet_Info_WalletCreated: String { return self._s[1175]! } - public var UserInfo_Title: String { return self._s[1176]! } - public var ChatList_HideAction: String { return self._s[1177]! } - public var AccessDenied_Title: String { return self._s[1178]! } - public var DialogList_SearchLabel: String { return self._s[1179]! } - public var Group_Setup_HistoryHidden: String { return self._s[1180]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1181]! } - public var State_Updating: String { return self._s[1183]! } - public var Contacts_TabTitle: String { return self._s[1184]! } - public var Notifications_Badge_CountUnreadMessages: String { return self._s[1186]! } - public var GroupInfo_GroupHistory: String { return self._s[1187]! } - public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1188]! } - public var Wallpaper_SetColor: String { return self._s[1189]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1190]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1191]! } - public var Chat_AttachmentLimitReached: String { return self._s[1192]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1193]! } - public var Contacts_NotRegisteredSection: String { return self._s[1194]! } + public var VoiceOver_Navigation_ProxySettings: String { return self._s[1158]! } + public var Call_CallInProgressTitle: String { return self._s[1159]! } + public var Month_ShortSeptember: String { return self._s[1160]! } + public var Watch_ChannelInfo_Title: String { return self._s[1161]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1164]! } + public var DialogList_PasscodeLockHelp: String { return self._s[1165]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[1166]! } + public var Wallet_Receive_Title: String { return self._s[1167]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[1168]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1169]! } + public var PhotoEditor_CropReset: String { return self._s[1170]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1172]! } + public var Channel_Management_LabelEditor: String { return self._s[1173]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1175]! } + public var PhotoEditor_HighlightsTool: String { return self._s[1176]! } + public var Wallet_Info_WalletCreated: String { return self._s[1177]! } + public var UserInfo_Title: String { return self._s[1178]! } + public var ChatList_HideAction: String { return self._s[1179]! } + public var AccessDenied_Title: String { return self._s[1180]! } + public var DialogList_SearchLabel: String { return self._s[1181]! } + public var Group_Setup_HistoryHidden: String { return self._s[1182]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1183]! } + public var State_Updating: String { return self._s[1185]! } + public var Contacts_TabTitle: String { return self._s[1186]! } + public var Notifications_Badge_CountUnreadMessages: String { return self._s[1188]! } + public var GroupInfo_GroupHistory: String { return self._s[1189]! } + public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1190]! } + public var Wallpaper_SetColor: String { return self._s[1191]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1192]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1193]! } + public var Chat_AttachmentLimitReached: String { return self._s[1194]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1195]! } + public var Contacts_NotRegisteredSection: String { return self._s[1196]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1195]!, self._r[1195]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1197]!, self._r[1197]!, [_1, _2, _3]) } - public var Paint_Clear: String { return self._s[1196]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[1197]! } - public var SocksProxySetup_Connecting: String { return self._s[1198]! } - public var ExplicitContent_AlertChannel: String { return self._s[1199]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[1200]! } - public var Conversation_Contact: String { return self._s[1201]! } - public var Login_CodeExpired: String { return self._s[1202]! } - public var Passport_DiscardMessageAction: String { return self._s[1203]! } - public var ChatList_Context_Unpin: String { return self._s[1204]! } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1205]! } + public var Paint_Clear: String { return self._s[1198]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[1199]! } + public var SocksProxySetup_Connecting: String { return self._s[1200]! } + public var ExplicitContent_AlertChannel: String { return self._s[1201]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[1202]! } + public var Conversation_Contact: String { return self._s[1203]! } + public var Login_CodeExpired: String { return self._s[1204]! } + public var Passport_DiscardMessageAction: String { return self._s[1205]! } + public var ChatList_Context_Unpin: String { return self._s[1206]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1207]! } public func VoiceOver_Chat_MusicFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1206]!, self._r[1206]!, [_0]) + return formatWithArgumentRanges(self._s[1208]!, self._r[1208]!, [_0]) } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[1207]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1208]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[1209]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1210]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1209]!, self._r[1209]!, [_0]) + return formatWithArgumentRanges(self._s[1211]!, self._r[1211]!, [_0]) } - public var Month_ShortApril: String { return self._s[1210]! } - public var AuthSessions_CurrentSession: String { return self._s[1211]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1214]! } - public var Wallet_Navigation_Cancel: String { return self._s[1216]! } - public var WallpaperPreview_CropTopText: String { return self._s[1217]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1218]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1219]! } + public var Month_ShortApril: String { return self._s[1212]! } + public var AuthSessions_CurrentSession: String { return self._s[1213]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1216]! } + public var Wallet_Navigation_Cancel: String { return self._s[1218]! } + public var WallpaperPreview_CropTopText: String { return self._s[1219]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1220]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1221]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1220]!, self._r[1220]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1222]!, self._r[1222]!, [_0, _1]) } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1221]! } - public var Channel_Setup_TypePrivate: String { return self._s[1223]! } - public var Forward_ChannelReadOnly: String { return self._s[1226]! } - public var PhotoEditor_CurvesBlue: String { return self._s[1227]! } - public var AddContact_SharedContactException: String { return self._s[1228]! } - public var UserInfo_BotPrivacy: String { return self._s[1230]! } - public var Wallet_CreateInvoice_Title: String { return self._s[1231]! } - public var Notification_PassportValueEmail: String { return self._s[1232]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[1233]! } - public var GroupPermission_NewTitle: String { return self._s[1234]! } - public var CallFeedback_ReasonDropped: String { return self._s[1235]! } - public var GroupInfo_Permissions_AddException: String { return self._s[1236]! } - public var Channel_SignMessages_Help: String { return self._s[1238]! } - public var Undo_ChatDeleted: String { return self._s[1240]! } - public var Conversation_ChatBackground: String { return self._s[1241]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1223]! } + public var Channel_Setup_TypePrivate: String { return self._s[1225]! } + public var Forward_ChannelReadOnly: String { return self._s[1228]! } + public var PhotoEditor_CurvesBlue: String { return self._s[1229]! } + public var AddContact_SharedContactException: String { return self._s[1230]! } + public var UserInfo_BotPrivacy: String { return self._s[1232]! } + public var Wallet_CreateInvoice_Title: String { return self._s[1233]! } + public var Notification_PassportValueEmail: String { return self._s[1234]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[1235]! } + public var GroupPermission_NewTitle: String { return self._s[1236]! } + public var CallFeedback_ReasonDropped: String { return self._s[1237]! } + public var GroupInfo_Permissions_AddException: String { return self._s[1238]! } + public var Channel_SignMessages_Help: String { return self._s[1240]! } + public var Undo_ChatDeleted: String { return self._s[1242]! } + public var Conversation_ChatBackground: String { return self._s[1243]! } public func Wallet_WordCheck_Text(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1242]!, self._r[1242]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1244]!, self._r[1244]!, [_1, _2, _3]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1243]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1244]! } - public var Passport_Language_pt: String { return self._s[1245]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1246]! } - public var NotificationsSound_Popcorn: String { return self._s[1249]! } - public var AutoNightTheme_Disabled: String { return self._s[1250]! } - public var BlockedUsers_LeavePrefix: String { return self._s[1251]! } - public var WallpaperPreview_CustomColorTopText: String { return self._s[1252]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1253]! } - public var WallpaperSearch_ColorBlue: String { return self._s[1254]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1245]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1246]! } + public var Passport_Language_pt: String { return self._s[1247]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1248]! } + public var NotificationsSound_Popcorn: String { return self._s[1251]! } + public var AutoNightTheme_Disabled: String { return self._s[1252]! } + public var BlockedUsers_LeavePrefix: String { return self._s[1253]! } + public var WallpaperPreview_CustomColorTopText: String { return self._s[1254]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1255]! } + public var WallpaperSearch_ColorBlue: String { return self._s[1256]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1255]!, self._r[1255]!, [_0]) + return formatWithArgumentRanges(self._s[1257]!, self._r[1257]!, [_0]) } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1256]! } - public var SocksProxySetup_UseForCalls: String { return self._s[1257]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[1259]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1258]! } + public var SocksProxySetup_UseForCalls: String { return self._s[1259]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[1261]! } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1260]!, self._r[1260]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1262]!, self._r[1262]!, ["\(_0)"]) } - public var SocksProxySetup_Hostname: String { return self._s[1263]! } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1264]! } - public var Compose_NewEncryptedChat: String { return self._s[1265]! } - public var Login_CodeFloodError: String { return self._s[1266]! } - public var Calls_TabTitle: String { return self._s[1267]! } - public var Privacy_ProfilePhoto: String { return self._s[1268]! } - public var Passport_Language_he: String { return self._s[1269]! } + public var SocksProxySetup_Hostname: String { return self._s[1265]! } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1266]! } + public var Compose_NewEncryptedChat: String { return self._s[1267]! } + public var Login_CodeFloodError: String { return self._s[1268]! } + public var Calls_TabTitle: String { return self._s[1269]! } + public var Privacy_ProfilePhoto: String { return self._s[1270]! } + public var Passport_Language_he: String { return self._s[1271]! } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1270]!, self._r[1270]!, [_0]) - } - public var GroupPermission_Title: String { return self._s[1271]! } - public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1272]!, self._r[1272]!, [_0]) } - public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1273]! } - public var GroupPermission_NoChangeInfo: String { return self._s[1274]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[1275]! } - public var Tour_Text1: String { return self._s[1276]! } - public var Channel_EditAdmin_TransferOwnership: String { return self._s[1277]! } - public var Month_ShortFebruary: String { return self._s[1278]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1279]! } + public var GroupPermission_Title: String { return self._s[1273]! } + public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1274]!, self._r[1274]!, [_0]) + } + public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1275]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1276]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[1277]! } + public var Tour_Text1: String { return self._s[1278]! } + public var Channel_EditAdmin_TransferOwnership: String { return self._s[1279]! } + public var Month_ShortFebruary: String { return self._s[1280]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1281]! } public func Wallet_Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1280]!, self._r[1280]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1282]!, self._r[1282]!, [_1, _2, _3]) } - public var NotificationsSound_Glass: String { return self._s[1281]! } - public var Appearance_ThemeNightBlue: String { return self._s[1282]! } - public var CheckoutInfo_Pay: String { return self._s[1283]! } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1285]! } - public var Call_CallAgain: String { return self._s[1287]! } - public var AttachmentMenu_SendAsFile: String { return self._s[1288]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[1289]! } - public var Passport_InvalidPasswordError: String { return self._s[1290]! } - public var Watch_Message_Game: String { return self._s[1291]! } - public var Stickers_Install: String { return self._s[1292]! } - public var VoiceOver_Chat_Message: String { return self._s[1293]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1294]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[1296]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1297]! } - public var AuthSessions_OtherSessions: String { return self._s[1298]! } - public var Channel_Username_Help: String { return self._s[1299]! } - public var Camera_Title: String { return self._s[1300]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1302]! } - public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1303]! } - public var Channel_AdminLog_SendPolls: String { return self._s[1304]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1305]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1306]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1307]! } - public var ScheduledMessages_DeleteMany: String { return self._s[1308]! } - public var Conversation_RestrictedStickers: String { return self._s[1309]! } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[1311]! } - public var UserInfo_TelegramCall: String { return self._s[1313]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1314]! } - public var CreatePoll_OptionsHeader: String { return self._s[1315]! } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1316]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1317]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1318]! } - public var Passport_Identity_EditPersonalDetails: String { return self._s[1319]! } + public var NotificationsSound_Glass: String { return self._s[1283]! } + public var Appearance_ThemeNightBlue: String { return self._s[1284]! } + public var CheckoutInfo_Pay: String { return self._s[1285]! } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1287]! } + public var Call_CallAgain: String { return self._s[1289]! } + public var AttachmentMenu_SendAsFile: String { return self._s[1290]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[1291]! } + public var Passport_InvalidPasswordError: String { return self._s[1292]! } + public var Watch_Message_Game: String { return self._s[1293]! } + public var Stickers_Install: String { return self._s[1294]! } + public var VoiceOver_Chat_Message: String { return self._s[1295]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1296]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[1298]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1299]! } + public var AuthSessions_OtherSessions: String { return self._s[1300]! } + public var Channel_Username_Help: String { return self._s[1301]! } + public var Camera_Title: String { return self._s[1302]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1304]! } + public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1305]! } + public var Channel_AdminLog_SendPolls: String { return self._s[1306]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1307]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1308]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1309]! } + public var ScheduledMessages_DeleteMany: String { return self._s[1310]! } + public var Conversation_RestrictedStickers: String { return self._s[1311]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[1313]! } + public var UserInfo_TelegramCall: String { return self._s[1315]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1316]! } + public var CreatePoll_OptionsHeader: String { return self._s[1317]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1318]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1319]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1320]! } + public var Passport_Identity_EditPersonalDetails: String { return self._s[1321]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1320]!, self._r[1320]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1322]!, self._r[1322]!, [_1, _2, _3]) } - public var Wallet_Month_GenAugust: String { return self._s[1321]! } - public var Settings_SaveEditedPhotos: String { return self._s[1322]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[1323]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1324]! } - public var Conversation_MessageDialogRetry: String { return self._s[1325]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[1326]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[1327]! } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1328]! } - public var Group_Setup_TypeHeader: String { return self._s[1329]! } - public var Paint_RecentStickers: String { return self._s[1330]! } - public var PhotoEditor_GrainTool: String { return self._s[1331]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[1332]! } - public var EmptyGroupInfo_Line4: String { return self._s[1333]! } - public var Watch_AuthRequired: String { return self._s[1335]! } + public var Wallet_Month_GenAugust: String { return self._s[1323]! } + public var Settings_SaveEditedPhotos: String { return self._s[1324]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[1325]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1326]! } + public var Conversation_MessageDialogRetry: String { return self._s[1327]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[1328]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[1329]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1330]! } + public var Group_Setup_TypeHeader: String { return self._s[1331]! } + public var Paint_RecentStickers: String { return self._s[1332]! } + public var PhotoEditor_GrainTool: String { return self._s[1333]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[1334]! } + public var EmptyGroupInfo_Line4: String { return self._s[1335]! } + public var Watch_AuthRequired: String { return self._s[1337]! } public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1336]!, self._r[1336]!, [_0]) + return formatWithArgumentRanges(self._s[1338]!, self._r[1338]!, [_0]) } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1337]! } - public var ChannelIntro_Text: String { return self._s[1338]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[1339]! } - public var GroupPermission_NoSendMedia: String { return self._s[1340]! } - public var Calls_AddTab: String { return self._s[1341]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[1342]! } - public var Channel_AdminLog_EmptyFilterText: String { return self._s[1343]! } - public var Conversation_WalletRequiredSetup: String { return self._s[1344]! } - public var Notification_MessageLifetime1d: String { return self._s[1345]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1346]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1347]! } - public var Passport_Identity_GenderFemale: String { return self._s[1348]! } - public var BlockedUsers_BlockTitle: String { return self._s[1349]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1339]! } + public var ChannelIntro_Text: String { return self._s[1340]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[1341]! } + public var GroupPermission_NoSendMedia: String { return self._s[1342]! } + public var Calls_AddTab: String { return self._s[1343]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[1344]! } + public var Channel_AdminLog_EmptyFilterText: String { return self._s[1345]! } + public var Conversation_WalletRequiredSetup: String { return self._s[1346]! } + public var Notification_MessageLifetime1d: String { return self._s[1347]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1348]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1349]! } + public var Passport_Identity_GenderFemale: String { return self._s[1350]! } + public var BlockedUsers_BlockTitle: String { return self._s[1351]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1350]!, self._r[1350]!, [_1]) + return formatWithArgumentRanges(self._s[1352]!, self._r[1352]!, [_1]) } - public var Weekday_Yesterday: String { return self._s[1351]! } - public var WallpaperSearch_ColorBlack: String { return self._s[1352]! } - public var Settings_Context_Logout: String { return self._s[1353]! } - public var Wallet_Info_UnknownTransaction: String { return self._s[1354]! } - public var ChatList_ArchiveAction: String { return self._s[1355]! } - public var AutoNightTheme_Scheduled: String { return self._s[1356]! } + public var Weekday_Yesterday: String { return self._s[1353]! } + public var WallpaperSearch_ColorBlack: String { return self._s[1354]! } + public var Settings_Context_Logout: String { return self._s[1355]! } + public var Wallet_Info_UnknownTransaction: String { return self._s[1356]! } + public var ChatList_ArchiveAction: String { return self._s[1357]! } + public var AutoNightTheme_Scheduled: String { return self._s[1358]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1357]!, self._r[1357]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[1359]!, self._r[1359]!, [_1, _2, _3, _4, _5, _6]) } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1358]! } - public var Wallet_Receive_CreateInvoice: String { return self._s[1359]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1360]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1360]! } + public var Wallet_Receive_CreateInvoice: String { return self._s[1361]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1362]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1361]!, self._r[1361]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1363]!, self._r[1363]!, [_1, _2]) } - public var CreatePoll_Create: String { return self._s[1362]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1363]! } + public var CreatePoll_Create: String { return self._s[1364]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1365]! } public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1364]!, self._r[1364]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1366]!, self._r[1366]!, [_1, _2]) } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1365]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1366]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[1368]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1367]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1368]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[1370]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1369]!, self._r[1369]!, [_1]) + return formatWithArgumentRanges(self._s[1371]!, self._r[1371]!, [_1]) } - public var Preview_OpenInInstagram: String { return self._s[1370]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1371]! } + public var Preview_OpenInInstagram: String { return self._s[1372]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1373]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1372]!, self._r[1372]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1374]!, self._r[1374]!, [_1, _2, _3]) } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1373]!, self._r[1373]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1375]!, self._r[1375]!, [_1, _2]) } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1374]! } - public var ArchivedChats_IntroText3: String { return self._s[1375]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[1376]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1377]! } - public var Wallet_Month_GenSeptember: String { return self._s[1378]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1379]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1376]! } + public var ArchivedChats_IntroText3: String { return self._s[1377]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[1378]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1379]! } + public var Wallet_Month_GenSeptember: String { return self._s[1380]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1381]! } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1380]!, self._r[1380]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1382]!, self._r[1382]!, [_1, _2, _3]) } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1382]! } - public var FastTwoStepSetup_HintSection: String { return self._s[1383]! } - public var Wallpaper_PhotoLibrary: String { return self._s[1384]! } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1385]! } - public var Gif_NoGifsFound: String { return self._s[1386]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[1387]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1388]! } - public var EditTheme_Preview: String { return self._s[1389]! } - public var GroupInfo_ActionPromote: String { return self._s[1390]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[1391]! } - public var GroupInfo_Permissions_Title: String { return self._s[1392]! } - public var Permissions_ContactsText_v0: String { return self._s[1393]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1394]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1395]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1398]! } - public var Passport_FieldEmailHelp: String { return self._s[1399]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1384]! } + public var FastTwoStepSetup_HintSection: String { return self._s[1385]! } + public var Wallpaper_PhotoLibrary: String { return self._s[1386]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1387]! } + public var Gif_NoGifsFound: String { return self._s[1388]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[1389]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1390]! } + public var EditTheme_Preview: String { return self._s[1391]! } + public var GroupInfo_ActionPromote: String { return self._s[1392]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[1393]! } + public var GroupInfo_Permissions_Title: String { return self._s[1394]! } + public var Permissions_ContactsText_v0: String { return self._s[1395]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1396]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1397]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1400]! } + public var Passport_FieldEmailHelp: String { return self._s[1401]! } public func Activity_RemindAboutUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1400]!, self._r[1400]!, [_0]) + return formatWithArgumentRanges(self._s[1402]!, self._r[1402]!, [_0]) } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1401]! } - public var Weekday_ShortSaturday: String { return self._s[1402]! } - public var ContactInfo_PhoneLabelMain: String { return self._s[1403]! } - public var Watch_Conversation_UserInfo: String { return self._s[1404]! } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1405]! } - public var PrivacyLastSeenSettings_Title: String { return self._s[1406]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[1407]! } - public var PhotoEditor_VignetteTool: String { return self._s[1408]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1409]! } - public var Passport_Language_et: String { return self._s[1410]! } - public var AppUpgrade_Running: String { return self._s[1411]! } - public var Channel_DiscussionGroup_Info: String { return self._s[1413]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1414]! } - public var Passport_Language_bg: String { return self._s[1415]! } - public var Stickers_NoStickersFound: String { return self._s[1417]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1403]! } + public var Weekday_ShortSaturday: String { return self._s[1404]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[1405]! } + public var Watch_Conversation_UserInfo: String { return self._s[1406]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1407]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[1408]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[1409]! } + public var PhotoEditor_VignetteTool: String { return self._s[1410]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1411]! } + public var Passport_Language_et: String { return self._s[1412]! } + public var AppUpgrade_Running: String { return self._s[1413]! } + public var Channel_DiscussionGroup_Info: String { return self._s[1415]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1416]! } + public var Passport_Language_bg: String { return self._s[1417]! } + public var Stickers_NoStickersFound: String { return self._s[1419]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1419]!, self._r[1419]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1421]!, self._r[1421]!, [_1, _2]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1420]!, self._r[1420]!, [_0]) + return formatWithArgumentRanges(self._s[1422]!, self._r[1422]!, [_0]) } - public var Wallet_Month_GenJuly: String { return self._s[1421]! } - public var Wallet_Receive_AddressHeader: String { return self._s[1422]! } - public var Wallet_Send_AmountText: String { return self._s[1423]! } - public var Settings_About: String { return self._s[1424]! } + public var Wallet_Month_GenJuly: String { return self._s[1423]! } + public var Wallet_Receive_AddressHeader: String { return self._s[1424]! } + public var Wallet_Send_AmountText: String { return self._s[1425]! } + public var Settings_About: String { return self._s[1426]! } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1425]!, self._r[1425]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1427]!, self._r[1427]!, [_0, _1, _2]) } - public var ChatList_Context_MarkAsRead: String { return self._s[1427]! } - public var KeyCommand_NewMessage: String { return self._s[1428]! } - public var Group_ErrorAddBlocked: String { return self._s[1429]! } + public var ChatList_Context_MarkAsRead: String { return self._s[1429]! } + public var KeyCommand_NewMessage: String { return self._s[1430]! } + public var Group_ErrorAddBlocked: String { return self._s[1431]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1430]!, self._r[1430]!, [_0]) + return formatWithArgumentRanges(self._s[1432]!, self._r[1432]!, [_0]) } - public var Map_LocationTitle: String { return self._s[1431]! } - public var ReportGroupLocation_Title: String { return self._s[1432]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1433]! } - public var Cache_ClearProgress: String { return self._s[1434]! } + public var Map_LocationTitle: String { return self._s[1433]! } + public var ReportGroupLocation_Title: String { return self._s[1434]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1435]! } + public var Cache_ClearProgress: String { return self._s[1436]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1435]!, self._r[1435]!, [_0]) + return formatWithArgumentRanges(self._s[1437]!, self._r[1437]!, [_0]) } - public var GroupRemoved_AddToGroup: String { return self._s[1436]! } - public var Passport_UpdateRequiredError: String { return self._s[1437]! } - public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1438]! } + public var GroupRemoved_AddToGroup: String { return self._s[1438]! } + public var Passport_UpdateRequiredError: String { return self._s[1439]! } + public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1440]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1439]!, self._r[1439]!, [_1]) + return formatWithArgumentRanges(self._s[1441]!, self._r[1441]!, [_1]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[1441]! } - public var Passport_Identity_MainPageHelp: String { return self._s[1442]! } - public var Conversation_StatusKickedFromGroup: String { return self._s[1443]! } - public var Passport_Language_ka: String { return self._s[1444]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[1443]! } + public var Passport_Identity_MainPageHelp: String { return self._s[1444]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[1445]! } + public var Passport_Language_ka: String { return self._s[1446]! } public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1445]!, self._r[1445]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1447]!, self._r[1447]!, [_1, _2, _3]) } - public var Call_Decline: String { return self._s[1446]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[1447]! } + public var Call_Decline: String { return self._s[1448]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[1449]! } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1450]!, self._r[1450]!, [_0]) + return formatWithArgumentRanges(self._s[1452]!, self._r[1452]!, [_0]) } - public var CallFeedback_Send: String { return self._s[1451]! } - public var EditTheme_EditTitle: String { return self._s[1452]! } + public var CallFeedback_Send: String { return self._s[1453]! } + public var EditTheme_EditTitle: String { return self._s[1454]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1453]!, self._r[1453]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1455]!, self._r[1455]!, [_1, _2]) } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1454]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1456]! } public func Wallet_Updated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1456]!, self._r[1456]!, [_0]) + return formatWithArgumentRanges(self._s[1458]!, self._r[1458]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1457]! } - public var Passport_DeletePassport: String { return self._s[1458]! } - public var Appearance_AppIconFilled: String { return self._s[1459]! } - public var Privacy_Calls_P2PAlways: String { return self._s[1460]! } - public var Month_ShortDecember: String { return self._s[1461]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1463]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1459]! } + public var Passport_DeletePassport: String { return self._s[1460]! } + public var Appearance_AppIconFilled: String { return self._s[1461]! } + public var Privacy_Calls_P2PAlways: String { return self._s[1462]! } + public var Month_ShortDecember: String { return self._s[1463]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1465]! } public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1464]!, self._r[1464]!, [_0]) + return formatWithArgumentRanges(self._s[1466]!, self._r[1466]!, [_0]) } - public var Channel_Stickers_Searching: String { return self._s[1465]! } - public var Conversation_EncryptedDescription1: String { return self._s[1466]! } - public var Conversation_EncryptedDescription2: String { return self._s[1467]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[1468]! } - public var Conversation_EncryptedDescription3: String { return self._s[1470]! } - public var PhotoEditor_SharpenTool: String { return self._s[1471]! } + public var Channel_Stickers_Searching: String { return self._s[1467]! } + public var Conversation_EncryptedDescription1: String { return self._s[1468]! } + public var Conversation_EncryptedDescription2: String { return self._s[1469]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[1470]! } + public var Conversation_EncryptedDescription3: String { return self._s[1472]! } + public var PhotoEditor_SharpenTool: String { return self._s[1473]! } public func Conversation_AddNameToContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1472]!, self._r[1472]!, [_0]) + return formatWithArgumentRanges(self._s[1474]!, self._r[1474]!, [_0]) } - public var Conversation_EncryptedDescription4: String { return self._s[1474]! } - public var Channel_Members_AddMembers: String { return self._s[1475]! } - public var Wallpaper_Search: String { return self._s[1476]! } - public var Weekday_Friday: String { return self._s[1477]! } - public var Privacy_ContactsSync: String { return self._s[1478]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1479]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1480]! } + public var Conversation_EncryptedDescription4: String { return self._s[1476]! } + public var Channel_Members_AddMembers: String { return self._s[1477]! } + public var Wallpaper_Search: String { return self._s[1478]! } + public var Weekday_Friday: String { return self._s[1479]! } + public var Privacy_ContactsSync: String { return self._s[1480]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1481]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1482]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1481]!, self._r[1481]!, [_0]) + return formatWithArgumentRanges(self._s[1483]!, self._r[1483]!, [_0]) } - public var GroupInfo_Permissions_Removed: String { return self._s[1482]! } - public var Passport_Identity_GenderMale: String { return self._s[1483]! } + public var GroupInfo_Permissions_Removed: String { return self._s[1484]! } + public var Passport_Identity_GenderMale: String { return self._s[1485]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1484]!, self._r[1484]!, [_0]) + return formatWithArgumentRanges(self._s[1486]!, self._r[1486]!, [_0]) } - public var Notifications_PermissionsKeepDisabled: String { return self._s[1485]! } - public var Conversation_JumpToDate: String { return self._s[1486]! } - public var Contacts_GlobalSearch: String { return self._s[1487]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1488]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[1489]! } - public var Profile_MessageLifetime1d: String { return self._s[1490]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[1487]! } + public var Conversation_JumpToDate: String { return self._s[1488]! } + public var Contacts_GlobalSearch: String { return self._s[1489]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1490]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[1491]! } + public var Profile_MessageLifetime1d: String { return self._s[1492]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1491]!, self._r[1491]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1493]!, self._r[1493]!, [_1, _2]) } - public var StickerPack_BuiltinPackName: String { return self._s[1494]! } + public var StickerPack_BuiltinPackName: String { return self._s[1496]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1495]!, self._r[1495]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1497]!, self._r[1497]!, [_1, _2]) } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1496]! } - public var Passport_InfoTitle: String { return self._s[1498]! } - public var Notifications_PermissionsUnreachableText: String { return self._s[1499]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1498]! } + public var Passport_InfoTitle: String { return self._s[1500]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[1501]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1503]!, self._r[1503]!, [_0]) + return formatWithArgumentRanges(self._s[1505]!, self._r[1505]!, [_0]) } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1504]!, self._r[1504]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1506]!, self._r[1506]!, [_1, _2]) } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1505]! } - public var Profile_BotInfo: String { return self._s[1506]! } - public var Watch_Compose_CreateMessage: String { return self._s[1507]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1508]! } - public var Month_ShortNovember: String { return self._s[1509]! } - public var Conversation_ScamWarning: String { return self._s[1510]! } - public var Wallpaper_SetCustomBackground: String { return self._s[1511]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1512]! } - public var NotificationsSound_Chime: String { return self._s[1513]! } - public var Passport_Language_ko: String { return self._s[1515]! } - public var InviteText_URL: String { return self._s[1516]! } - public var TextFormat_Monospace: String { return self._s[1517]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1507]! } + public var Profile_BotInfo: String { return self._s[1508]! } + public var Watch_Compose_CreateMessage: String { return self._s[1509]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1510]! } + public var Month_ShortNovember: String { return self._s[1511]! } + public var Conversation_ScamWarning: String { return self._s[1512]! } + public var Wallpaper_SetCustomBackground: String { return self._s[1513]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1514]! } + public var NotificationsSound_Chime: String { return self._s[1515]! } + public var Passport_Language_ko: String { return self._s[1517]! } + public var InviteText_URL: String { return self._s[1518]! } + public var TextFormat_Monospace: String { return self._s[1519]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1520]!, self._r[1520]!, [_1, _2, _3]) } - public var EditTheme_Edit_BottomInfo: String { return self._s[1519]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[1521]! } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1520]!, self._r[1520]!, [_0]) + return formatWithArgumentRanges(self._s[1522]!, self._r[1522]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1521]!, self._r[1521]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1523]!, self._r[1523]!, [_1, _2]) } - public var Wallet_Words_Title: String { return self._s[1522]! } - public var Wallet_Month_ShortMay: String { return self._s[1523]! } - public var EditTheme_CreateTitle: String { return self._s[1525]! } - public var Passport_InfoLearnMore: String { return self._s[1526]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[1527]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1528]! } - public var Your_card_has_expired: String { return self._s[1529]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[1530]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1531]! } - public var Conversation_Report: String { return self._s[1535]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1536]! } - public var Notification_MessageLifetime1m: String { return self._s[1537]! } - public var Privacy_ContactsTitle: String { return self._s[1538]! } - public var Conversation_ShareMyContactInfo: String { return self._s[1539]! } - public var Wallet_WordCheck_Title: String { return self._s[1540]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1541]! } - public var Channel_Members_Title: String { return self._s[1542]! } - public var Map_OpenInWaze: String { return self._s[1543]! } - public var Login_PhoneBannedError: String { return self._s[1544]! } + public var Wallet_Words_Title: String { return self._s[1524]! } + public var Wallet_Month_ShortMay: String { return self._s[1525]! } + public var EditTheme_CreateTitle: String { return self._s[1527]! } + public var Passport_InfoLearnMore: String { return self._s[1528]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[1529]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1530]! } + public var Your_card_has_expired: String { return self._s[1531]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[1532]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1533]! } + public var Conversation_Report: String { return self._s[1537]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1538]! } + public var Notification_MessageLifetime1m: String { return self._s[1539]! } + public var Privacy_ContactsTitle: String { return self._s[1540]! } + public var Conversation_ShareMyContactInfo: String { return self._s[1541]! } + public var Wallet_WordCheck_Title: String { return self._s[1542]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1543]! } + public var Channel_Members_Title: String { return self._s[1544]! } + public var Map_OpenInWaze: String { return self._s[1545]! } + public var Login_PhoneBannedError: String { return self._s[1546]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1545]!, self._r[1545]!, [_0]) + return formatWithArgumentRanges(self._s[1547]!, self._r[1547]!, [_0]) } - public var Group_Management_AddModeratorHelp: String { return self._s[1546]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[1547]! } - public var Common_OK: String { return self._s[1548]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1549]! } - public var Wallet_Words_NotDoneResponse: String { return self._s[1550]! } - public var Cache_Music: String { return self._s[1551]! } - public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1552]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1553]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1554]! } + public var Group_Management_AddModeratorHelp: String { return self._s[1548]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[1549]! } + public var Common_OK: String { return self._s[1550]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1551]! } + public var Wallet_Words_NotDoneResponse: String { return self._s[1552]! } + public var Cache_Music: String { return self._s[1553]! } + public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1554]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1555]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1556]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1555]!, self._r[1555]!, [_1]) + return formatWithArgumentRanges(self._s[1557]!, self._r[1557]!, [_1]) } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1556]!, self._r[1556]!, [_0]) + return formatWithArgumentRanges(self._s[1558]!, self._r[1558]!, [_0]) } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1557]!, self._r[1557]!, [_0]) + return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_0]) } - public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1558]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1560]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[1561]! } - public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1563]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1564]! } - public var State_ConnectingToProxyInfo: String { return self._s[1565]! } - public var Message_VideoMessage: String { return self._s[1567]! } - public var ChannelInfo_DeleteChannel: String { return self._s[1568]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1569]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[1570]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1571]! } + public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1560]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1562]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[1563]! } + public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1565]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1566]! } + public var State_ConnectingToProxyInfo: String { return self._s[1567]! } + public var Message_VideoMessage: String { return self._s[1569]! } + public var ChannelInfo_DeleteChannel: String { return self._s[1570]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1571]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[1572]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1573]! } public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1572]!, self._r[1572]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1574]!, self._r[1574]!, [_1, _2, _3]) } - public var WallpaperPreview_SwipeBottomText: String { return self._s[1573]! } - public var Activity_RecordingAudio: String { return self._s[1574]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[1575]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1576]! } - public var Wallet_Info_Address: String { return self._s[1577]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[1575]! } + public var Activity_RecordingAudio: String { return self._s[1576]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[1577]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1578]! } + public var Wallet_Info_Address: String { return self._s[1579]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1579]!, self._r[1579]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1581]!, self._r[1581]!, [_0, _1]) } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1583]!, self._r[1583]!, [_0]) + return formatWithArgumentRanges(self._s[1585]!, self._r[1585]!, [_0]) } - public var Conversation_ApplyLocalization: String { return self._s[1584]! } - public var UserInfo_AddPhone: String { return self._s[1585]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1586]! } + public var Conversation_ApplyLocalization: String { return self._s[1586]! } + public var UserInfo_AddPhone: String { return self._s[1587]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1588]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1587]!, self._r[1587]!, [_0]) + return formatWithArgumentRanges(self._s[1589]!, self._r[1589]!, [_0]) } - public var Passport_Scans: String { return self._s[1589]! } - public var BlockedUsers_Unblock: String { return self._s[1590]! } + public var Passport_Scans: String { return self._s[1591]! } + public var BlockedUsers_Unblock: String { return self._s[1592]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1591]!, self._r[1591]!, [_1]) + return formatWithArgumentRanges(self._s[1593]!, self._r[1593]!, [_1]) } - public var Channel_Management_LabelCreator: String { return self._s[1592]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[1593]! } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1594]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1595]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1596]! } + public var Channel_Management_LabelCreator: String { return self._s[1594]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[1595]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1596]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1597]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1598]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1597]!, self._r[1597]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1599]!, self._r[1599]!, [_0, _1, _2]) } - public var Login_PhoneNumberHelp: String { return self._s[1598]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1599]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[1600]! } - public var ChannelIntro_CreateChannel: String { return self._s[1601]! } - public var Conversation_UnreadMessages: String { return self._s[1602]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1603]! } - public var Channel_AdminLog_EmptyText: String { return self._s[1604]! } - public var Theme_Context_Apply: String { return self._s[1605]! } - public var Notification_GroupActivated: String { return self._s[1606]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[1607]! } - public var Wallet_Intro_CreateWallet: String { return self._s[1608]! } + public var Login_PhoneNumberHelp: String { return self._s[1600]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1601]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[1602]! } + public var ChannelIntro_CreateChannel: String { return self._s[1603]! } + public var Conversation_UnreadMessages: String { return self._s[1604]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1605]! } + public var Channel_AdminLog_EmptyText: String { return self._s[1606]! } + public var Theme_Context_Apply: String { return self._s[1607]! } + public var Notification_GroupActivated: String { return self._s[1608]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[1609]! } + public var Wallet_Intro_CreateWallet: String { return self._s[1610]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1609]!, self._r[1609]!, [_0]) + return formatWithArgumentRanges(self._s[1611]!, self._r[1611]!, [_0]) } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1610]!, self._r[1610]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1612]!, self._r[1612]!, [_0, _1]) } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1612]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1614]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1613]!, self._r[1613]!, [_0]) + return formatWithArgumentRanges(self._s[1615]!, self._r[1615]!, [_0]) } - public var Undo_DeletedChannel: String { return self._s[1614]! } - public var CallFeedback_AddComment: String { return self._s[1615]! } + public var Undo_DeletedChannel: String { return self._s[1616]! } + public var CallFeedback_AddComment: String { return self._s[1617]! } public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1616]!, self._r[1616]!, [_0]) - } - public var Document_TargetConfirmationFormat: String { return self._s[1617]! } - public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1618]!, self._r[1618]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[1619]! } + public var Document_TargetConfirmationFormat: String { return self._s[1619]! } + public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1620]!, self._r[1620]!, [_0]) + } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[1621]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1620]!, self._r[1620]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[1622]!, self._r[1622]!, [_1, _2, _3, _4]) } - public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1621]! } - public var Theme_ErrorNotFound: String { return self._s[1622]! } - public var Contacts_SortByName: String { return self._s[1623]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1624]! } + public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1623]! } + public var Theme_ErrorNotFound: String { return self._s[1624]! } + public var Contacts_SortByName: String { return self._s[1625]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1626]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1626]!, self._r[1626]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1628]!, self._r[1628]!, [_1, _2, _3]) } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1627]! } - public var ScheduledMessages_EditTime: String { return self._s[1628]! } - public var Conversation_ClearSelfHistory: String { return self._s[1629]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1630]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[1631]! } - public var Stickers_SuggestNone: String { return self._s[1632]! } - public var ChatSettings_Cache: String { return self._s[1633]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1634]! } - public var Media_ShareThisPhoto: String { return self._s[1635]! } - public var Chat_SlowmodeTooltipPending: String { return self._s[1636]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1637]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1638]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1639]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1640]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1641]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1629]! } + public var ScheduledMessages_EditTime: String { return self._s[1630]! } + public var Conversation_ClearSelfHistory: String { return self._s[1631]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1632]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[1633]! } + public var Stickers_SuggestNone: String { return self._s[1634]! } + public var ChatSettings_Cache: String { return self._s[1635]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1636]! } + public var Media_ShareThisPhoto: String { return self._s[1637]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[1638]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1639]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1640]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1641]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1642]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1643]! } public func Wallet_SecureStorageReset_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1642]!, self._r[1642]!, [_0]) + return formatWithArgumentRanges(self._s[1644]!, self._r[1644]!, [_0]) } - public var Permissions_CellularDataTitle_v0: String { return self._s[1643]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1645]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1646]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[1647]! } - public var Map_OpenIn: String { return self._s[1648]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[1645]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1647]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1648]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[1649]! } + public var Map_OpenIn: String { return self._s[1650]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1651]!, self._r[1651]!, [_1]) + return formatWithArgumentRanges(self._s[1653]!, self._r[1653]!, [_1]) } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1652]!, self._r[1652]!, [_0]) + return formatWithArgumentRanges(self._s[1654]!, self._r[1654]!, [_0]) } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1653]! } - public var MessagePoll_LabelClosed: String { return self._s[1654]! } - public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1656]! } - public var Wallet_Send_SendAnyway: String { return self._s[1657]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1658]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[1659]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1660]! } - public var Login_SelectCountry_Title: String { return self._s[1661]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1662]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1655]! } + public var MessagePoll_LabelClosed: String { return self._s[1656]! } + public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1658]! } + public var Wallet_Send_SendAnyway: String { return self._s[1659]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1660]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[1661]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1662]! } + public var Login_SelectCountry_Title: String { return self._s[1663]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1664]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1663]!, self._r[1663]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1665]!, self._r[1665]!, [_1, _2]) } - public var Channel_AdminLog_ChangeInfo: String { return self._s[1664]! } - public var Watch_Suggestion_BRB: String { return self._s[1665]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1666]! } - public var Contacts_PermissionsTitle: String { return self._s[1667]! } - public var Conversation_RestrictedInline: String { return self._s[1668]! } - public var StickerPack_ViewPack: String { return self._s[1670]! } - public var Wallet_UnknownError: String { return self._s[1671]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[1666]! } + public var Watch_Suggestion_BRB: String { return self._s[1667]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1668]! } + public var Contacts_PermissionsTitle: String { return self._s[1669]! } + public var Conversation_RestrictedInline: String { return self._s[1670]! } + public var StickerPack_ViewPack: String { return self._s[1672]! } + public var Wallet_UnknownError: String { return self._s[1673]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1672]!, self._r[1672]!, [_0]) + return formatWithArgumentRanges(self._s[1674]!, self._r[1674]!, [_0]) } - public var Compose_NewChannel: String { return self._s[1674]! } - public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1677]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1679]! } - public var Channel_Info_Stickers: String { return self._s[1680]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[1681]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1682]! } - public var Passport_DeletePersonalDetails: String { return self._s[1683]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[1684]! } - public var Channel_DiscussionGroupInfo: String { return self._s[1685]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1686]! } - public var Conversation_SearchNoResults: String { return self._s[1688]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1689]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1690]! } - public var Login_Code: String { return self._s[1691]! } - public var EditTheme_Create_BottomInfo: String { return self._s[1692]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[1693]! } - public var Weekday_ShortThursday: String { return self._s[1694]! } - public var Resolve_ErrorNotFound: String { return self._s[1696]! } - public var LastSeen_Offline: String { return self._s[1697]! } - public var PeopleNearby_NoMembers: String { return self._s[1698]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[1699]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1700]! } - public var GroupInfo_Title: String { return self._s[1702]! } - public var NotificationsSound_Note: String { return self._s[1703]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1704]! } - public var Watch_Message_Poll: String { return self._s[1705]! } - public var Privacy_Calls: String { return self._s[1706]! } + public var Compose_NewChannel: String { return self._s[1676]! } + public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1679]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1681]! } + public var Channel_Info_Stickers: String { return self._s[1682]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[1683]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1684]! } + public var Passport_DeletePersonalDetails: String { return self._s[1685]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[1686]! } + public var Channel_DiscussionGroupInfo: String { return self._s[1687]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1688]! } + public var Conversation_SearchNoResults: String { return self._s[1690]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1691]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1692]! } + public var Login_Code: String { return self._s[1693]! } + public var EditTheme_Create_BottomInfo: String { return self._s[1694]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[1695]! } + public var Weekday_ShortThursday: String { return self._s[1696]! } + public var Resolve_ErrorNotFound: String { return self._s[1698]! } + public var LastSeen_Offline: String { return self._s[1699]! } + public var PeopleNearby_NoMembers: String { return self._s[1700]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[1701]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1702]! } + public var GroupInfo_Title: String { return self._s[1704]! } + public var NotificationsSound_Note: String { return self._s[1705]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1706]! } + public var Watch_Message_Poll: String { return self._s[1707]! } + public var Privacy_Calls: String { return self._s[1708]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1707]!, self._r[1707]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1709]!, self._r[1709]!, [_1, _2, _3]) } - public var Month_ShortAugust: String { return self._s[1708]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[1709]! } - public var Notifications_Reset: String { return self._s[1710]! } - public var Conversation_Pin: String { return self._s[1711]! } - public var Passport_Language_lv: String { return self._s[1712]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1713]! } - public var BlockedUsers_Info: String { return self._s[1714]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1716]! } - public var Watch_Conversation_Unblock: String { return self._s[1718]! } + public var Month_ShortAugust: String { return self._s[1710]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[1711]! } + public var Notifications_Reset: String { return self._s[1712]! } + public var Conversation_Pin: String { return self._s[1713]! } + public var Passport_Language_lv: String { return self._s[1714]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1715]! } + public var BlockedUsers_Info: String { return self._s[1716]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1718]! } + public var Watch_Conversation_Unblock: String { return self._s[1720]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1719]!, self._r[1719]!, [_0]) + return formatWithArgumentRanges(self._s[1721]!, self._r[1721]!, [_0]) } - public var CloudStorage_Title: String { return self._s[1720]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1721]! } + public var CloudStorage_Title: String { return self._s[1722]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1723]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1722]!, self._r[1722]!, [_0]) + return formatWithArgumentRanges(self._s[1724]!, self._r[1724]!, [_0]) } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1723]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1724]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1725]! } - public var Passport_Address_EditBankStatement: String { return self._s[1726]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1725]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1726]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1727]! } + public var Passport_Address_EditBankStatement: String { return self._s[1728]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1727]!, self._r[1727]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1729]!, self._r[1729]!, [_1, _2]) } - public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1728]! } - public var ShareMenu_Comment: String { return self._s[1729]! } - public var Permissions_ContactsTitle_v0: String { return self._s[1730]! } - public var Notifications_PermissionsTitle: String { return self._s[1731]! } - public var GroupPermission_NoSendLinks: String { return self._s[1732]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1733]! } - public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1734]! } - public var Settings_Support: String { return self._s[1735]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1736]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1737]! } - public var Privacy_Forwards_Preview: String { return self._s[1738]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[1739]! } - public var Watch_Stickers_StickerPacks: String { return self._s[1740]! } - public var Common_Select: String { return self._s[1742]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1743]! } - public var WallpaperSearch_ColorGray: String { return self._s[1746]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1747]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1748]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[1749]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1750]! } - public var Widget_AuthRequired: String { return self._s[1751]! } - public var Camera_FlashOn: String { return self._s[1752]! } - public var Conversation_ContextMenuLookUp: String { return self._s[1753]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[1754]! } - public var Watch_Suggestion_OK: String { return self._s[1755]! } + public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1730]! } + public var ShareMenu_Comment: String { return self._s[1731]! } + public var Permissions_ContactsTitle_v0: String { return self._s[1732]! } + public var Notifications_PermissionsTitle: String { return self._s[1733]! } + public var GroupPermission_NoSendLinks: String { return self._s[1734]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1735]! } + public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1736]! } + public var Settings_Support: String { return self._s[1737]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1738]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1739]! } + public var Privacy_Forwards_Preview: String { return self._s[1740]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[1741]! } + public var Watch_Stickers_StickerPacks: String { return self._s[1742]! } + public var Common_Select: String { return self._s[1744]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1745]! } + public var WallpaperSearch_ColorGray: String { return self._s[1748]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1749]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1750]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[1751]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1752]! } + public var Widget_AuthRequired: String { return self._s[1753]! } + public var Camera_FlashOn: String { return self._s[1754]! } + public var Conversation_ContextMenuLookUp: String { return self._s[1755]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[1756]! } + public var Watch_Suggestion_OK: String { return self._s[1757]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1757]!, self._r[1757]!, [_0]) - } - public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1759]!, self._r[1759]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[1760]! } - public var DialogList_AdLabel: String { return self._s[1761]! } - public var WatchRemote_NotificationText: String { return self._s[1762]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1763]! } - public var Conversation_ReportSpam: String { return self._s[1764]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1765]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[1767]! } - public var PhoneLabel_Title: String { return self._s[1768]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[1769]! } - public var Settings_ChangePhoneNumber: String { return self._s[1770]! } - public var Notifications_ExceptionsTitle: String { return self._s[1771]! } - public var Notifications_AlertTones: String { return self._s[1772]! } - public var Call_ReportIncludeLogDescription: String { return self._s[1773]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1774]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1775]! } - public var VoiceOver_Chat_Photo: String { return self._s[1777]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[1778]! } - public var ReportPeer_ReasonOther: String { return self._s[1779]! } - public var ChatList_Context_JoinChannel: String { return self._s[1780]! } - public var KeyCommand_ScrollDown: String { return self._s[1782]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[1783]! } + public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1761]!, self._r[1761]!, [_0]) + } + public var TextFormat_Strikethrough: String { return self._s[1762]! } + public var DialogList_AdLabel: String { return self._s[1763]! } + public var WatchRemote_NotificationText: String { return self._s[1764]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1765]! } + public var Conversation_ReportSpam: String { return self._s[1766]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1767]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[1769]! } + public var PhoneLabel_Title: String { return self._s[1770]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[1771]! } + public var Settings_ChangePhoneNumber: String { return self._s[1772]! } + public var Notifications_ExceptionsTitle: String { return self._s[1773]! } + public var Notifications_AlertTones: String { return self._s[1774]! } + public var Call_ReportIncludeLogDescription: String { return self._s[1775]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1776]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1777]! } + public var VoiceOver_Chat_Photo: String { return self._s[1779]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[1780]! } + public var ReportPeer_ReasonOther: String { return self._s[1781]! } + public var ChatList_Context_JoinChannel: String { return self._s[1782]! } + public var KeyCommand_ScrollDown: String { return self._s[1784]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[1785]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1784]!, self._r[1784]!, [_0]) + return formatWithArgumentRanges(self._s[1786]!, self._r[1786]!, [_0]) } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1785]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1786]! } - public var AuthSessions_LogOut: String { return self._s[1787]! } - public var Passport_Identity_TypeInternalPassport: String { return self._s[1788]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1789]! } - public var Passport_Phone_Title: String { return self._s[1790]! } - public var ContactList_Context_StartSecretChat: String { return self._s[1791]! } - public var Settings_PhoneNumber: String { return self._s[1792]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1787]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1788]! } + public var AuthSessions_LogOut: String { return self._s[1789]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[1790]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1791]! } + public var Passport_Phone_Title: String { return self._s[1792]! } + public var ContactList_Context_StartSecretChat: String { return self._s[1793]! } + public var Settings_PhoneNumber: String { return self._s[1794]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1793]!, self._r[1793]!, [_0]) + return formatWithArgumentRanges(self._s[1795]!, self._r[1795]!, [_0]) } - public var NotificationsSound_Alert: String { return self._s[1794]! } - public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1795]! } - public var WebSearch_SearchNoResults: String { return self._s[1796]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1798]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1799]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[1800]! } - public var PhotoEditor_CurvesTool: String { return self._s[1801]! } - public var Checkout_PaymentMethod: String { return self._s[1803]! } + public var NotificationsSound_Alert: String { return self._s[1796]! } + public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1797]! } + public var WebSearch_SearchNoResults: String { return self._s[1798]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1800]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1801]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[1802]! } + public var PhotoEditor_CurvesTool: String { return self._s[1803]! } + public var Checkout_PaymentMethod: String { return self._s[1805]! } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1804]!, self._r[1804]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1806]!, self._r[1806]!, [_1, _2]) } - public var Contacts_AccessDeniedError: String { return self._s[1805]! } - public var Camera_PhotoMode: String { return self._s[1808]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1809]! } - public var Passport_Address_AddUtilityBill: String { return self._s[1811]! } - public var CallSettings_OnMobile: String { return self._s[1812]! } - public var Tour_Text2: String { return self._s[1813]! } + public var Contacts_AccessDeniedError: String { return self._s[1807]! } + public var Camera_PhotoMode: String { return self._s[1810]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1811]! } + public var Passport_Address_AddUtilityBill: String { return self._s[1813]! } + public var CallSettings_OnMobile: String { return self._s[1814]! } + public var Tour_Text2: String { return self._s[1815]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1814]!, self._r[1814]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1816]!, self._r[1816]!, [_1, _2]) } - public var DialogList_EncryptionProcessing: String { return self._s[1816]! } - public var Permissions_Skip: String { return self._s[1817]! } - public var Wallet_Words_NotDoneOk: String { return self._s[1818]! } - public var SecretImage_Title: String { return self._s[1819]! } - public var Watch_MessageView_Title: String { return self._s[1820]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1821]! } - public var AttachmentMenu_Poll: String { return self._s[1822]! } + public var DialogList_EncryptionProcessing: String { return self._s[1818]! } + public var Permissions_Skip: String { return self._s[1819]! } + public var Wallet_Words_NotDoneOk: String { return self._s[1820]! } + public var SecretImage_Title: String { return self._s[1821]! } + public var Watch_MessageView_Title: String { return self._s[1822]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1823]! } + public var AttachmentMenu_Poll: String { return self._s[1824]! } public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1823]!, self._r[1823]!, [_0]) + return formatWithArgumentRanges(self._s[1825]!, self._r[1825]!, [_0]) } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1824]!, self._r[1824]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1826]!, self._r[1826]!, [_1, _2]) } - public var Notification_CallCanceled: String { return self._s[1825]! } - public var WallpaperPreview_Title: String { return self._s[1826]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1827]! } - public var Settings_ProxyConnecting: String { return self._s[1828]! } - public var Settings_CheckPhoneNumberText: String { return self._s[1830]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[1831]! } - public var Wallet_Intro_Title: String { return self._s[1832]! } - public var Profile_MessageLifetime5s: String { return self._s[1833]! } - public var Username_InvalidCharacters: String { return self._s[1834]! } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1835]! } - public var ScheduledMessages_ClearAll: String { return self._s[1836]! } - public var WallpaperPreview_CropBottomText: String { return self._s[1837]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[1838]! } - public var Settings_AddAccount: String { return self._s[1839]! } - public var Notification_CreatedChannel: String { return self._s[1842]! } + public var Notification_CallCanceled: String { return self._s[1827]! } + public var WallpaperPreview_Title: String { return self._s[1828]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1829]! } + public var Settings_ProxyConnecting: String { return self._s[1830]! } + public var Settings_CheckPhoneNumberText: String { return self._s[1832]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[1833]! } + public var Wallet_Intro_Title: String { return self._s[1834]! } + public var Profile_MessageLifetime5s: String { return self._s[1835]! } + public var Username_InvalidCharacters: String { return self._s[1836]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1837]! } + public var ScheduledMessages_ClearAll: String { return self._s[1838]! } + public var WallpaperPreview_CropBottomText: String { return self._s[1839]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[1840]! } + public var Settings_AddAccount: String { return self._s[1841]! } + public var Notification_CreatedChannel: String { return self._s[1844]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1843]!, self._r[1843]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1845]!, self._r[1845]!, [_1, _2, _3]) } - public var Passcode_AppLockedAlert: String { return self._s[1845]! } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1846]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[1847]! } - public var Contacts_TopSection: String { return self._s[1848]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1849]! } + public var Passcode_AppLockedAlert: String { return self._s[1847]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1848]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[1849]! } + public var Contacts_TopSection: String { return self._s[1850]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1851]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1850]!, self._r[1850]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1852]!, self._r[1852]!, [_0, _1]) } - public var Wallet_Info_Receive: String { return self._s[1851]! } - public var Wallet_Completed_ViewWallet: String { return self._s[1852]! } + public var Wallet_Info_Receive: String { return self._s[1853]! } + public var Wallet_Completed_ViewWallet: String { return self._s[1854]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1853]!, self._r[1853]!, [_0]) + return formatWithArgumentRanges(self._s[1855]!, self._r[1855]!, [_0]) } - public var ReportPeer_ReasonSpam: String { return self._s[1854]! } - public var UserInfo_TapToCall: String { return self._s[1855]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1857]! } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1858]! } - public var Common_Search: String { return self._s[1859]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1860]! } + public var ReportPeer_ReasonSpam: String { return self._s[1856]! } + public var UserInfo_TapToCall: String { return self._s[1857]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1859]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1860]! } + public var Common_Search: String { return self._s[1861]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1862]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1861]!, self._r[1861]!, [_0]) + return formatWithArgumentRanges(self._s[1863]!, self._r[1863]!, [_0]) } - public var Wallet_Month_ShortJuly: String { return self._s[1862]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1863]! } - public var Message_InvoiceLabel: String { return self._s[1864]! } - public var Conversation_InputTextPlaceholder: String { return self._s[1865]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1866]! } + public var Wallet_Month_ShortJuly: String { return self._s[1864]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1865]! } + public var Message_InvoiceLabel: String { return self._s[1866]! } + public var Conversation_InputTextPlaceholder: String { return self._s[1867]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1868]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1867]!, self._r[1867]!, [_0]) + return formatWithArgumentRanges(self._s[1869]!, self._r[1869]!, [_0]) } - public var Conversation_Info: String { return self._s[1868]! } - public var Login_InfoDeletePhoto: String { return self._s[1869]! } - public var Passport_Language_vi: String { return self._s[1871]! } - public var UserInfo_ScamUserWarning: String { return self._s[1872]! } - public var Conversation_Search: String { return self._s[1873]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1875]! } - public var ReportPeer_ReasonPornography: String { return self._s[1876]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1877]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1878]! } - public var Map_LiveLocationGroupDescription: String { return self._s[1879]! } - public var Channel_Setup_TypeHeader: String { return self._s[1880]! } - public var AuthSessions_LoggedIn: String { return self._s[1881]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1882]! } - public var Login_SmsRequestState3: String { return self._s[1883]! } - public var Passport_Address_EditUtilityBill: String { return self._s[1884]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1885]! } - public var Join_ChannelsTooMuch: String { return self._s[1886]! } - public var Channel_Edit_LinkItem: String { return self._s[1887]! } - public var Privacy_Calls_P2PNever: String { return self._s[1888]! } - public var Conversation_AddToReadingList: String { return self._s[1890]! } - public var Share_MultipleMessagesDisabled: String { return self._s[1891]! } - public var Message_Animation: String { return self._s[1892]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[1893]! } - public var Map_Unknown: String { return self._s[1894]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[1895]! } + public var Conversation_Info: String { return self._s[1870]! } + public var Login_InfoDeletePhoto: String { return self._s[1871]! } + public var Passport_Language_vi: String { return self._s[1873]! } + public var UserInfo_ScamUserWarning: String { return self._s[1874]! } + public var Conversation_Search: String { return self._s[1875]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1877]! } + public var ReportPeer_ReasonPornography: String { return self._s[1878]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1879]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1880]! } + public var Map_LiveLocationGroupDescription: String { return self._s[1881]! } + public var Channel_Setup_TypeHeader: String { return self._s[1882]! } + public var AuthSessions_LoggedIn: String { return self._s[1883]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1884]! } + public var Login_SmsRequestState3: String { return self._s[1885]! } + public var Passport_Address_EditUtilityBill: String { return self._s[1886]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1887]! } + public var Join_ChannelsTooMuch: String { return self._s[1888]! } + public var Channel_Edit_LinkItem: String { return self._s[1889]! } + public var Privacy_Calls_P2PNever: String { return self._s[1890]! } + public var Conversation_AddToReadingList: String { return self._s[1892]! } + public var Share_MultipleMessagesDisabled: String { return self._s[1893]! } + public var Message_Animation: String { return self._s[1894]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[1895]! } + public var Map_Unknown: String { return self._s[1896]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[1897]! } public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1896]!, self._r[1896]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1898]!, self._r[1898]!, [_1, _2]) } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1897]!, self._r[1897]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1899]!, self._r[1899]!, [_1, _2]) } - public var Call_StatusRequesting: String { return self._s[1898]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[1899]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1900]! } + public var Call_StatusRequesting: String { return self._s[1900]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[1901]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1902]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1901]!, self._r[1901]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1903]!, self._r[1903]!, [_1, _2]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1902]!, self._r[1902]!, [_0]) + return formatWithArgumentRanges(self._s[1904]!, self._r[1904]!, [_0]) } - public var Update_Skip: String { return self._s[1903]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[1904]! } - public var Message_PinnedPollMessage: String { return self._s[1905]! } - public var BlockedUsers_Title: String { return self._s[1906]! } + public var Update_Skip: String { return self._s[1905]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[1906]! } + public var Message_PinnedPollMessage: String { return self._s[1907]! } + public var BlockedUsers_Title: String { return self._s[1908]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1907]!, self._r[1907]!, [_1]) + return formatWithArgumentRanges(self._s[1909]!, self._r[1909]!, [_1]) } - public var Username_CheckingUsername: String { return self._s[1908]! } - public var NotificationsSound_Bell: String { return self._s[1909]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[1910]! } - public var Weekday_Monday: String { return self._s[1911]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[1912]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1913]! } - public var ChatSettings_Groups: String { return self._s[1914]! } + public var Username_CheckingUsername: String { return self._s[1910]! } + public var NotificationsSound_Bell: String { return self._s[1911]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[1912]! } + public var Weekday_Monday: String { return self._s[1913]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[1914]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1915]! } + public var ChatSettings_Groups: String { return self._s[1916]! } public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1915]!, self._r[1915]!, [_0]) + return formatWithArgumentRanges(self._s[1917]!, self._r[1917]!, [_0]) } - public var Your_card_was_declined: String { return self._s[1916]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1918]! } - public var Wallet_Month_ShortApril: String { return self._s[1919]! } - public var ChatList_Unmute: String { return self._s[1920]! } - public var PhotoEditor_CurvesAll: String { return self._s[1921]! } - public var Weekday_ShortTuesday: String { return self._s[1922]! } - public var DialogList_Read: String { return self._s[1923]! } - public var Appearance_AppIconClassic: String { return self._s[1924]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1925]! } - public var Passport_Identity_Gender: String { return self._s[1926]! } + public var Your_card_was_declined: String { return self._s[1918]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1920]! } + public var Wallet_Month_ShortApril: String { return self._s[1921]! } + public var ChatList_Unmute: String { return self._s[1922]! } + public var PhotoEditor_CurvesAll: String { return self._s[1923]! } + public var Weekday_ShortTuesday: String { return self._s[1924]! } + public var DialogList_Read: String { return self._s[1925]! } + public var Appearance_AppIconClassic: String { return self._s[1926]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1927]! } + public var Passport_Identity_Gender: String { return self._s[1928]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1927]!, self._r[1927]!, [_0]) + return formatWithArgumentRanges(self._s[1929]!, self._r[1929]!, [_0]) } - public var Target_SelectGroup: String { return self._s[1928]! } + public var Target_SelectGroup: String { return self._s[1930]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1930]!, self._r[1930]!, [_0]) + return formatWithArgumentRanges(self._s[1932]!, self._r[1932]!, [_0]) } - public var Passport_Language_en: String { return self._s[1931]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[1932]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[1933]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[1934]! } - public var ScheduledMessages_SendNow: String { return self._s[1935]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[1937]! } - public var Login_InfoHelp: String { return self._s[1938]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1939]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[1940]! } + public var Passport_Language_en: String { return self._s[1933]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[1934]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[1935]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[1936]! } + public var ScheduledMessages_SendNow: String { return self._s[1937]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[1939]! } + public var Login_InfoHelp: String { return self._s[1940]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1941]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[1942]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1941]!, self._r[1941]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1943]!, self._r[1943]!, [_1, _2]) } - public var SocksProxySetup_AddProxy: String { return self._s[1944]! } - public var CreatePoll_Title: String { return self._s[1945]! } - public var Conversation_ViewTheme: String { return self._s[1946]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[1947]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[1948]! } - public var UserInfo_GroupsInCommon: String { return self._s[1949]! } - public var Call_AudioRouteHide: String { return self._s[1950]! } + public var SocksProxySetup_AddProxy: String { return self._s[1946]! } + public var CreatePoll_Title: String { return self._s[1947]! } + public var Conversation_ViewTheme: String { return self._s[1948]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[1949]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[1950]! } + public var UserInfo_GroupsInCommon: String { return self._s[1951]! } + public var Call_AudioRouteHide: String { return self._s[1952]! } public func Wallet_Info_TransactionDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1952]!, self._r[1952]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1954]!, self._r[1954]!, [_1, _2]) } - public var ContactInfo_PhoneLabelMobile: String { return self._s[1953]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[1955]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1954]!, self._r[1954]!, [_0]) + return formatWithArgumentRanges(self._s[1956]!, self._r[1956]!, [_0]) } - public var TextFormat_Bold: String { return self._s[1955]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[1956]! } - public var Notifications_Title: String { return self._s[1957]! } - public var Group_Username_InvalidTooShort: String { return self._s[1958]! } - public var Channel_ErrorAddTooMuch: String { return self._s[1959]! } + public var TextFormat_Bold: String { return self._s[1957]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[1958]! } + public var Notifications_Title: String { return self._s[1959]! } + public var Group_Username_InvalidTooShort: String { return self._s[1960]! } + public var Channel_ErrorAddTooMuch: String { return self._s[1961]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1960]!, self._r[1960]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1962]!, self._r[1962]!, ["\(_0)"]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[1962]! } - public var Stickers_SuggestAdded: String { return self._s[1963]! } - public var Login_CountryCode: String { return self._s[1964]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[1965]! } - public var Map_GetDirections: String { return self._s[1966]! } - public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[1967]! } - public var Login_PhoneFloodError: String { return self._s[1968]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[1964]! } + public var Stickers_SuggestAdded: String { return self._s[1965]! } + public var Login_CountryCode: String { return self._s[1966]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[1967]! } + public var Map_GetDirections: String { return self._s[1968]! } + public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[1969]! } + public var Login_PhoneFloodError: String { return self._s[1970]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1969]!, self._r[1969]!, [_0]) + return formatWithArgumentRanges(self._s[1971]!, self._r[1971]!, [_0]) } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1970]!, self._r[1970]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1972]!, self._r[1972]!, [_1, _2, _3]) } - public var Settings_SetUsername: String { return self._s[1972]! } - public var Group_Location_ChangeLocation: String { return self._s[1973]! } - public var Notification_GroupInviterSelf: String { return self._s[1974]! } - public var InstantPage_TapToOpenLink: String { return self._s[1975]! } + public var Settings_SetUsername: String { return self._s[1974]! } + public var Group_Location_ChangeLocation: String { return self._s[1975]! } + public var Notification_GroupInviterSelf: String { return self._s[1976]! } + public var InstantPage_TapToOpenLink: String { return self._s[1977]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1976]!, self._r[1976]!, [_0]) + return formatWithArgumentRanges(self._s[1978]!, self._r[1978]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[1977]! } - public var SecretChat_Title: String { return self._s[1978]! } - public var Group_UpgradeNoticeText1: String { return self._s[1979]! } - public var AuthSessions_Title: String { return self._s[1980]! } + public var Watch_Suggestion_TalkLater: String { return self._s[1979]! } + public var SecretChat_Title: String { return self._s[1980]! } + public var Group_UpgradeNoticeText1: String { return self._s[1981]! } + public var AuthSessions_Title: String { return self._s[1982]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1981]!, self._r[1981]!, [_0]) + return formatWithArgumentRanges(self._s[1983]!, self._r[1983]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[1982]! } - public var Channel_About_Title: String { return self._s[1983]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[1984]! } + public var PhotoEditor_CropAuto: String { return self._s[1984]! } + public var Channel_About_Title: String { return self._s[1985]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[1986]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1986]!, self._r[1986]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1988]!, self._r[1988]!, ["\(_0)"]) } - public var VoiceOver_MessageContextReport: String { return self._s[1987]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1989]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[1990]! } + public var VoiceOver_MessageContextReport: String { return self._s[1989]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1991]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[1992]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1991]!, self._r[1991]!, [_1]) + return formatWithArgumentRanges(self._s[1993]!, self._r[1993]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1993]!, self._r[1993]!, [_0]) + return formatWithArgumentRanges(self._s[1995]!, self._r[1995]!, [_0]) } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1994]!, self._r[1994]!, [_0]) + return formatWithArgumentRanges(self._s[1996]!, self._r[1996]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[1995]! } - public var Presence_online: String { return self._s[1998]! } - public var PasscodeSettings_Title: String { return self._s[1999]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2000]! } - public var Web_OpenExternal: String { return self._s[2001]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[2003]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2004]! } - public var LocalGroup_Title: String { return self._s[2005]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[1997]! } + public var Presence_online: String { return self._s[2000]! } + public var PasscodeSettings_Title: String { return self._s[2001]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2002]! } + public var Web_OpenExternal: String { return self._s[2003]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[2005]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2006]! } + public var LocalGroup_Title: String { return self._s[2007]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2006]!, self._r[2006]!, [_0]) + return formatWithArgumentRanges(self._s[2008]!, self._r[2008]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2007]! } - public var Map_YouAreHere: String { return self._s[2008]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2009]! } + public var Map_YouAreHere: String { return self._s[2010]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2009]!, self._r[2009]!, [_0]) + return formatWithArgumentRanges(self._s[2011]!, self._r[2011]!, [_0]) } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2010]!, self._r[2010]!, [_0]) + return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_0]) } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2011]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2012]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2013]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2014]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2013]!, self._r[2013]!, [_0]) + return formatWithArgumentRanges(self._s[2015]!, self._r[2015]!, [_0]) } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2014]!, self._r[2014]!, [_0]) + return formatWithArgumentRanges(self._s[2016]!, self._r[2016]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[2015]! } - public var Bot_Start: String { return self._s[2016]! } + public var SocksProxySetup_Username: String { return self._s[2017]! } + public var Bot_Start: String { return self._s[2018]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2017]!, self._r[2017]!, [_0]) + return formatWithArgumentRanges(self._s[2019]!, self._r[2019]!, [_0]) } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2018]!, self._r[2018]!, [_0]) + return formatWithArgumentRanges(self._s[2020]!, self._r[2020]!, [_0]) } - public var Contacts_SortByPresence: String { return self._s[2019]! } - public var AccentColor_Title: String { return self._s[2021]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2022]! } + public var Contacts_SortByPresence: String { return self._s[2021]! } + public var AccentColor_Title: String { return self._s[2023]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2024]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2023]!, self._r[2023]!, [_1, _2]) - } - public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2024]!, self._r[2024]!, [_0]) - } - public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2025]!, self._r[2025]!, [_1, _2]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[2026]! } - public var Login_InfoAvatarPhoto: String { return self._s[2027]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2028]! } - public var Tour_Title4: String { return self._s[2029]! } - public var Passport_Identity_Translation: String { return self._s[2030]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2031]! } - public var Login_TermsOfServiceLabel: String { return self._s[2033]! } - public var Passport_Language_it: String { return self._s[2034]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2035]! } - public var Passport_Identity_SelfieHelp: String { return self._s[2036]! } - public var Conversation_ClearAll: String { return self._s[2038]! } - public var Wallet_Send_UninitializedText: String { return self._s[2040]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[2041]! } - public var TwoStepAuth_FloodError: String { return self._s[2042]! } + public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2026]!, self._r[2026]!, [_0]) + } + public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2027]!, self._r[2027]!, [_1, _2]) + } + public var Passport_Email_EnterOtherEmail: String { return self._s[2028]! } + public var Login_InfoAvatarPhoto: String { return self._s[2029]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2030]! } + public var Tour_Title4: String { return self._s[2031]! } + public var Passport_Identity_Translation: String { return self._s[2032]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2033]! } + public var Login_TermsOfServiceLabel: String { return self._s[2035]! } + public var Passport_Language_it: String { return self._s[2036]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2037]! } + public var Passport_Identity_SelfieHelp: String { return self._s[2038]! } + public var Conversation_ClearAll: String { return self._s[2040]! } + public var Wallet_Send_UninitializedText: String { return self._s[2042]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[2043]! } + public var TwoStepAuth_FloodError: String { return self._s[2044]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2043]!, self._r[2043]!, [_1]) + return formatWithArgumentRanges(self._s[2045]!, self._r[2045]!, [_1]) } - public var Paint_Delete: String { return self._s[2044]! } + public var Paint_Delete: String { return self._s[2046]! } public func Wallet_Sent_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2045]!, self._r[2045]!, [_0]) + return formatWithArgumentRanges(self._s[2047]!, self._r[2047]!, [_0]) } - public var Privacy_AddNewPeer: String { return self._s[2046]! } + public var Privacy_AddNewPeer: String { return self._s[2048]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2047]!, self._r[2047]!, [_1]) + return formatWithArgumentRanges(self._s[2049]!, self._r[2049]!, [_1]) } - public var LogoutOptions_SetPasscodeText: String { return self._s[2048]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[2050]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2049]!, self._r[2049]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2051]!, self._r[2051]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[2050]! } + public var Message_PinnedAudioMessage: String { return self._s[2052]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2051]!, self._r[2051]!, [_0]) + return formatWithArgumentRanges(self._s[2053]!, self._r[2053]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[2052]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2053]! } - public var Wallet_Month_GenNovember: String { return self._s[2054]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[2055]! } - public var Conversation_MessageEditedLabel: String { return self._s[2056]! } - public var Notification_Exceptions_AlwaysOff: String { return self._s[2057]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2058]! } + public var Notification_Mute1hMin: String { return self._s[2054]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2055]! } + public var Wallet_Month_GenNovember: String { return self._s[2056]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[2057]! } + public var Conversation_MessageEditedLabel: String { return self._s[2058]! } + public func ClearCache_Success(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2059]!, self._r[2059]!, [_0]) + } + public var Notification_Exceptions_AlwaysOff: String { return self._s[2060]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2061]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2059]!, self._r[2059]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2062]!, self._r[2062]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[2060]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[2063]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2061]!, self._r[2061]!, [_1]) + return formatWithArgumentRanges(self._s[2064]!, self._r[2064]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[2062]! } - public var Month_GenOctober: String { return self._s[2063]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2064]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2065]! } - public var MediaPicker_TimerTooltip: String { return self._s[2067]! } - public var SharedMedia_TitleAll: String { return self._s[2068]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2071]! } - public var Conversation_RestrictedMedia: String { return self._s[2072]! } - public var AccessDenied_PhotosRestricted: String { return self._s[2073]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2075]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2076]! } + public var AccessDenied_LocationTracking: String { return self._s[2065]! } + public var Month_GenOctober: String { return self._s[2066]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2067]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2068]! } + public var MediaPicker_TimerTooltip: String { return self._s[2070]! } + public var SharedMedia_TitleAll: String { return self._s[2071]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2074]! } + public var Conversation_RestrictedMedia: String { return self._s[2075]! } + public var AccessDenied_PhotosRestricted: String { return self._s[2076]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2078]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2079]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2077]!, self._r[2077]!, [_0]) + return formatWithArgumentRanges(self._s[2080]!, self._r[2080]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[2080]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2082]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2083]! } + public var Conversation_SavedMessages: String { return self._s[2083]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2085]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2086]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2085]!, self._r[2085]!, [_0]) + return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_0]) } - public var VoiceOver_Chat_YourMessage: String { return self._s[2086]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2089]! } public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2087]!, self._r[2087]!, [_0]) + return formatWithArgumentRanges(self._s[2090]!, self._r[2090]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[2088]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2089]! } + public var ReportPeer_AlertSuccess: String { return self._s[2091]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2092]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2090]!, self._r[2090]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2093]!, self._r[2093]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[2091]! } - public var PhotoEditor_FadeTool: String { return self._s[2092]! } - public var Privacy_ContactsReset: String { return self._s[2093]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2094]! } + public var PhotoEditor_FadeTool: String { return self._s[2095]! } + public var Privacy_ContactsReset: String { return self._s[2096]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2095]!, self._r[2095]!, [_0]) + return formatWithArgumentRanges(self._s[2098]!, self._r[2098]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[2096]! } - public var ChatList_Mute: String { return self._s[2097]! } + public var Message_PinnedVideoMessage: String { return self._s[2099]! } + public var ChatList_Mute: String { return self._s[2100]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2098]!, self._r[2098]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2101]!, self._r[2101]!, [_1, _2, _3]) } - public var Permissions_CellularDataText_v0: String { return self._s[2099]! } - public var ShareMenu_SelectChats: String { return self._s[2102]! } - public var ChatList_Context_Unarchive: String { return self._s[2103]! } - public var MusicPlayer_VoiceNote: String { return self._s[2104]! } - public var Conversation_RestrictedText: String { return self._s[2105]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2106]! } - public var Wallet_Month_GenApril: String { return self._s[2107]! } - public var Wallet_Month_ShortMarch: String { return self._s[2108]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2109]! } - public var Cache_Videos: String { return self._s[2110]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2111]! } - public var Wallet_Month_GenFebruary: String { return self._s[2112]! } - public var FeatureDisabled_Oops: String { return self._s[2114]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2115]! } + public var Permissions_CellularDataText_v0: String { return self._s[2102]! } + public var ShareMenu_SelectChats: String { return self._s[2105]! } + public var ChatList_Context_Unarchive: String { return self._s[2106]! } + public var MusicPlayer_VoiceNote: String { return self._s[2107]! } + public var Conversation_RestrictedText: String { return self._s[2108]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2109]! } + public var Wallet_Month_GenApril: String { return self._s[2110]! } + public var Wallet_Month_ShortMarch: String { return self._s[2111]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2112]! } + public var Cache_Videos: String { return self._s[2113]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2114]! } + public var Wallet_Month_GenFebruary: String { return self._s[2115]! } + public var FeatureDisabled_Oops: String { return self._s[2117]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2118]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2116]!, self._r[2116]!, [_0]) + return formatWithArgumentRanges(self._s[2119]!, self._r[2119]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2117]! } - public var GroupPermission_NoSendPolls: String { return self._s[2118]! } - public var Wallet_Qr_ScanCode: String { return self._s[2119]! } - public var Message_VideoExpired: String { return self._s[2121]! } - public var Notifications_Badge: String { return self._s[2122]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2123]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2124]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2125]! } - public var Username_InvalidTooShort: String { return self._s[2126]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2127]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2128]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2129]! } + public var Stickers_GroupStickersHelp: String { return self._s[2120]! } + public var GroupPermission_NoSendPolls: String { return self._s[2121]! } + public var Wallet_Qr_ScanCode: String { return self._s[2122]! } + public var Message_VideoExpired: String { return self._s[2124]! } + public var Notifications_Badge: String { return self._s[2125]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2126]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2127]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2128]! } + public var Username_InvalidTooShort: String { return self._s[2129]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2130]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2131]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2132]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2130]!, self._r[2130]!, [_1]) + return formatWithArgumentRanges(self._s[2133]!, self._r[2133]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2131]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2132]! } - public var SharedMedia_CategoryDocs: String { return self._s[2135]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2134]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2135]! } + public var SharedMedia_CategoryDocs: String { return self._s[2138]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_1]) + return formatWithArgumentRanges(self._s[2139]!, self._r[2139]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2137]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2139]! } + public var Wallet_Send_UninitializedTitle: String { return self._s[2140]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2142]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2140]!, self._r[2140]!, [_1]) + return formatWithArgumentRanges(self._s[2143]!, self._r[2143]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2141]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2144]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2142]!, self._r[2142]!, [_0]) + return formatWithArgumentRanges(self._s[2145]!, self._r[2145]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2143]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2144]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2145]! } - public var Channel_UpdatePhotoItem: String { return self._s[2146]! } - public var GroupInfo_LeftStatus: String { return self._s[2147]! } - public var Watch_MessageView_Forward: String { return self._s[2149]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2150]! } - public var Cache_ClearEmpty: String { return self._s[2152]! } - public var Localization_LanguageName: String { return self._s[2153]! } - public var WebSearch_GIFs: String { return self._s[2154]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2155]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2156]! } - public var Common_Back: String { return self._s[2157]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2158]! } - public var Wallet_Send_Send: String { return self._s[2159]! } + public var ChatSettings_PrivateChats: String { return self._s[2146]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2147]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2148]! } + public var Channel_UpdatePhotoItem: String { return self._s[2149]! } + public var GroupInfo_LeftStatus: String { return self._s[2150]! } + public var Watch_MessageView_Forward: String { return self._s[2152]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2153]! } + public var Cache_ClearEmpty: String { return self._s[2155]! } + public var Localization_LanguageName: String { return self._s[2156]! } + public var WebSearch_GIFs: String { return self._s[2157]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2158]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2159]! } + public var Common_Back: String { return self._s[2160]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2161]! } + public var Wallet_Send_Send: String { return self._s[2162]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2160]!, self._r[2160]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2163]!, self._r[2163]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2161]! } - public var Wallet_Month_GenJune: String { return self._s[2162]! } - public var Passport_Email_Help: String { return self._s[2163]! } - public var Watch_Conversation_Reply: String { return self._s[2165]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2167]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2168]! } - public var Channel_BanUser_Unban: String { return self._s[2170]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2171]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2172]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2174]! } - public var Wallet_Send_AddressHeader: String { return self._s[2175]! } - public var Passport_Identity_Name: String { return self._s[2176]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2164]! } + public var Wallet_Month_GenJune: String { return self._s[2165]! } + public var Passport_Email_Help: String { return self._s[2166]! } + public var Watch_Conversation_Reply: String { return self._s[2168]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2170]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2171]! } + public var Channel_BanUser_Unban: String { return self._s[2173]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2174]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2175]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2177]! } + public var Wallet_Send_AddressHeader: String { return self._s[2178]! } + public var Passport_Identity_Name: String { return self._s[2179]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2177]!, self._r[2177]!, [_0]) + return formatWithArgumentRanges(self._s[2180]!, self._r[2180]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2178]! } - public var Conversation_BlockUser: String { return self._s[2179]! } - public var Month_GenJanuary: String { return self._s[2180]! } - public var ChatSettings_TextSize: String { return self._s[2181]! } - public var Notification_PassportValuePhone: String { return self._s[2182]! } - public var Passport_Language_ne: String { return self._s[2183]! } - public var Notification_CallBack: String { return self._s[2184]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2185]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2186]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2181]! } + public var Conversation_BlockUser: String { return self._s[2182]! } + public var Month_GenJanuary: String { return self._s[2183]! } + public var ChatSettings_TextSize: String { return self._s[2184]! } + public var Notification_PassportValuePhone: String { return self._s[2185]! } + public var Passport_Language_ne: String { return self._s[2186]! } + public var Notification_CallBack: String { return self._s[2187]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2188]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2189]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2187]!, self._r[2187]!, [_0]) + return formatWithArgumentRanges(self._s[2190]!, self._r[2190]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2188]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2189]! } - public var Stickers_FrequentlyUsed: String { return self._s[2190]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2191]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2193]! } + public var Channel_Info_Management: String { return self._s[2191]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2192]! } + public var Stickers_FrequentlyUsed: String { return self._s[2193]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2194]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2196]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2194]!, self._r[2194]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2197]!, self._r[2197]!, [_1, "\(_2)"]) } - public var Passport_Address_EditResidentialAddress: String { return self._s[2195]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2196]! } - public var CreatePoll_TextHeader: String { return self._s[2197]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2198]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2199]! } + public var CreatePoll_TextHeader: String { return self._s[2200]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2198]!, self._r[2198]!, [_0]) + return formatWithArgumentRanges(self._s[2201]!, self._r[2201]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[2199]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2200]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2202]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2203]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2204]! } + public var PhotoEditor_QualityMedium: String { return self._s[2202]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2203]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2205]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2206]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2207]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2205]!, self._r[2205]!, [_0]) + return formatWithArgumentRanges(self._s[2208]!, self._r[2208]!, [_0]) } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2206]!, self._r[2206]!, [_1]) + return formatWithArgumentRanges(self._s[2209]!, self._r[2209]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2207]! } - public var Conversation_LinkDialogOpen: String { return self._s[2209]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2210]! } - public var Settings_Username: String { return self._s[2212]! } - public var Conversation_Block: String { return self._s[2214]! } - public var Wallpaper_Wallpaper: String { return self._s[2215]! } - public var SocksProxySetup_UseProxy: String { return self._s[2217]! } - public var Wallet_Send_Confirmation: String { return self._s[2218]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2219]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2220]! } - public var MessageTimer_Forever: String { return self._s[2221]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2222]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2223]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2224]! } - public var Passport_Language_da: String { return self._s[2225]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2226]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2210]! } + public var Conversation_LinkDialogOpen: String { return self._s[2212]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2213]! } + public var Settings_Username: String { return self._s[2215]! } + public var Conversation_Block: String { return self._s[2217]! } + public var Wallpaper_Wallpaper: String { return self._s[2218]! } + public var SocksProxySetup_UseProxy: String { return self._s[2220]! } + public var Wallet_Send_Confirmation: String { return self._s[2221]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2222]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2223]! } + public var MessageTimer_Forever: String { return self._s[2224]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2225]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2226]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2227]! } + public var Passport_Language_da: String { return self._s[2228]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2229]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2227]!, self._r[2227]!, [_0]) - } - public var Passport_Address_EditPassportRegistration: String { return self._s[2228]! } - public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2230]!, self._r[2230]!, [_0]) } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2232]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2233]! } - public var Conversation_PinnedPoll: String { return self._s[2234]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2235]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2231]! } + public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2233]!, self._r[2233]!, [_0]) + } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2235]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2236]! } + public var Conversation_PinnedPoll: String { return self._s[2237]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2238]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2236]!, self._r[2236]!, [_1]) + return formatWithArgumentRanges(self._s[2239]!, self._r[2239]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2237]! } - public var Cache_ByPeerHeader: String { return self._s[2238]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2240]! } + public var Cache_ByPeerHeader: String { return self._s[2241]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2239]!, self._r[2239]!, [_0]) + return formatWithArgumentRanges(self._s[2242]!, self._r[2242]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2240]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2243]! } - public var Wallet_Completed_Title: String { return self._s[2244]! } - public var Notification_PinnedMessage: String { return self._s[2245]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2247]! } - public var Contacts_SortBy: String { return self._s[2248]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2243]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2246]! } + public var Wallet_Completed_Title: String { return self._s[2247]! } + public var Notification_PinnedMessage: String { return self._s[2248]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2250]! } + public var Contacts_SortBy: String { return self._s[2251]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2249]!, self._r[2249]!, [_1]) + return formatWithArgumentRanges(self._s[2252]!, self._r[2252]!, [_1]) } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2251]!, self._r[2251]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2252]! } - public var Watch_UserInfo_Service: String { return self._s[2253]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2255]! } - public var Conversation_Unpin: String { return self._s[2257]! } - public var CancelResetAccount_Title: String { return self._s[2258]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2259]! } + public var Call_EncryptionKey_Title: String { return self._s[2255]! } + public var Watch_UserInfo_Service: String { return self._s[2256]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2258]! } + public var Conversation_Unpin: String { return self._s[2260]! } + public var CancelResetAccount_Title: String { return self._s[2261]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2262]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2261]!, self._r[2261]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2264]!, self._r[2264]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2262]! } - public var CallSettings_Title: String { return self._s[2263]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2264]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2266]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2267]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2265]! } + public var CallSettings_Title: String { return self._s[2266]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2267]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2269]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2270]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2268]!, self._r[2268]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_1, _2]) } - public var Passport_Identity_DocumentDetails: String { return self._s[2269]! } - public var LoginPassword_PasswordHelp: String { return self._s[2270]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2271]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2272]! } - public var Checkout_TotalPaidAmount: String { return self._s[2273]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2272]! } + public var LoginPassword_PasswordHelp: String { return self._s[2273]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2274]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2275]! } + public var Checkout_TotalPaidAmount: String { return self._s[2276]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2274]!, self._r[2274]!, [_0]) + return formatWithArgumentRanges(self._s[2277]!, self._r[2277]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[2275]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2277]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2278]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2278]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2280]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2281]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2279]!, self._r[2279]!, [_1]) + return formatWithArgumentRanges(self._s[2282]!, self._r[2282]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2280]! } - public var Contacts_InviteFriends: String { return self._s[2282]! } - public var Map_ChooseLocationTitle: String { return self._s[2283]! } - public var Conversation_StopPoll: String { return self._s[2285]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2283]! } + public var Contacts_InviteFriends: String { return self._s[2285]! } + public var Map_ChooseLocationTitle: String { return self._s[2286]! } + public var Conversation_StopPoll: String { return self._s[2288]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2286]!, self._r[2286]!, [_0]) + return formatWithArgumentRanges(self._s[2289]!, self._r[2289]!, [_0]) } - public var Call_Camera: String { return self._s[2287]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2288]! } - public var Calls_RatingFeedback: String { return self._s[2289]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2290]! } - public var Wallet_Alert_OK: String { return self._s[2291]! } - public var NotificationsSound_Pulse: String { return self._s[2292]! } - public var Watch_LastSeen_Lately: String { return self._s[2293]! } - public var ReportGroupLocation_Report: String { return self._s[2296]! } - public var Widget_NoUsers: String { return self._s[2297]! } - public var Conversation_UnvotePoll: String { return self._s[2298]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2300]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2301]! } - public var NotificationsSound_Circles: String { return self._s[2302]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2305]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2306]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2307]! } - public var Proxy_TooltipUnavailable: String { return self._s[2308]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2310]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2312]! } - public var Conversation_FileDropbox: String { return self._s[2313]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2314]! } - public var Tour_Text3: String { return self._s[2316]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2318]! } - public var GroupPermission_NoSendMessages: String { return self._s[2319]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2320]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2321]! } + public var Call_Camera: String { return self._s[2290]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2291]! } + public var Calls_RatingFeedback: String { return self._s[2292]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2293]! } + public var Wallet_Alert_OK: String { return self._s[2294]! } + public var NotificationsSound_Pulse: String { return self._s[2295]! } + public var Watch_LastSeen_Lately: String { return self._s[2296]! } + public var ReportGroupLocation_Report: String { return self._s[2299]! } + public var Widget_NoUsers: String { return self._s[2300]! } + public var Conversation_UnvotePoll: String { return self._s[2301]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2303]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2304]! } + public var NotificationsSound_Circles: String { return self._s[2305]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2308]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2309]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2310]! } + public var Proxy_TooltipUnavailable: String { return self._s[2311]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2313]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2315]! } + public var Conversation_FileDropbox: String { return self._s[2316]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2317]! } + public var Tour_Text3: String { return self._s[2319]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2321]! } + public var GroupPermission_NoSendMessages: String { return self._s[2322]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2323]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2324]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2323]!, self._r[2323]!, [_0]) + return formatWithArgumentRanges(self._s[2326]!, self._r[2326]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2324]! } - public var Checkout_ShippingOption_Title: String { return self._s[2325]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2326]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2327]! } + public var Checkout_ShippingOption_Title: String { return self._s[2328]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2329]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2327]!, self._r[2327]!, [_0]) + return formatWithArgumentRanges(self._s[2330]!, self._r[2330]!, [_0]) } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2328]!, self._r[2328]!, [_0]) + return formatWithArgumentRanges(self._s[2331]!, self._r[2331]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2329]! } - public var EditTheme_FileReadError: String { return self._s[2330]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2331]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2332]! } - public var AutoDownloadSettings_Photos: String { return self._s[2334]! } - public var Appearance_PreviewIncomingText: String { return self._s[2335]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2336]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2337]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2338]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2339]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2340]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2341]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2342]! } - public var Notification_SecretChatScreenshot: String { return self._s[2343]! } - public var AccessDenied_Wallpapers: String { return self._s[2344]! } - public var ChatList_Context_Mute: String { return self._s[2346]! } - public var Passport_Address_City: String { return self._s[2347]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2348]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2349]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2350]! } - public var AccessDenied_LocationDisabled: String { return self._s[2351]! } - public var Group_Location_Title: String { return self._s[2352]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2354]! } - public var GroupInfo_Sound: String { return self._s[2355]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2356]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2357]! } - public var Contacts_Title: String { return self._s[2358]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2359]! } - public var Passport_Language_fr: String { return self._s[2360]! } - public var Notifications_ResetAllNotifications: String { return self._s[2361]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2364]! } - public var Checkout_NewCard_Title: String { return self._s[2365]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2366]! } - public var Conversation_ForwardChats: String { return self._s[2367]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2369]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2370]! } - public var Settings_FAQ: String { return self._s[2372]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2373]! } - public var Conversation_ContextMenuForward: String { return self._s[2374]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2377]! } - public var PrivacyPolicy_Title: String { return self._s[2380]! } - public var Notifications_TextTone: String { return self._s[2381]! } - public var Profile_CreateNewContact: String { return self._s[2382]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2383]! } - public var Call_Speaker: String { return self._s[2385]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2386]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2388]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2389]! } + public var Channel_Management_LabelAdministrator: String { return self._s[2332]! } + public var EditTheme_FileReadError: String { return self._s[2333]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2334]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2335]! } + public var AutoDownloadSettings_Photos: String { return self._s[2337]! } + public var Appearance_PreviewIncomingText: String { return self._s[2338]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2339]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2340]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2341]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2342]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2343]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2344]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2345]! } + public var Notification_SecretChatScreenshot: String { return self._s[2346]! } + public var AccessDenied_Wallpapers: String { return self._s[2347]! } + public var ChatList_Context_Mute: String { return self._s[2349]! } + public var Passport_Address_City: String { return self._s[2350]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2351]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2352]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2353]! } + public var AccessDenied_LocationDisabled: String { return self._s[2354]! } + public var Group_Location_Title: String { return self._s[2355]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2357]! } + public var GroupInfo_Sound: String { return self._s[2358]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2359]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2360]! } + public var Contacts_Title: String { return self._s[2361]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2362]! } + public var Passport_Language_fr: String { return self._s[2363]! } + public var Notifications_ResetAllNotifications: String { return self._s[2364]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2367]! } + public var Checkout_NewCard_Title: String { return self._s[2368]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2369]! } + public var Conversation_ForwardChats: String { return self._s[2370]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2372]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2373]! } + public var Settings_FAQ: String { return self._s[2375]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2376]! } + public var Conversation_ContextMenuForward: String { return self._s[2377]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2380]! } + public var PrivacyPolicy_Title: String { return self._s[2383]! } + public var Notifications_TextTone: String { return self._s[2384]! } + public var Profile_CreateNewContact: String { return self._s[2385]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2386]! } + public var Call_Speaker: String { return self._s[2388]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2389]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2391]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2392]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2390]!, self._r[2390]!, [_0]) + return formatWithArgumentRanges(self._s[2393]!, self._r[2393]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2391]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2392]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2393]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2394]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2395]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2396]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2397]! } - public var Bot_Unblock: String { return self._s[2398]! } - public var TextFormat_Italic: String { return self._s[2399]! } - public var WallpaperSearch_ColorPink: String { return self._s[2400]! } - public var Settings_About_Help: String { return self._s[2401]! } - public var SearchImages_Title: String { return self._s[2402]! } - public var Weekday_Wednesday: String { return self._s[2403]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2404]! } - public var ExplicitContent_AlertTitle: String { return self._s[2405]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2394]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2395]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2396]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2397]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2398]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2399]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2400]! } + public var Bot_Unblock: String { return self._s[2401]! } + public var TextFormat_Italic: String { return self._s[2402]! } + public var WallpaperSearch_ColorPink: String { return self._s[2403]! } + public var Settings_About_Help: String { return self._s[2404]! } + public var SearchImages_Title: String { return self._s[2405]! } + public var Weekday_Wednesday: String { return self._s[2406]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2407]! } + public var ExplicitContent_AlertTitle: String { return self._s[2408]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2406]!, self._r[2406]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2409]!, self._r[2409]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2407]! } - public var Weekday_Thursday: String { return self._s[2408]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2409]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2410]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2410]! } + public var Weekday_Thursday: String { return self._s[2411]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2412]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2413]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2411]!, self._r[2411]!, [_0]) + return formatWithArgumentRanges(self._s[2414]!, self._r[2414]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2412]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2413]! } - public var Passport_RequestedInformation: String { return self._s[2414]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2415]! } - public var Conversation_EncryptionProcessing: String { return self._s[2417]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2418]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2420]! } - public var Channel_Setup_Title: String { return self._s[2421]! } - public var Conversation_SearchPlaceholder: String { return self._s[2422]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2423]! } - public var Checkout_ErrorGeneric: String { return self._s[2424]! } - public var Passport_Language_hu: String { return self._s[2425]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2426]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2415]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2416]! } + public var Passport_RequestedInformation: String { return self._s[2417]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2418]! } + public var Conversation_EncryptionProcessing: String { return self._s[2420]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2421]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2423]! } + public var Channel_Setup_Title: String { return self._s[2424]! } + public var Conversation_SearchPlaceholder: String { return self._s[2425]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2426]! } + public var Checkout_ErrorGeneric: String { return self._s[2427]! } + public var Passport_Language_hu: String { return self._s[2428]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2429]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2428]!, self._r[2428]!, [_0]) + return formatWithArgumentRanges(self._s[2431]!, self._r[2431]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2431]!, self._r[2431]!, [_1]) + return formatWithArgumentRanges(self._s[2434]!, self._r[2434]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2432]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2435]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2433]!, self._r[2433]!, [_0]) + return formatWithArgumentRanges(self._s[2436]!, self._r[2436]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2434]! } - public var Group_Location_Info: String { return self._s[2435]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2436]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2437]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2437]! } + public var Group_Location_Info: String { return self._s[2438]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2439]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2440]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2438]!, self._r[2438]!, [_0]) + return formatWithArgumentRanges(self._s[2441]!, self._r[2441]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2439]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2440]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2441]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2442]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2442]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2443]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2444]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2445]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2443]!, self._r[2443]!, [_0]) + return formatWithArgumentRanges(self._s[2446]!, self._r[2446]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2444]! } - public var Message_PinnedAnimationMessage: String { return self._s[2446]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2448]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2449]! } - public var Wallet_Info_TransactionTo: String { return self._s[2451]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2452]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2453]! } - public var Embed_PlayingInPIP: String { return self._s[2454]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2455]! } + public var Passport_Language_cs: String { return self._s[2447]! } + public var Message_PinnedAnimationMessage: String { return self._s[2449]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2451]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2452]! } + public var Wallet_Info_TransactionTo: String { return self._s[2454]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2455]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2456]! } + public var Embed_PlayingInPIP: String { return self._s[2457]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2458]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2456]!, self._r[2456]!, [_0]) + return formatWithArgumentRanges(self._s[2459]!, self._r[2459]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2457]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2460]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2458]!, self._r[2458]!, [_1]) + return formatWithArgumentRanges(self._s[2461]!, self._r[2461]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2459]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2460]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2461]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2462]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2463]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2464]! } + public var Notification_PaymentSent: String { return self._s[2462]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2463]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2464]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2465]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2466]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2467]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_1]) + return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_1]) } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2468]!, self._r[2468]!, [_1]) + return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_1]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2469]!, self._r[2469]!, [_1]) + return formatWithArgumentRanges(self._s[2472]!, self._r[2472]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2471]! } - public var PasscodeSettings_HelpTop: String { return self._s[2472]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2473]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2474]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2475]! } - public var EditTheme_ShortLink: String { return self._s[2476]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2477]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2478]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2479]! } - public var Call_Accept: String { return self._s[2481]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2482]! } - public var Month_GenMarch: String { return self._s[2484]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2485]! } - public var LoginPassword_Title: String { return self._s[2486]! } - public var Call_End: String { return self._s[2487]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2488]! } - public var VoiceOver_Chat_Contact: String { return self._s[2489]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2490]! } - public var CallSettings_Always: String { return self._s[2491]! } - public var CallFeedback_Success: String { return self._s[2492]! } - public var TwoStepAuth_SetupHint: String { return self._s[2493]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2474]! } + public var PasscodeSettings_HelpTop: String { return self._s[2475]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2476]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2477]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2478]! } + public var EditTheme_ShortLink: String { return self._s[2479]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2480]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2481]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2482]! } + public var Call_Accept: String { return self._s[2484]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2485]! } + public var Month_GenMarch: String { return self._s[2487]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2488]! } + public var LoginPassword_Title: String { return self._s[2489]! } + public var Call_End: String { return self._s[2490]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2491]! } + public var VoiceOver_Chat_Contact: String { return self._s[2492]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2493]! } + public var CallSettings_Always: String { return self._s[2494]! } + public var CallFeedback_Success: String { return self._s[2495]! } + public var TwoStepAuth_SetupHint: String { return self._s[2496]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2494]!, self._r[2494]!, [_1]) + return formatWithArgumentRanges(self._s[2497]!, self._r[2497]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2495]! } - public var Login_PhoneTitle: String { return self._s[2496]! } - public var Passport_FieldPhoneHelp: String { return self._s[2497]! } - public var Weekday_ShortSunday: String { return self._s[2498]! } - public var Passport_InfoFAQ_URL: String { return self._s[2499]! } - public var ContactInfo_Job: String { return self._s[2501]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2502]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2503]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2504]! } - public var Invite_ChannelsTooMuch: String { return self._s[2505]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2506]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2507]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2508]! } - public var Wallet_Receive_AmountText: String { return self._s[2509]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2510]! } - public var CallFeedback_ReasonNoise: String { return self._s[2511]! } - public var Appearance_AppIconDefault: String { return self._s[2513]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2514]! } - public var MediaPicker_AddCaption: String { return self._s[2515]! } - public var CallSettings_TabIconDescription: String { return self._s[2516]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2498]! } + public var Login_PhoneTitle: String { return self._s[2499]! } + public var Passport_FieldPhoneHelp: String { return self._s[2500]! } + public var Weekday_ShortSunday: String { return self._s[2501]! } + public var Passport_InfoFAQ_URL: String { return self._s[2502]! } + public var ContactInfo_Job: String { return self._s[2504]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2505]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2506]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2507]! } + public var Invite_ChannelsTooMuch: String { return self._s[2508]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2509]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2510]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2511]! } + public var Wallet_Receive_AmountText: String { return self._s[2512]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2513]! } + public var CallFeedback_ReasonNoise: String { return self._s[2514]! } + public var Appearance_AppIconDefault: String { return self._s[2516]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2517]! } + public var MediaPicker_AddCaption: String { return self._s[2518]! } + public var CallSettings_TabIconDescription: String { return self._s[2519]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2517]!, self._r[2517]!, [_0]) + return formatWithArgumentRanges(self._s[2520]!, self._r[2520]!, [_0]) } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2518]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2519]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2520]! } - public var DialogList_SearchSectionRecent: String { return self._s[2521]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2522]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2525]! } - public var LastSeen_WithinAWeek: String { return self._s[2526]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2527]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2529]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2530]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2521]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2522]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2523]! } + public var DialogList_SearchSectionRecent: String { return self._s[2524]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2525]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2528]! } + public var LastSeen_WithinAWeek: String { return self._s[2529]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2530]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2532]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2533]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2531]!, self._r[2531]!, [_0]) + return formatWithArgumentRanges(self._s[2534]!, self._r[2534]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2532]! } - public var Conversation_StatusLeftGroup: String { return self._s[2533]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2534]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2536]! } - public var GroupPermission_AddSuccess: String { return self._s[2537]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2539]! } - public var Conversation_ContextMenuCopy: String { return self._s[2540]! } - public var AccessDenied_CallMicrophone: String { return self._s[2541]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2535]! } + public var Conversation_StatusLeftGroup: String { return self._s[2536]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2537]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2539]! } + public var GroupPermission_AddSuccess: String { return self._s[2540]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2542]! } + public var Conversation_ContextMenuCopy: String { return self._s[2543]! } + public var AccessDenied_CallMicrophone: String { return self._s[2544]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2542]!, self._r[2542]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2545]!, self._r[2545]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2543]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2544]! } - public var Checkout_PaymentMethod_New: String { return self._s[2545]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2546]! } - public var PhotoEditor_QualityTool: String { return self._s[2547]! } - public var Login_SendCodeViaSms: String { return self._s[2548]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2549]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2550]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2551]! } - public var Login_EmailNotConfiguredError: String { return self._s[2552]! } - public var SocksProxySetup_Status: String { return self._s[2553]! } - public var PrivacyPolicy_Accept: String { return self._s[2554]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2555]! } - public var Appearance_AppIconClassicX: String { return self._s[2556]! } + public var Login_InvalidFirstNameError: String { return self._s[2546]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2547]! } + public var Checkout_PaymentMethod_New: String { return self._s[2548]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2549]! } + public var PhotoEditor_QualityTool: String { return self._s[2550]! } + public var Login_SendCodeViaSms: String { return self._s[2551]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2552]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2553]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2554]! } + public var Login_EmailNotConfiguredError: String { return self._s[2555]! } + public var SocksProxySetup_Status: String { return self._s[2556]! } + public var PrivacyPolicy_Accept: String { return self._s[2557]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2558]! } + public var Appearance_AppIconClassicX: String { return self._s[2559]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2557]!, self._r[2557]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2560]!, self._r[2560]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2558]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2560]! } - public var AutoNightTheme_Automatic: String { return self._s[2561]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2562]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2563]! } - public var Cache_Help: String { return self._s[2564]! } - public var Group_ErrorAccessDenied: String { return self._s[2565]! } - public var Passport_Language_fa: String { return self._s[2566]! } - public var Wallet_Intro_Text: String { return self._s[2567]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2568]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2569]! } - public var PrivacySettings_LastSeen: String { return self._s[2570]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2561]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2563]! } + public var AutoNightTheme_Automatic: String { return self._s[2564]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2565]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2566]! } + public var Cache_Help: String { return self._s[2567]! } + public var Group_ErrorAccessDenied: String { return self._s[2568]! } + public var Passport_Language_fa: String { return self._s[2569]! } + public var Wallet_Intro_Text: String { return self._s[2570]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2571]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2572]! } + public var PrivacySettings_LastSeen: String { return self._s[2573]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2571]!, self._r[2571]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2574]!, self._r[2574]!, [_0, _1]) } - public var Preview_SaveGif: String { return self._s[2575]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2576]! } - public var Profile_About: String { return self._s[2577]! } - public var Channel_About_Placeholder: String { return self._s[2578]! } - public var Login_InfoTitle: String { return self._s[2579]! } + public var Preview_SaveGif: String { return self._s[2578]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2579]! } + public var Profile_About: String { return self._s[2580]! } + public var Channel_About_Placeholder: String { return self._s[2581]! } + public var Login_InfoTitle: String { return self._s[2582]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2580]!, self._r[2580]!, [_0]) + return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2581]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2583]! } - public var ContactInfo_Title: String { return self._s[2584]! } - public var Media_ShareThisVideo: String { return self._s[2585]! } - public var Weekday_ShortFriday: String { return self._s[2586]! } - public var AccessDenied_Contacts: String { return self._s[2588]! } - public var Notification_CallIncomingShort: String { return self._s[2589]! } - public var Group_Setup_TypePublic: String { return self._s[2590]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2591]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2592]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2595]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2596]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2597]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2598]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2599]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2584]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2586]! } + public var ContactInfo_Title: String { return self._s[2587]! } + public var Media_ShareThisVideo: String { return self._s[2588]! } + public var Weekday_ShortFriday: String { return self._s[2589]! } + public var AccessDenied_Contacts: String { return self._s[2591]! } + public var Notification_CallIncomingShort: String { return self._s[2592]! } + public var Group_Setup_TypePublic: String { return self._s[2593]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2594]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2595]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2598]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2599]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2600]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2601]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2602]! } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2600]!, self._r[2600]!, [_0]) + return formatWithArgumentRanges(self._s[2603]!, self._r[2603]!, [_0]) } - public var DialogList_Typing: String { return self._s[2601]! } - public var CallFeedback_IncludeLogs: String { return self._s[2603]! } - public var Checkout_Phone: String { return self._s[2605]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2608]! } - public var Privacy_Calls_Integration: String { return self._s[2609]! } - public var Notifications_PermissionsAllow: String { return self._s[2610]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2614]! } - public var Settings_ChatSettings: String { return self._s[2615]! } + public var DialogList_Typing: String { return self._s[2604]! } + public var CallFeedback_IncludeLogs: String { return self._s[2606]! } + public var Checkout_Phone: String { return self._s[2608]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2611]! } + public var Privacy_Calls_Integration: String { return self._s[2612]! } + public var Notifications_PermissionsAllow: String { return self._s[2613]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2617]! } + public var Settings_ChatSettings: String { return self._s[2618]! } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2616]!, self._r[2616]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2618]! } + public var GroupRemoved_DeleteUser: String { return self._s[2621]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_0]) + return formatWithArgumentRanges(self._s[2622]!, self._r[2622]!, [_0]) } - public var Wallet_TransactionInfo_FeeInfoURL: String { return self._s[2620]! } + public var Wallet_TransactionInfo_FeeInfoURL: String { return self._s[2623]! } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2621]!, self._r[2621]!, [_1]) + return formatWithArgumentRanges(self._s[2624]!, self._r[2624]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[2622]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2623]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2625]! } - public var Conversation_Unblock: String { return self._s[2626]! } - public var PrivacySettings_DataSettings: String { return self._s[2627]! } - public var Group_PublicLink_Info: String { return self._s[2628]! } + public var Login_ContinueWithLocalization: String { return self._s[2625]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2626]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2628]! } + public var Conversation_Unblock: String { return self._s[2629]! } + public var PrivacySettings_DataSettings: String { return self._s[2630]! } + public var Group_PublicLink_Info: String { return self._s[2631]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2629]!, self._r[2629]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2632]!, self._r[2632]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2630]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2633]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2631]!, self._r[2631]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2634]!, self._r[2634]!, [_0, _1]) } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2633]! } - public var PrivacySettings_Passcode: String { return self._s[2635]! } - public var Call_Mute: String { return self._s[2636]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2637]! } - public var Passport_Language_dz: String { return self._s[2638]! } - public var Wallet_Receive_AmountHeader: String { return self._s[2639]! } - public var Passport_Language_tk: String { return self._s[2640]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2636]! } + public var PrivacySettings_Passcode: String { return self._s[2638]! } + public var Call_Mute: String { return self._s[2639]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2640]! } + public var Passport_Language_dz: String { return self._s[2641]! } + public var Wallet_Receive_AmountHeader: String { return self._s[2642]! } + public var Passport_Language_tk: String { return self._s[2643]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2641]!, self._r[2641]!, [_0]) + return formatWithArgumentRanges(self._s[2644]!, self._r[2644]!, [_0]) } - public var Settings_Search: String { return self._s[2642]! } - public var Wallet_Month_ShortFebruary: String { return self._s[2643]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2644]! } - public var Conversation_ContextMenuReply: String { return self._s[2645]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2646]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2647]! } - public var Tour_Title1: String { return self._s[2648]! } - public var Wallet_Alert_Cancel: String { return self._s[2649]! } - public var Conversation_ClearGroupHistory: String { return self._s[2651]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2652]! } - public var WallpaperPreview_Motion: String { return self._s[2653]! } + public var Settings_Search: String { return self._s[2645]! } + public var Wallet_Month_ShortFebruary: String { return self._s[2646]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2647]! } + public var Conversation_ContextMenuReply: String { return self._s[2648]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2649]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2650]! } + public var Tour_Title1: String { return self._s[2651]! } + public var Wallet_Alert_Cancel: String { return self._s[2652]! } + public var Conversation_ClearGroupHistory: String { return self._s[2654]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2655]! } + public var WallpaperPreview_Motion: String { return self._s[2656]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2654]!, self._r[2654]!, [_0]) + return formatWithArgumentRanges(self._s[2657]!, self._r[2657]!, [_0]) } - public var Call_RateCall: String { return self._s[2655]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2656]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2657]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2658]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2660]! } + public var Call_RateCall: String { return self._s[2658]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2659]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2660]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2661]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2663]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2662]!, self._r[2662]!, [_0]) + return formatWithArgumentRanges(self._s[2665]!, self._r[2665]!, [_0]) } - public var Compose_Create: String { return self._s[2663]! } - public var Contacts_InviteToTelegram: String { return self._s[2664]! } - public var GroupInfo_Notifications: String { return self._s[2665]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2667]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2668]! } - public var Month_GenApril: String { return self._s[2669]! } - public var Appearance_AutoNightTheme: String { return self._s[2670]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2672]! } - public var Login_CodeSentSms: String { return self._s[2674]! } + public var Compose_Create: String { return self._s[2666]! } + public var Contacts_InviteToTelegram: String { return self._s[2667]! } + public var GroupInfo_Notifications: String { return self._s[2668]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2670]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2671]! } + public var Month_GenApril: String { return self._s[2672]! } + public var Appearance_AutoNightTheme: String { return self._s[2673]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2675]! } + public var Login_CodeSentSms: String { return self._s[2677]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2675]!, self._r[2675]!, [_0]) + return formatWithArgumentRanges(self._s[2678]!, self._r[2678]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[2676]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2677]! } - public var Passport_Language_hr: String { return self._s[2678]! } - public var Common_ActionNotAllowedError: String { return self._s[2679]! } + public var EmptyGroupInfo_Line3: String { return self._s[2679]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2680]! } + public var Passport_Language_hr: String { return self._s[2681]! } + public var Common_ActionNotAllowedError: String { return self._s[2682]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2680]!, self._r[2680]!, [_0]) + return formatWithArgumentRanges(self._s[2683]!, self._r[2683]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2681]! } - public var Wallet_Info_TransactionFrom: String { return self._s[2682]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2683]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2684]! } - public var Privacy_SecretChatsTitle: String { return self._s[2685]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2687]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2688]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2689]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2690]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2691]! } - public var Preview_DeleteGif: String { return self._s[2692]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2693]! } - public var Group_ErrorNotMutualContact: String { return self._s[2694]! } - public var Notification_MessageLifetime5s: String { return self._s[2695]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2684]! } + public var Wallet_Info_TransactionFrom: String { return self._s[2685]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2686]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2687]! } + public var Privacy_SecretChatsTitle: String { return self._s[2688]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2690]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2691]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2692]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2693]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2694]! } + public var Preview_DeleteGif: String { return self._s[2695]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2696]! } + public var Group_ErrorNotMutualContact: String { return self._s[2697]! } + public var Notification_MessageLifetime5s: String { return self._s[2698]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2696]!, self._r[2696]!, [_0]) + return formatWithArgumentRanges(self._s[2699]!, self._r[2699]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[2697]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2699]! } - public var ReportSpam_DeleteThisChat: String { return self._s[2700]! } - public var Passport_Address_AddBankStatement: String { return self._s[2701]! } - public var Notification_CallIncoming: String { return self._s[2702]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[2703]! } - public var Compose_NewGroupTitle: String { return self._s[2704]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2706]! } - public var Passport_Address_Postcode: String { return self._s[2708]! } + public var VoiceOver_Chat_Video: String { return self._s[2700]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2702]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2703]! } + public var Passport_Address_AddBankStatement: String { return self._s[2704]! } + public var Notification_CallIncoming: String { return self._s[2705]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[2706]! } + public var Compose_NewGroupTitle: String { return self._s[2707]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2709]! } + public var Passport_Address_Postcode: String { return self._s[2711]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2709]!, self._r[2709]!, [_0]) + return formatWithArgumentRanges(self._s[2712]!, self._r[2712]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2710]! } - public var Wallet_Month_ShortOctober: String { return self._s[2711]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2712]! } - public var WallpaperColors_Title: String { return self._s[2713]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2714]! } - public var VoiceOver_MessageContextForward: String { return self._s[2715]! } - public var GroupPermission_Duration: String { return self._s[2716]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2713]! } + public var Wallet_Month_ShortOctober: String { return self._s[2714]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2715]! } + public var WallpaperColors_Title: String { return self._s[2716]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2717]! } + public var VoiceOver_MessageContextForward: String { return self._s[2718]! } + public var GroupPermission_Duration: String { return self._s[2719]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2717]!, self._r[2717]!, [_0]) + return formatWithArgumentRanges(self._s[2720]!, self._r[2720]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2718]! } - public var Username_Placeholder: String { return self._s[2719]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2720]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2721]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2722]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2721]! } + public var Username_Placeholder: String { return self._s[2722]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2723]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2724]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2725]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2724]!, self._r[2724]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2727]!, self._r[2727]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[2725]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2726]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2727]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2728]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2729]! } - public var Conversation_ContextMenuMore: String { return self._s[2730]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2731]! } - public var CallSettings_TabIcon: String { return self._s[2732]! } - public var KeyCommand_Find: String { return self._s[2733]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2734]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2735]! } - public var Message_PinnedGame: String { return self._s[2736]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2737]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2739]! } - public var Login_CallRequestState2: String { return self._s[2741]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2743]! } + public var Passport_PasswordDescription: String { return self._s[2728]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2729]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2730]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2731]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2732]! } + public var Conversation_ContextMenuMore: String { return self._s[2733]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2734]! } + public var CallSettings_TabIcon: String { return self._s[2735]! } + public var KeyCommand_Find: String { return self._s[2736]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2737]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2738]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2739]! } + public var Message_PinnedGame: String { return self._s[2740]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2741]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2743]! } + public var Login_CallRequestState2: String { return self._s[2745]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2747]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2744]!, self._r[2744]!, [_0]) + return formatWithArgumentRanges(self._s[2748]!, self._r[2748]!, [_0]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2746]!, self._r[2746]!, [_0]) + return formatWithArgumentRanges(self._s[2750]!, self._r[2750]!, [_0]) } - public var WallpaperPreview_Blurred: String { return self._s[2747]! } - public var Conversation_InstantPagePreview: String { return self._s[2748]! } + public var WallpaperPreview_Blurred: String { return self._s[2751]! } + public var Conversation_InstantPagePreview: String { return self._s[2752]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2749]!, self._r[2749]!, [_0]) + return formatWithArgumentRanges(self._s[2753]!, self._r[2753]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2752]! } - public var WallpaperSearch_ColorRed: String { return self._s[2753]! } - public var GroupPermission_NoPinMessages: String { return self._s[2754]! } - public var Passport_Language_es: String { return self._s[2755]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2757]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2758]! } + public var SecretTimer_VideoDescription: String { return self._s[2756]! } + public var WallpaperSearch_ColorRed: String { return self._s[2757]! } + public var GroupPermission_NoPinMessages: String { return self._s[2758]! } + public var Passport_Language_es: String { return self._s[2759]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2761]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2762]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2759]!, self._r[2759]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2763]!, self._r[2763]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2760]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2761]! } - public var Watch_UserInfo_Unmute: String { return self._s[2762]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2763]! } - public var AccessDenied_CameraRestricted: String { return self._s[2765]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2764]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2765]! } + public var Watch_UserInfo_Unmute: String { return self._s[2766]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2767]! } + public var AccessDenied_CameraRestricted: String { return self._s[2769]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2766]!, self._r[2766]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2770]!, self._r[2770]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2768]! } - public var Settings_CopyUsername: String { return self._s[2769]! } - public var Contacts_SearchLabel: String { return self._s[2770]! } - public var Map_OpenInYandexNavigator: String { return self._s[2772]! } - public var PasscodeSettings_EncryptData: String { return self._s[2773]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2774]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2775]! } - public var DialogList_AdNoticeAlert: String { return self._s[2776]! } - public var Wallet_Month_GenMay: String { return self._s[2778]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2779]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2780]! } - public var Localization_LanguageCustom: String { return self._s[2781]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2782]! } - public var CallFeedback_Title: String { return self._s[2783]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2786]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2787]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[2788]! } - public var Conversation_InfoGroup: String { return self._s[2789]! } - public var Compose_NewMessage: String { return self._s[2790]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2791]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2792]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2793]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2794]! } + public var ChatList_ReadAll: String { return self._s[2772]! } + public var Settings_CopyUsername: String { return self._s[2773]! } + public var Contacts_SearchLabel: String { return self._s[2774]! } + public var Map_OpenInYandexNavigator: String { return self._s[2776]! } + public var PasscodeSettings_EncryptData: String { return self._s[2777]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2778]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2779]! } + public var DialogList_AdNoticeAlert: String { return self._s[2780]! } + public var Wallet_Month_GenMay: String { return self._s[2782]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2783]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2784]! } + public var Localization_LanguageCustom: String { return self._s[2785]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2786]! } + public var CallFeedback_Title: String { return self._s[2787]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2790]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2791]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[2792]! } + public var Conversation_InfoGroup: String { return self._s[2793]! } + public var Compose_NewMessage: String { return self._s[2794]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2795]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2796]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2797]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2798]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2795]!, self._r[2795]!, [_0]) + return formatWithArgumentRanges(self._s[2799]!, self._r[2799]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2796]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2797]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2798]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2799]! } - public var Channel_BlackList_Title: String { return self._s[2800]! } - public var UserInfo_PhoneCall: String { return self._s[2801]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2803]! } - public var Wallet_Month_ShortJanuary: String { return self._s[2804]! } - public var State_connecting: String { return self._s[2805]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2806]! } - public var Wallet_Month_GenMarch: String { return self._s[2807]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2808]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2800]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2801]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2802]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2803]! } + public var Channel_BlackList_Title: String { return self._s[2804]! } + public var UserInfo_PhoneCall: String { return self._s[2805]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2807]! } + public var Wallet_Month_ShortJanuary: String { return self._s[2808]! } + public var State_connecting: String { return self._s[2809]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2810]! } + public var Wallet_Month_GenMarch: String { return self._s[2811]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2812]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2809]!, self._r[2809]!, [_0]) + return formatWithArgumentRanges(self._s[2813]!, self._r[2813]!, [_0]) } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2810]!, self._r[2810]!, [_0]) + return formatWithArgumentRanges(self._s[2814]!, self._r[2814]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2811]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2812]! } - public var Passport_Identity_EditPassport: String { return self._s[2813]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2815]! } - public var Localization_EnglishLanguageName: String { return self._s[2816]! } - public var Share_AuthDescription: String { return self._s[2817]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2818]! } - public var Passport_Identity_Surname: String { return self._s[2819]! } - public var Compose_TokenListPlaceholder: String { return self._s[2820]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[2821]! } - public var Settings_AboutEmpty: String { return self._s[2822]! } - public var Conversation_Unmute: String { return self._s[2823]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[2825]! } - public var Wallet_Sending_Text: String { return self._s[2826]! } + public var Notifications_GroupNotifications: String { return self._s[2815]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2816]! } + public var Passport_Identity_EditPassport: String { return self._s[2817]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2819]! } + public var Localization_EnglishLanguageName: String { return self._s[2820]! } + public var Share_AuthDescription: String { return self._s[2821]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2822]! } + public var Passport_Identity_Surname: String { return self._s[2823]! } + public var Compose_TokenListPlaceholder: String { return self._s[2824]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[2825]! } + public var Settings_AboutEmpty: String { return self._s[2826]! } + public var Conversation_Unmute: String { return self._s[2827]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[2829]! } + public var Wallet_Sending_Text: String { return self._s[2830]! } public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2827]!, self._r[2827]!, [_1]) + return formatWithArgumentRanges(self._s[2831]!, self._r[2831]!, [_1]) } - public var Login_CodeSentCall: String { return self._s[2828]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2830]! } - public var ChatSettings_Appearance: String { return self._s[2831]! } - public var Appearance_PickAccentColor: String { return self._s[2832]! } + public var Login_CodeSentCall: String { return self._s[2832]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2834]! } + public var ChatSettings_Appearance: String { return self._s[2835]! } + public var Appearance_PickAccentColor: String { return self._s[2836]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2833]!, self._r[2833]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2837]!, self._r[2837]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2834]!, self._r[2834]!, [_1]) + return formatWithArgumentRanges(self._s[2838]!, self._r[2838]!, [_1]) } - public var Notification_CallMissed: String { return self._s[2835]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[2836]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2837]! } - public var Wallet_Month_GenOctober: String { return self._s[2839]! } - public var ChatAdmins_AdminLabel: String { return self._s[2840]! } - public var KeyCommand_JumpToNextChat: String { return self._s[2841]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[2843]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[2844]! } - public var Month_GenJune: String { return self._s[2845]! } - public var Watch_Location_Current: String { return self._s[2846]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[2847]! } - public var Conversation_TitleMute: String { return self._s[2848]! } + public var Notification_CallMissed: String { return self._s[2839]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[2840]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2841]! } + public var Wallet_Month_GenOctober: String { return self._s[2843]! } + public var ChatAdmins_AdminLabel: String { return self._s[2844]! } + public var KeyCommand_JumpToNextChat: String { return self._s[2845]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[2847]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[2848]! } + public var Month_GenJune: String { return self._s[2849]! } + public var Watch_Location_Current: String { return self._s[2850]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[2851]! } + public var Conversation_TitleMute: String { return self._s[2852]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2849]!, self._r[2849]!, [_1]) + return formatWithArgumentRanges(self._s[2853]!, self._r[2853]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[2850]! } + public var GroupInfo_DeleteAndExit: String { return self._s[2854]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2851]!, self._r[2851]!, [_0]) + return formatWithArgumentRanges(self._s[2855]!, self._r[2855]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[2852]! } - public var Chat_SlowmodeSendError: String { return self._s[2853]! } - public var MaskStickerSettings_Info: String { return self._s[2854]! } - public var EditTheme_Expand_TopInfo: String { return self._s[2855]! } + public var Call_ReportPlaceholder: String { return self._s[2856]! } + public var Chat_SlowmodeSendError: String { return self._s[2857]! } + public var MaskStickerSettings_Info: String { return self._s[2858]! } + public var EditTheme_Expand_TopInfo: String { return self._s[2859]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2856]!, self._r[2856]!, [_0]) + return formatWithArgumentRanges(self._s[2860]!, self._r[2860]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[2857]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[2859]! } - public var Contacts_ShareTelegram: String { return self._s[2860]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[2861]! } - public var Channel_ErrorAccessDenied: String { return self._s[2862]! } - public var UserInfo_ScamBotWarning: String { return self._s[2864]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[2865]! } - public var Call_ConnectionErrorTitle: String { return self._s[2866]! } - public var UserInfo_NotificationsEnable: String { return self._s[2867]! } - public var ArchivedChats_IntroText1: String { return self._s[2868]! } - public var Tour_Text4: String { return self._s[2871]! } - public var WallpaperSearch_Recent: String { return self._s[2872]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[2873]! } - public var Profile_MessageLifetime2s: String { return self._s[2875]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[2876]! } - public var Notification_MessageLifetime2s: String { return self._s[2877]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[2861]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[2863]! } + public var Contacts_ShareTelegram: String { return self._s[2864]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[2865]! } + public var Channel_ErrorAccessDenied: String { return self._s[2866]! } + public var UserInfo_ScamBotWarning: String { return self._s[2868]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[2869]! } + public var Call_ConnectionErrorTitle: String { return self._s[2870]! } + public var UserInfo_NotificationsEnable: String { return self._s[2871]! } + public var ArchivedChats_IntroText1: String { return self._s[2872]! } + public var Tour_Text4: String { return self._s[2875]! } + public var WallpaperSearch_Recent: String { return self._s[2876]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[2877]! } + public var Profile_MessageLifetime2s: String { return self._s[2879]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[2880]! } + public var Notification_MessageLifetime2s: String { return self._s[2881]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2878]!, self._r[2878]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[2879]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[2880]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[2881]! } + public var Cache_ClearCache: String { return self._s[2883]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[2884]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[2885]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2885]!, self._r[2885]!, [_0]) + return formatWithArgumentRanges(self._s[2889]!, self._r[2889]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2887]!, self._r[2887]!, [_0]) + return formatWithArgumentRanges(self._s[2891]!, self._r[2891]!, [_0]) } - public var LocalGroup_Text: String { return self._s[2888]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[2889]! } - public var SocksProxySetup_TypeSocks: String { return self._s[2890]! } - public var ChatList_UnarchiveAction: String { return self._s[2891]! } - public var AutoNightTheme_Title: String { return self._s[2892]! } - public var InstantPage_FeedbackButton: String { return self._s[2893]! } - public var Passport_FieldAddress: String { return self._s[2894]! } + public var LocalGroup_Text: String { return self._s[2892]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[2893]! } + public var SocksProxySetup_TypeSocks: String { return self._s[2894]! } + public var ChatList_UnarchiveAction: String { return self._s[2895]! } + public var AutoNightTheme_Title: String { return self._s[2896]! } + public var InstantPage_FeedbackButton: String { return self._s[2897]! } + public var Passport_FieldAddress: String { return self._s[2898]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2895]!, self._r[2895]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2899]!, self._r[2899]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[2896]! } + public var Month_ShortMarch: String { return self._s[2900]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2897]!, self._r[2897]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2901]!, self._r[2901]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[2898]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[2899]! } - public var Passport_FloodError: String { return self._s[2900]! } - public var SecretGif_Title: String { return self._s[2901]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2902]! } - public var ChatList_Context_UnhideArchive: String { return self._s[2903]! } - public var Passport_Language_th: String { return self._s[2905]! } - public var Passport_Address_Address: String { return self._s[2906]! } - public var Login_InvalidLastNameError: String { return self._s[2907]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[2908]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[2909]! } - public var ChatList_Context_Archive: String { return self._s[2910]! } - public var SettingsSearch_FAQ: String { return self._s[2911]! } - public var ShareMenu_Send: String { return self._s[2912]! } - public var WallpaperSearch_ColorYellow: String { return self._s[2914]! } - public var Month_GenNovember: String { return self._s[2916]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[2918]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[2902]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[2903]! } + public var Passport_FloodError: String { return self._s[2904]! } + public var SecretGif_Title: String { return self._s[2905]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2906]! } + public var ChatList_Context_UnhideArchive: String { return self._s[2907]! } + public var Passport_Language_th: String { return self._s[2909]! } + public var Passport_Address_Address: String { return self._s[2910]! } + public var Login_InvalidLastNameError: String { return self._s[2911]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[2912]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[2913]! } + public var ChatList_Context_Archive: String { return self._s[2914]! } + public var SettingsSearch_FAQ: String { return self._s[2915]! } + public var ShareMenu_Send: String { return self._s[2916]! } + public var WallpaperSearch_ColorYellow: String { return self._s[2918]! } + public var Month_GenNovember: String { return self._s[2920]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[2922]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2919]!, self._r[2919]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_1, _2]) } - public var Checkout_Email: String { return self._s[2920]! } - public var NotificationsSound_Tritone: String { return self._s[2921]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[2923]! } - public var Wallet_ContextMenuCopy: String { return self._s[2925]! } + public var Checkout_Email: String { return self._s[2924]! } + public var NotificationsSound_Tritone: String { return self._s[2925]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[2927]! } + public var Wallet_ContextMenuCopy: String { return self._s[2929]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2927]!, self._r[2927]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2931]!, self._r[2931]!, [_1, _2, _3]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2928]!, self._r[2928]!, [_1]) + return formatWithArgumentRanges(self._s[2932]!, self._r[2932]!, [_1]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[2929]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[2933]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2930]!, self._r[2930]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[2934]!, self._r[2934]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[2931]! } - public var Notification_Exceptions_Add: String { return self._s[2932]! } - public var DialogList_You: String { return self._s[2933]! } - public var MediaPicker_Send: String { return self._s[2936]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2937]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[2938]! } - public var Call_AudioRouteSpeaker: String { return self._s[2939]! } - public var Watch_UserInfo_Title: String { return self._s[2940]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[2941]! } - public var Appearance_AccentColor: String { return self._s[2943]! } + public var ChatList_UndoArchiveTitle: String { return self._s[2935]! } + public var Notification_Exceptions_Add: String { return self._s[2936]! } + public var DialogList_You: String { return self._s[2937]! } + public var MediaPicker_Send: String { return self._s[2940]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2941]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[2942]! } + public var Call_AudioRouteSpeaker: String { return self._s[2943]! } + public var Watch_UserInfo_Title: String { return self._s[2944]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[2945]! } + public var Appearance_AccentColor: String { return self._s[2947]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2944]!, self._r[2944]!, [_0]) + return formatWithArgumentRanges(self._s[2948]!, self._r[2948]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2945]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2949]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2946]!, self._r[2946]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2950]!, self._r[2950]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[2947]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[2948]! } - public var Notification_CallOutgoing: String { return self._s[2949]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[2950]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[2951]! } - public var Call_RecordingDisabledMessage: String { return self._s[2952]! } - public var Message_Game: String { return self._s[2953]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[2954]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[2955]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[2956]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[2957]! } - public var Date_DialogDateFormat: String { return self._s[2958]! } - public var WallpaperColors_SetCustomColor: String { return self._s[2959]! } - public var Notifications_InAppNotifications: String { return self._s[2960]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[2951]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[2952]! } + public var Notification_CallOutgoing: String { return self._s[2953]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[2954]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[2955]! } + public var Call_RecordingDisabledMessage: String { return self._s[2956]! } + public var Message_Game: String { return self._s[2957]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[2958]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[2959]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[2960]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[2961]! } + public var Date_DialogDateFormat: String { return self._s[2962]! } + public var WallpaperColors_SetCustomColor: String { return self._s[2963]! } + public var Notifications_InAppNotifications: String { return self._s[2964]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2961]!, self._r[2961]!, [_0]) + return formatWithArgumentRanges(self._s[2965]!, self._r[2965]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2962]!, self._r[2962]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2966]!, self._r[2966]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[2963]! } + public var NewContact_Title: String { return self._s[2967]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2964]!, self._r[2964]!, [_0]) + return formatWithArgumentRanges(self._s[2968]!, self._r[2968]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[2965]! } + public var Conversation_ViewContactDetails: String { return self._s[2969]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2967]!, self._r[2967]!, [_1]) + return formatWithArgumentRanges(self._s[2971]!, self._r[2971]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[2968]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[2969]! } - public var PrivacySettings_Title: String { return self._s[2970]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[2973]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[2974]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[2975]! } - public var Contacts_PhoneNumber: String { return self._s[2976]! } - public var Map_ShowPlaces: String { return self._s[2978]! } - public var ChatAdmins_Title: String { return self._s[2979]! } - public var InstantPage_Reference: String { return self._s[2981]! } - public var Wallet_Info_Updating: String { return self._s[2982]! } - public var ReportGroupLocation_Text: String { return self._s[2983]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[2972]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[2973]! } + public var PrivacySettings_Title: String { return self._s[2974]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[2977]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[2978]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[2979]! } + public var Contacts_PhoneNumber: String { return self._s[2980]! } + public var Map_ShowPlaces: String { return self._s[2982]! } + public var ChatAdmins_Title: String { return self._s[2983]! } + public var InstantPage_Reference: String { return self._s[2985]! } + public var Wallet_Info_Updating: String { return self._s[2986]! } + public var ReportGroupLocation_Text: String { return self._s[2987]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2984]!, self._r[2984]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2988]!, self._r[2988]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[2985]! } - public var Wallet_Intro_TermsUrl: String { return self._s[2986]! } - public var Watch_UserInfo_Block: String { return self._s[2987]! } - public var ChatSettings_Stickers: String { return self._s[2988]! } - public var ChatSettings_DownloadInBackground: String { return self._s[2989]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[2990]! } + public var Camera_FlashOff: String { return self._s[2989]! } + public var Wallet_Intro_TermsUrl: String { return self._s[2990]! } + public var Watch_UserInfo_Block: String { return self._s[2991]! } + public var ChatSettings_Stickers: String { return self._s[2992]! } + public var ChatSettings_DownloadInBackground: String { return self._s[2993]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[2994]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2991]!, self._r[2991]!, [_0]) + return formatWithArgumentRanges(self._s[2995]!, self._r[2995]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[2992]! } - public var Login_CheckOtherSessionMessages: String { return self._s[2993]! } - public var AutoDownloadSettings_Cellular: String { return self._s[2994]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[2995]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2996]! } - public var VoiceOver_MessageContextShare: String { return self._s[2997]! } + public var Settings_ViewPhoto: String { return self._s[2996]! } + public var Login_CheckOtherSessionMessages: String { return self._s[2997]! } + public var AutoDownloadSettings_Cellular: String { return self._s[2998]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[2999]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3000]! } + public var VoiceOver_MessageContextShare: String { return self._s[3001]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2999]!, self._r[2999]!, [_0]) + return formatWithArgumentRanges(self._s[3003]!, self._r[3003]!, [_0]) } - public var Privacy_DeleteDrafts: String { return self._s[3000]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3001]! } + public var Privacy_DeleteDrafts: String { return self._s[3004]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3005]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3002]!, self._r[3002]!, [_0]) + return formatWithArgumentRanges(self._s[3006]!, self._r[3006]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3003]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3004]! } - public var DialogList_SavedMessages: String { return self._s[3005]! } - public var GroupInfo_UpgradeButton: String { return self._s[3006]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3008]! } - public var DialogList_Pin: String { return self._s[3009]! } + public var DialogList_SavedMessagesHelp: String { return self._s[3007]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3008]! } + public var DialogList_SavedMessages: String { return self._s[3009]! } + public var GroupInfo_UpgradeButton: String { return self._s[3010]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3012]! } + public var DialogList_Pin: String { return self._s[3013]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3010]!, self._r[3010]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3014]!, self._r[3014]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_0]) + return formatWithArgumentRanges(self._s[3015]!, self._r[3015]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3012]! } - public var UserInfo_NotificationsDisable: String { return self._s[3013]! } - public var Paint_Outlined: String { return self._s[3014]! } - public var Activity_PlayingGame: String { return self._s[3015]! } - public var SearchImages_NoImagesFound: String { return self._s[3016]! } - public var SocksProxySetup_ProxyType: String { return self._s[3017]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3019]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3020]! } - public var Settings_AppLanguage: String { return self._s[3021]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3022]! } - public var Common_ChoosePhoto: String { return self._s[3023]! } - public var CallFeedback_ReasonEcho: String { return self._s[3024]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3016]! } + public var UserInfo_NotificationsDisable: String { return self._s[3017]! } + public var Paint_Outlined: String { return self._s[3018]! } + public var Activity_PlayingGame: String { return self._s[3019]! } + public var SearchImages_NoImagesFound: String { return self._s[3020]! } + public var SocksProxySetup_ProxyType: String { return self._s[3021]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3023]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3024]! } + public var Settings_AppLanguage: String { return self._s[3025]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3026]! } + public var Common_ChoosePhoto: String { return self._s[3027]! } + public var CallFeedback_ReasonEcho: String { return self._s[3028]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3025]!, self._r[3025]!, [_1]) + return formatWithArgumentRanges(self._s[3029]!, self._r[3029]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3026]! } - public var Activity_UploadingVideo: String { return self._s[3027]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3028]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3029]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3030]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3031]! } - public var PUSH_SENDER_YOU: String { return self._s[3032]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3033]! } - public var Checkout_PayWithTouchId: String { return self._s[3034]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3035]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3030]! } + public var Activity_UploadingVideo: String { return self._s[3031]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3032]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3033]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3034]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3035]! } + public var PUSH_SENDER_YOU: String { return self._s[3036]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3037]! } + public var Checkout_PayWithTouchId: String { return self._s[3038]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3039]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3037]!, self._r[3037]!, [_1]) + return formatWithArgumentRanges(self._s[3041]!, self._r[3041]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3038]! } + public var Notifications_ExceptionsNone: String { return self._s[3042]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3039]!, self._r[3039]!, [_0]) + return formatWithArgumentRanges(self._s[3043]!, self._r[3043]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3040]!, self._r[3040]!, [_1]) + return formatWithArgumentRanges(self._s[3044]!, self._r[3044]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3042]! } - public var Passport_Address_Region: String { return self._s[3045]! } - public var ChatList_DeleteChat: String { return self._s[3046]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3047]! } - public var PhotoEditor_TiltShift: String { return self._s[3048]! } - public var Settings_FAQ_URL: String { return self._s[3049]! } - public var Passport_Language_sl: String { return self._s[3050]! } - public var Settings_PrivacySettings: String { return self._s[3052]! } - public var SharedMedia_TitleLink: String { return self._s[3053]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3054]! } - public var Settings_SetProfilePhoto: String { return self._s[3055]! } - public var Channel_About_Help: String { return self._s[3056]! } - public var Contacts_PermissionsEnable: String { return self._s[3057]! } - public var Wallet_Sending_Title: String { return self._s[3058]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3059]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3060]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3062]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3063]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3064]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3065]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3066]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3068]! } - public var Map_OpenInYandexMaps: String { return self._s[3070]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3071]! } - public var VoiceOver_MessageContextReply: String { return self._s[3072]! } - public var PhotoEditor_SaturationTool: String { return self._s[3073]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3046]! } + public var Passport_Address_Region: String { return self._s[3049]! } + public var ChatList_DeleteChat: String { return self._s[3050]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3051]! } + public var PhotoEditor_TiltShift: String { return self._s[3052]! } + public var Settings_FAQ_URL: String { return self._s[3053]! } + public var Passport_Language_sl: String { return self._s[3054]! } + public var Settings_PrivacySettings: String { return self._s[3056]! } + public var SharedMedia_TitleLink: String { return self._s[3057]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3058]! } + public var Settings_SetProfilePhoto: String { return self._s[3059]! } + public var Channel_About_Help: String { return self._s[3060]! } + public var Contacts_PermissionsEnable: String { return self._s[3061]! } + public var Wallet_Sending_Title: String { return self._s[3062]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3063]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3064]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3066]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3067]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3068]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3069]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3070]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3072]! } + public var Map_OpenInYandexMaps: String { return self._s[3074]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3075]! } + public var VoiceOver_MessageContextReply: String { return self._s[3076]! } + public var PhotoEditor_SaturationTool: String { return self._s[3077]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3074]!, self._r[3074]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3078]!, self._r[3078]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3075]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3076]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3077]! } - public var Appearance_TextSize: String { return self._s[3078]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3079]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3080]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3081]! } + public var Appearance_TextSize: String { return self._s[3082]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3079]!, self._r[3079]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3080]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3082]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3084]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3086]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3087]!, self._r[3087]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3084]!, self._r[3084]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3088]!, self._r[3088]!, [_1, _2, _3]) } - public var GroupInfo_PublicLinkAdd: String { return self._s[3085]! } - public var Passport_PassportInformation: String { return self._s[3088]! } - public var Theme_Unsupported: String { return self._s[3089]! } - public var WatchRemote_AlertTitle: String { return self._s[3090]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3091]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3093]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3089]! } + public var Passport_PassportInformation: String { return self._s[3092]! } + public var Theme_Unsupported: String { return self._s[3093]! } + public var WatchRemote_AlertTitle: String { return self._s[3094]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3095]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3097]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3094]!, self._r[3094]!, [_0]) + return formatWithArgumentRanges(self._s[3098]!, self._r[3098]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3095]!, self._r[3095]!, [_1]) + return formatWithArgumentRanges(self._s[3099]!, self._r[3099]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3096]! } - public var Wallet_Navigation_Done: String { return self._s[3098]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3099]! } - public var AccessDenied_CameraDisabled: String { return self._s[3100]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3100]! } + public var Wallet_Navigation_Done: String { return self._s[3102]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3103]! } + public var AccessDenied_CameraDisabled: String { return self._s[3104]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3101]!, self._r[3101]!, [_0]) + return formatWithArgumentRanges(self._s[3105]!, self._r[3105]!, [_0]) } - public var PhotoEditor_ContrastTool: String { return self._s[3104]! } + public var PhotoEditor_ContrastTool: String { return self._s[3108]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3105]!, self._r[3105]!, [_1]) + return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_1]) } - public var DialogList_Draft: String { return self._s[3106]! } - public var Privacy_TopPeersDelete: String { return self._s[3108]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3109]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3110]! } - public var WebSearch_RecentSectionClear: String { return self._s[3111]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3112]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3114]! } - public var Common_Done: String { return self._s[3116]! } - public var AuthSessions_EmptyText: String { return self._s[3117]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3118]! } - public var Tour_Title5: String { return self._s[3119]! } - public var Wallet_Settings_Title: String { return self._s[3120]! } + public var DialogList_Draft: String { return self._s[3110]! } + public var Privacy_TopPeersDelete: String { return self._s[3112]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3113]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3114]! } + public var WebSearch_RecentSectionClear: String { return self._s[3115]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3116]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3118]! } + public var Common_Done: String { return self._s[3120]! } + public var AuthSessions_EmptyText: String { return self._s[3121]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3122]! } + public var Tour_Title5: String { return self._s[3123]! } + public var Wallet_Settings_Title: String { return self._s[3124]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3121]!, self._r[3121]!, [_0]) + return formatWithArgumentRanges(self._s[3125]!, self._r[3125]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3122]! } - public var Conversation_LinkDialogSave: String { return self._s[3123]! } - public var GroupInfo_ActionRestrict: String { return self._s[3124]! } - public var Checkout_Title: String { return self._s[3125]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3127]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3129]! } - public var Notification_RenamedGroup: String { return self._s[3130]! } - public var PeopleNearby_Groups: String { return self._s[3131]! } - public var Checkout_PayWithFaceId: String { return self._s[3132]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3133]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3135]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3136]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3137]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3126]! } + public var Conversation_LinkDialogSave: String { return self._s[3127]! } + public var GroupInfo_ActionRestrict: String { return self._s[3128]! } + public var Checkout_Title: String { return self._s[3129]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3131]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3133]! } + public var Notification_RenamedGroup: String { return self._s[3134]! } + public var PeopleNearby_Groups: String { return self._s[3135]! } + public var Checkout_PayWithFaceId: String { return self._s[3136]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3137]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3139]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3140]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3141]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3138]!, self._r[3138]!, [_0]) + return formatWithArgumentRanges(self._s[3142]!, self._r[3142]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3140]! } + public var Profile_AddToExisting: String { return self._s[3144]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3141]!, self._r[3141]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3143]! } - public var Permissions_PrivacyPolicy: String { return self._s[3144]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3145]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3146]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3148]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3150]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3151]! } + public var Cache_Files: String { return self._s[3147]! } + public var Permissions_PrivacyPolicy: String { return self._s[3148]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3149]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3150]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3152]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3154]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3155]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3152]!, self._r[3152]!, [_0]) + return formatWithArgumentRanges(self._s[3156]!, self._r[3156]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3153]! } - public var VoiceOver_AttachMedia: String { return self._s[3155]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3156]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3157]! } + public var VoiceOver_AttachMedia: String { return self._s[3159]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3160]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3157]!, self._r[3157]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3161]!, self._r[3161]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3158]! } - public var Conversation_SetReminder_Title: String { return self._s[3159]! } - public var Passport_FieldAddressHelp: String { return self._s[3160]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3161]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3162]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3162]! } + public var Conversation_SetReminder_Title: String { return self._s[3163]! } + public var Passport_FieldAddressHelp: String { return self._s[3164]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3165]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3166]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3163]!, self._r[3163]!, [_0]) + return formatWithArgumentRanges(self._s[3167]!, self._r[3167]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3164]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3165]! } - public var Login_UnknownError: String { return self._s[3166]! } - public var Group_UpgradeNoticeText2: String { return self._s[3169]! } - public var Watch_Compose_AddContact: String { return self._s[3170]! } - public var Web_Error: String { return self._s[3171]! } - public var Gif_Search: String { return self._s[3172]! } - public var Profile_MessageLifetime1h: String { return self._s[3173]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3174]! } - public var Channel_Username_CheckingUsername: String { return self._s[3175]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3176]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3177]! } - public var Channel_AboutItem: String { return self._s[3178]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3180]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3181]! } - public var GroupInfo_SharedMedia: String { return self._s[3182]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3168]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3169]! } + public var Login_UnknownError: String { return self._s[3170]! } + public var Group_UpgradeNoticeText2: String { return self._s[3173]! } + public var Watch_Compose_AddContact: String { return self._s[3174]! } + public var Web_Error: String { return self._s[3175]! } + public var Gif_Search: String { return self._s[3176]! } + public var Profile_MessageLifetime1h: String { return self._s[3177]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3178]! } + public var Channel_Username_CheckingUsername: String { return self._s[3179]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3180]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3181]! } + public var Channel_AboutItem: String { return self._s[3182]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3184]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3185]! } + public var GroupInfo_SharedMedia: String { return self._s[3186]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3183]!, self._r[3183]!, [_1]) + return formatWithArgumentRanges(self._s[3187]!, self._r[3187]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[3184]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3188]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_1]) + return formatWithArgumentRanges(self._s[3189]!, self._r[3189]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3186]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3187]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3188]! } - public var CreatePoll_AddOption: String { return self._s[3189]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3190]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3191]! } - public var Channel_Management_AddModerator: String { return self._s[3192]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3193]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3194]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3195]! } - public var NotificationsSound_Hello: String { return self._s[3197]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3198]! } - public var Channel_Stickers_Placeholder: String { return self._s[3200]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3190]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3191]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3192]! } + public var CreatePoll_AddOption: String { return self._s[3193]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3194]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3195]! } + public var Channel_Management_AddModerator: String { return self._s[3196]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3197]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3198]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3199]! } + public var NotificationsSound_Hello: String { return self._s[3201]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3202]! } + public var Channel_Stickers_Placeholder: String { return self._s[3204]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3201]!, self._r[3201]!, [_0]) + return formatWithArgumentRanges(self._s[3205]!, self._r[3205]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3202]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3203]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3204]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3205]! } - public var AutoDownloadSettings_Channels: String { return self._s[3206]! } - public var Passport_Language_mn: String { return self._s[3207]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3210]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3211]! } - public var Passport_Language_ja: String { return self._s[3213]! } - public var Settings_About_Title: String { return self._s[3214]! } - public var Settings_NotificationsAndSounds: String { return self._s[3215]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3216]! } - public var Settings_BlockedUsers: String { return self._s[3217]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3206]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3207]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3208]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3209]! } + public var AutoDownloadSettings_Channels: String { return self._s[3210]! } + public var Passport_Language_mn: String { return self._s[3211]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3214]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3215]! } + public var Passport_Language_ja: String { return self._s[3217]! } + public var Settings_About_Title: String { return self._s[3218]! } + public var Settings_NotificationsAndSounds: String { return self._s[3219]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3220]! } + public var Settings_BlockedUsers: String { return self._s[3221]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3218]!, self._r[3218]!, [_0]) + return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3219]! } - public var Wallet_Weekday_Today: String { return self._s[3220]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3221]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3222]! } - public var Channel_Username_Title: String { return self._s[3223]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3223]! } + public var Wallet_Weekday_Today: String { return self._s[3224]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3225]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3226]! } + public var Channel_Username_Title: String { return self._s[3227]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3224]!, self._r[3224]!, [_0]) + return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3226]! } - public var AppleWatch_Title: String { return self._s[3227]! } - public var Activity_RecordingVideoMessage: String { return self._s[3228]! } + public var AttachmentMenu_File: String { return self._s[3230]! } + public var AppleWatch_Title: String { return self._s[3231]! } + public var Activity_RecordingVideoMessage: String { return self._s[3232]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3229]!, self._r[3229]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_1, _2]) } - public var Weekday_Saturday: String { return self._s[3230]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3231]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3232]! } - public var Common_Next: String { return self._s[3234]! } - public var Channel_Stickers_YourStickers: String { return self._s[3236]! } - public var Message_Theme: String { return self._s[3237]! } - public var Call_AudioRouteHeadphones: String { return self._s[3238]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3240]! } - public var Watch_Contacts_NoResults: String { return self._s[3242]! } - public var PhotoEditor_TintTool: String { return self._s[3245]! } - public var LoginPassword_ResetAccount: String { return self._s[3247]! } - public var Settings_SavedMessages: String { return self._s[3248]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3249]! } - public var Bot_GenericSupportStatus: String { return self._s[3250]! } - public var StickerPack_Add: String { return self._s[3251]! } - public var Checkout_TotalAmount: String { return self._s[3252]! } - public var Your_cards_number_is_invalid: String { return self._s[3253]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3254]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3255]! } + public var Weekday_Saturday: String { return self._s[3234]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3235]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3236]! } + public var Common_Next: String { return self._s[3238]! } + public var Channel_Stickers_YourStickers: String { return self._s[3240]! } + public var Message_Theme: String { return self._s[3241]! } + public var Call_AudioRouteHeadphones: String { return self._s[3242]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3244]! } + public var Watch_Contacts_NoResults: String { return self._s[3246]! } + public var PhotoEditor_TintTool: String { return self._s[3249]! } + public var LoginPassword_ResetAccount: String { return self._s[3251]! } + public var Settings_SavedMessages: String { return self._s[3252]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3253]! } + public var Bot_GenericSupportStatus: String { return self._s[3254]! } + public var StickerPack_Add: String { return self._s[3255]! } + public var Checkout_TotalAmount: String { return self._s[3256]! } + public var Your_cards_number_is_invalid: String { return self._s[3257]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3258]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3259]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3256]!, self._r[3256]!, [_0]) + return formatWithArgumentRanges(self._s[3260]!, self._r[3260]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3257]!, self._r[3257]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3261]!, self._r[3261]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3258]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3262]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3260]!, self._r[3260]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3264]!, self._r[3264]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3261]!, self._r[3261]!, [_0]) + return formatWithArgumentRanges(self._s[3265]!, self._r[3265]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3262]! } - public var StickerPack_Share: String { return self._s[3263]! } - public var Passport_DeleteAddress: String { return self._s[3264]! } - public var Settings_Passport: String { return self._s[3265]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3266]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3267]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3268]! } - public var Contacts_PermissionsText: String { return self._s[3269]! } - public var Group_Setup_HistoryVisible: String { return self._s[3270]! } - public var Wallet_Month_ShortDecember: String { return self._s[3272]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3273]! } - public var SocksProxySetup_Title: String { return self._s[3274]! } - public var Notification_Mute1h: String { return self._s[3275]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3266]! } + public var StickerPack_Share: String { return self._s[3267]! } + public var Passport_DeleteAddress: String { return self._s[3268]! } + public var Settings_Passport: String { return self._s[3269]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3270]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3271]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3272]! } + public var Contacts_PermissionsText: String { return self._s[3273]! } + public var Group_Setup_HistoryVisible: String { return self._s[3274]! } + public var Wallet_Month_ShortDecember: String { return self._s[3276]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3277]! } + public var SocksProxySetup_Title: String { return self._s[3278]! } + public var Notification_Mute1h: String { return self._s[3279]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_0]) + return formatWithArgumentRanges(self._s[3280]!, self._r[3280]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3277]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3281]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3278]!, self._r[3278]!, [_1]) + return formatWithArgumentRanges(self._s[3282]!, self._r[3282]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3279]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3282]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3284]! } - public var DialogList_NoMessagesText: String { return self._s[3285]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3286]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3287]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3289]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3290]! } - public var Common_TakePhotoOrVideo: String { return self._s[3291]! } - public var Wallet_Words_Text: String { return self._s[3292]! } - public var Call_StatusBusy: String { return self._s[3293]! } - public var Conversation_PinnedMessage: String { return self._s[3294]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3295]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3296]! } - public var Undo_ChatCleared: String { return self._s[3297]! } - public var AppleWatch_ReplyPresets: String { return self._s[3298]! } - public var Passport_DiscardMessageDescription: String { return self._s[3300]! } - public var Login_NetworkError: String { return self._s[3301]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3283]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3286]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3288]! } + public var DialogList_NoMessagesText: String { return self._s[3289]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3290]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3291]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3293]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3294]! } + public var Common_TakePhotoOrVideo: String { return self._s[3295]! } + public var Wallet_Words_Text: String { return self._s[3296]! } + public var Call_StatusBusy: String { return self._s[3297]! } + public var Conversation_PinnedMessage: String { return self._s[3298]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3299]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3300]! } + public var Undo_ChatCleared: String { return self._s[3301]! } + public var AppleWatch_ReplyPresets: String { return self._s[3302]! } + public var Passport_DiscardMessageDescription: String { return self._s[3304]! } + public var Login_NetworkError: String { return self._s[3305]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_0]) + return formatWithArgumentRanges(self._s[3306]!, self._r[3306]!, [_0]) } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_0]) + return formatWithArgumentRanges(self._s[3307]!, self._r[3307]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3304]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3306]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3307]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3308]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3310]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3311]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_0]) + return formatWithArgumentRanges(self._s[3313]!, self._r[3313]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3310]! } - public var VoiceOver_Chat_Music: String { return self._s[3311]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3312]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3314]! } - public var ConversationMedia_Title: String { return self._s[3315]! } - public var EncryptionKey_Title: String { return self._s[3317]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3318]! } - public var Notification_Exceptions_AddException: String { return self._s[3319]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3320]! } - public var Profile_MessageLifetime1m: String { return self._s[3321]! } + public var Call_ConnectionErrorMessage: String { return self._s[3314]! } + public var VoiceOver_Chat_Music: String { return self._s[3315]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3316]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3318]! } + public var ConversationMedia_Title: String { return self._s[3319]! } + public var EncryptionKey_Title: String { return self._s[3321]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3322]! } + public var Notification_Exceptions_AddException: String { return self._s[3323]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3324]! } + public var Profile_MessageLifetime1m: String { return self._s[3325]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3322]!, self._r[3322]!, [_1]) + return formatWithArgumentRanges(self._s[3326]!, self._r[3326]!, [_1]) } - public var Month_GenMay: String { return self._s[3323]! } + public var Month_GenMay: String { return self._s[3327]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3324]!, self._r[3324]!, [_0]) + return formatWithArgumentRanges(self._s[3328]!, self._r[3328]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3325]! } - public var Wallet_Send_AddressInfo: String { return self._s[3326]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3327]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3328]! } + public var PeopleNearby_Users: String { return self._s[3329]! } + public var Wallet_Send_AddressInfo: String { return self._s[3330]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3331]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3332]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3330]!, self._r[3330]!, [_0]) + return formatWithArgumentRanges(self._s[3334]!, self._r[3334]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3331]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3332]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3333]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3334]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3335]! } - public var Channel_JoinChannel: String { return self._s[3337]! } - public var Appearance_Animations: String { return self._s[3340]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3335]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3336]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3337]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3338]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3339]! } + public var Channel_JoinChannel: String { return self._s[3341]! } + public var Appearance_Animations: String { return self._s[3344]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3341]!, self._r[3341]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3343]! } - public var Appearance_ShareTheme: String { return self._s[3344]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3346]! } - public var Passport_Address_Street: String { return self._s[3347]! } - public var Conversation_AddContact: String { return self._s[3348]! } - public var Login_PhonePlaceholder: String { return self._s[3349]! } - public var Channel_Members_InviteLink: String { return self._s[3351]! } - public var Bot_Stop: String { return self._s[3352]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3354]! } - public var Notification_PassportValueAddress: String { return self._s[3355]! } - public var Month_ShortJuly: String { return self._s[3356]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3357]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3358]! } - public var Passport_Identity_ReverseSide: String { return self._s[3359]! } - public var Watch_Stickers_Recents: String { return self._s[3362]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3364]! } - public var Map_SendThisLocation: String { return self._s[3365]! } + public var Stickers_GroupStickers: String { return self._s[3347]! } + public var Appearance_ShareTheme: String { return self._s[3348]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3350]! } + public var Passport_Address_Street: String { return self._s[3351]! } + public var Conversation_AddContact: String { return self._s[3352]! } + public var Login_PhonePlaceholder: String { return self._s[3353]! } + public var Channel_Members_InviteLink: String { return self._s[3355]! } + public var Bot_Stop: String { return self._s[3356]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3358]! } + public var Notification_PassportValueAddress: String { return self._s[3359]! } + public var Month_ShortJuly: String { return self._s[3360]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3361]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3362]! } + public var Passport_Identity_ReverseSide: String { return self._s[3363]! } + public var Watch_Stickers_Recents: String { return self._s[3366]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3368]! } + public var Map_SendThisLocation: String { return self._s[3369]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3366]!, self._r[3366]!, [_0]) - } - public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3367]!, self._r[3367]!, [_0]) - } - public var ConvertToSupergroup_Note: String { return self._s[3368]! } - public var Wallet_Intro_NotNow: String { return self._s[3369]! } - public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3370]!, self._r[3370]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3371]! } + public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3371]!, self._r[3371]!, [_0]) + } + public var ConvertToSupergroup_Note: String { return self._s[3372]! } + public var Wallet_Intro_NotNow: String { return self._s[3373]! } + public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3374]!, self._r[3374]!, [_0]) + } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3375]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3372]!, self._r[3372]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3376]!, self._r[3376]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3374]! } - public var Wallpaper_SearchShort: String { return self._s[3375]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3377]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3378]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3379]! } + public var Login_CallRequestState3: String { return self._s[3378]! } + public var Wallpaper_SearchShort: String { return self._s[3379]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3381]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3382]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3383]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3380]!, self._r[3380]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3384]!, self._r[3384]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3381]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3385]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3385]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3389]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3386]!, self._r[3386]!, [_0]) + return formatWithArgumentRanges(self._s[3390]!, self._r[3390]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3387]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3388]! } + public var Passport_CorrectErrors: String { return self._s[3391]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3392]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3389]!, self._r[3389]!, [_0]) + return formatWithArgumentRanges(self._s[3393]!, self._r[3393]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3390]! } - public var Channel_DiscussionGroup: String { return self._s[3391]! } + public var Map_SendMyCurrentLocation: String { return self._s[3394]! } + public var Channel_DiscussionGroup: String { return self._s[3395]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3392]!, self._r[3392]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3396]!, self._r[3396]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3393]! } - public var Permissions_NotificationsText_v0: String { return self._s[3394]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3395]! } - public var Appearance_AppIcon: String { return self._s[3396]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3397]! } - public var LoginPassword_FloodError: String { return self._s[3398]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3400]! } + public var SharedMedia_SearchNoResults: String { return self._s[3397]! } + public var Permissions_NotificationsText_v0: String { return self._s[3398]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3399]! } + public var Appearance_AppIcon: String { return self._s[3400]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3401]! } + public var LoginPassword_FloodError: String { return self._s[3402]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3404]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3401]!, self._r[3401]!, [_0]) - } - public var Passport_Language_bn: String { return self._s[3402]! } - public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3403]!, self._r[3403]!, [_0]) - } - public var ChatList_Context_Pin: String { return self._s[3404]! } - public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3405]!, self._r[3405]!, [_0]) } + public var Passport_Language_bn: String { return self._s[3406]! } + public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3407]!, self._r[3407]!, [_0]) + } + public var ChatList_Context_Pin: String { return self._s[3408]! } + public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3409]!, self._r[3409]!, [_0]) + } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3406]!, self._r[3406]!, [_0]) + return formatWithArgumentRanges(self._s[3410]!, self._r[3410]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3407]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3411]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3413]! } - public var Wallet_Month_GenDecember: String { return self._s[3414]! } - public var Contacts_PermissionsAllow: String { return self._s[3415]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3416]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3417]! } - public var WallpaperPreview_Pattern: String { return self._s[3418]! } - public var Paint_Duplicate: String { return self._s[3419]! } - public var Passport_Address_Country: String { return self._s[3420]! } - public var Notification_RenamedChannel: String { return self._s[3422]! } - public var ChatList_Context_Unmute: String { return self._s[3423]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3424]! } - public var Group_MessagePhotoUpdated: String { return self._s[3425]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3426]! } - public var Conversation_ContextMenuBan: String { return self._s[3427]! } - public var TwoStepAuth_EmailSent: String { return self._s[3428]! } - public var MessagePoll_NoVotes: String { return self._s[3429]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3430]! } - public var Passport_Language_is: String { return self._s[3431]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3433]! } - public var Tour_Text5: String { return self._s[3434]! } + public var Wallet_Navigation_Close: String { return self._s[3411]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3415]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3417]! } + public var Wallet_Month_GenDecember: String { return self._s[3418]! } + public var Contacts_PermissionsAllow: String { return self._s[3419]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3420]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3421]! } + public var WallpaperPreview_Pattern: String { return self._s[3422]! } + public var Paint_Duplicate: String { return self._s[3423]! } + public var Passport_Address_Country: String { return self._s[3424]! } + public var Notification_RenamedChannel: String { return self._s[3426]! } + public var ChatList_Context_Unmute: String { return self._s[3427]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3428]! } + public var Group_MessagePhotoUpdated: String { return self._s[3429]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3430]! } + public var Conversation_ContextMenuBan: String { return self._s[3431]! } + public var TwoStepAuth_EmailSent: String { return self._s[3432]! } + public var MessagePoll_NoVotes: String { return self._s[3433]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3434]! } + public var Passport_Language_is: String { return self._s[3435]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3437]! } + public var Tour_Text5: String { return self._s[3438]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3436]!, self._r[3436]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3440]!, self._r[3440]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3437]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3438]! } + public var Undo_SecretChatDeleted: String { return self._s[3441]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3442]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3439]!, self._r[3439]!, [_0]) + return formatWithArgumentRanges(self._s[3443]!, self._r[3443]!, [_0]) } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3440]! } - public var Paint_Edit: String { return self._s[3442]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3444]! } - public var Undo_DeletedGroup: String { return self._s[3446]! } - public var LoginPassword_ForgotPassword: String { return self._s[3447]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3448]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3449]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3444]! } + public var Paint_Edit: String { return self._s[3446]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3448]! } + public var Undo_DeletedGroup: String { return self._s[3450]! } + public var LoginPassword_ForgotPassword: String { return self._s[3451]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3452]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3453]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3450]!, self._r[3450]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3454]!, self._r[3454]!, [_0, _1]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3451]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3452]! } - public var Passport_Language_uz: String { return self._s[3453]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3454]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3455]! } - public var Map_StopLiveLocation: String { return self._s[3457]! } - public var VoiceOver_MessageContextSend: String { return self._s[3459]! } - public var PasscodeSettings_Help: String { return self._s[3460]! } - public var NotificationsSound_Input: String { return self._s[3461]! } - public var Share_Title: String { return self._s[3464]! } - public var LogoutOptions_Title: String { return self._s[3465]! } - public var Wallet_Send_AddressText: String { return self._s[3466]! } - public var Login_TermsOfServiceAgree: String { return self._s[3467]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3468]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3469]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3470]! } - public var EnterPasscode_EnterTitle: String { return self._s[3471]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3455]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3456]! } + public var Passport_Language_uz: String { return self._s[3457]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3458]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3459]! } + public var Map_StopLiveLocation: String { return self._s[3461]! } + public var VoiceOver_MessageContextSend: String { return self._s[3463]! } + public var PasscodeSettings_Help: String { return self._s[3464]! } + public var NotificationsSound_Input: String { return self._s[3465]! } + public var Share_Title: String { return self._s[3468]! } + public var LogoutOptions_Title: String { return self._s[3469]! } + public var Wallet_Send_AddressText: String { return self._s[3470]! } + public var Login_TermsOfServiceAgree: String { return self._s[3471]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3472]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3473]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3474]! } + public var EnterPasscode_EnterTitle: String { return self._s[3475]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3472]!, self._r[3472]!, [_0]) + return formatWithArgumentRanges(self._s[3476]!, self._r[3476]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3473]! } - public var Conversation_AddToContacts: String { return self._s[3474]! } + public var Settings_CopyPhoneNumber: String { return self._s[3477]! } + public var Conversation_AddToContacts: String { return self._s[3478]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3475]!, self._r[3475]!, [_0]) + return formatWithArgumentRanges(self._s[3479]!, self._r[3479]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[3476]! } + public var NotificationsSound_Keys: String { return self._s[3480]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3477]!, self._r[3477]!, [_0]) + return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_0]) } - public var Notification_MessageLifetime1w: String { return self._s[3478]! } - public var Message_Video: String { return self._s[3479]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3480]! } + public var Notification_MessageLifetime1w: String { return self._s[3482]! } + public var Message_Video: String { return self._s[3483]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3484]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_1]) + return formatWithArgumentRanges(self._s[3485]!, self._r[3485]!, [_1]) } - public var Wallet_Receive_AmountInfo: String { return self._s[3484]! } + public var Wallet_Receive_AmountInfo: String { return self._s[3488]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3485]!, self._r[3485]!, [_0]) + return formatWithArgumentRanges(self._s[3489]!, self._r[3489]!, [_0]) } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3486]!, self._r[3486]!, [_0]) + return formatWithArgumentRanges(self._s[3490]!, self._r[3490]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3487]! } + public var Passport_Language_mk: String { return self._s[3491]! } public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3488]!, self._r[3488]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3492]!, self._r[3492]!, [_1, _2, _3]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3489]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3491]! } - public var PrivacyPolicy_Decline: String { return self._s[3492]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3493]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3494]! } - public var Permissions_SiriAllow_v0: String { return self._s[3496]! } - public var Wallet_Month_ShortAugust: String { return self._s[3497]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3498]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3493]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3495]! } + public var PrivacyPolicy_Decline: String { return self._s[3496]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3497]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3498]! } + public var Permissions_SiriAllow_v0: String { return self._s[3500]! } + public var Wallet_Month_ShortAugust: String { return self._s[3501]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3502]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3499]!, self._r[3499]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3503]!, self._r[3503]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3500]!, self._r[3500]!, [_0]) + return formatWithArgumentRanges(self._s[3504]!, self._r[3504]!, [_0]) } - public var Paint_Regular: String { return self._s[3501]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3502]! } - public var SocksProxySetup_ShareLink: String { return self._s[3503]! } - public var Wallet_Qr_Title: String { return self._s[3504]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3505]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3507]! } - public var GroupInfo_InviteByLink: String { return self._s[3508]! } - public var MessageTimer_Custom: String { return self._s[3509]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3510]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3512]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3513]! } - public var VoiceOver_Chat_Selected: String { return self._s[3514]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3515]! } - public var Channel_Username_InvalidTaken: String { return self._s[3516]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3517]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3518]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3519]! } - public var Settings_ChatBackground: String { return self._s[3520]! } - public var Channel_Subscribers_Title: String { return self._s[3521]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3522]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3523]! } - public var Watch_ConnectionDescription: String { return self._s[3524]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3528]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3529]! } - public var EditProfile_Title: String { return self._s[3530]! } - public var NotificationsSound_Bamboo: String { return self._s[3532]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3534]! } - public var Login_SmsRequestState2: String { return self._s[3535]! } - public var Passport_Language_ar: String { return self._s[3536]! } + public var Paint_Regular: String { return self._s[3505]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3506]! } + public var SocksProxySetup_ShareLink: String { return self._s[3507]! } + public var Wallet_Qr_Title: String { return self._s[3508]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3509]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3511]! } + public var GroupInfo_InviteByLink: String { return self._s[3512]! } + public var MessageTimer_Custom: String { return self._s[3513]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3514]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3516]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3517]! } + public var VoiceOver_Chat_Selected: String { return self._s[3518]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3519]! } + public var Channel_Username_InvalidTaken: String { return self._s[3520]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3521]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3522]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3523]! } + public var Settings_ChatBackground: String { return self._s[3524]! } + public var Channel_Subscribers_Title: String { return self._s[3525]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3526]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3527]! } + public var Watch_ConnectionDescription: String { return self._s[3528]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3532]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3533]! } + public var EditProfile_Title: String { return self._s[3534]! } + public var NotificationsSound_Bamboo: String { return self._s[3536]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3538]! } + public var Login_SmsRequestState2: String { return self._s[3539]! } + public var Passport_Language_ar: String { return self._s[3540]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3537]!, self._r[3537]!, [_0]) + return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3538]! } - public var Wallet_Created_Text: String { return self._s[3539]! } - public var Conversation_MessageDialogEdit: String { return self._s[3540]! } - public var Wallet_Created_Proceed: String { return self._s[3541]! } - public var Wallet_Words_Done: String { return self._s[3542]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3543]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3542]! } + public var Wallet_Created_Text: String { return self._s[3543]! } + public var Conversation_MessageDialogEdit: String { return self._s[3544]! } + public var Wallet_Created_Proceed: String { return self._s[3545]! } + public var Wallet_Words_Done: String { return self._s[3546]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3547]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3544]!, self._r[3544]!, [_1]) + return formatWithArgumentRanges(self._s[3548]!, self._r[3548]!, [_1]) } - public var Common_Close: String { return self._s[3545]! } - public var GroupInfo_PublicLink: String { return self._s[3546]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3547]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3548]! } + public var Common_Close: String { return self._s[3549]! } + public var GroupInfo_PublicLink: String { return self._s[3550]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3551]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3552]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3552]!, self._r[3552]!, [_0]) + return formatWithArgumentRanges(self._s[3556]!, self._r[3556]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3553]! } + public var UserInfo_About_Placeholder: String { return self._s[3557]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3554]!, self._r[3554]!, [_0]) - } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3555]! } - public var Channel_Info_Banned: String { return self._s[3557]! } - public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3558]!, self._r[3558]!, [_0]) } - public var Appearance_Other: String { return self._s[3559]! } - public var Passport_Language_my: String { return self._s[3560]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3561]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3559]! } + public var Channel_Info_Banned: String { return self._s[3561]! } + public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3562]!, self._r[3562]!, [_0]) + } + public var Appearance_Other: String { return self._s[3563]! } + public var Passport_Language_my: String { return self._s[3564]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3565]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3562]!, self._r[3562]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3566]!, self._r[3566]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3563]! } - public var Preview_CopyAddress: String { return self._s[3564]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3567]! } + public var Preview_CopyAddress: String { return self._s[3568]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3565]!, self._r[3565]!, [_0]) + return formatWithArgumentRanges(self._s[3569]!, self._r[3569]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3566]! } - public var UserInfo_BotSettings: String { return self._s[3567]! } - public var LiveLocation_MenuStopAll: String { return self._s[3569]! } - public var Passport_PasswordCreate: String { return self._s[3570]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3571]! } - public var Message_PinnedLocationMessage: String { return self._s[3572]! } - public var Map_Satellite: String { return self._s[3573]! } - public var Watch_Message_Unsupported: String { return self._s[3574]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3575]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3576]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3570]! } + public var UserInfo_BotSettings: String { return self._s[3571]! } + public var LiveLocation_MenuStopAll: String { return self._s[3573]! } + public var Passport_PasswordCreate: String { return self._s[3574]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3575]! } + public var Message_PinnedLocationMessage: String { return self._s[3576]! } + public var Map_Satellite: String { return self._s[3577]! } + public var Watch_Message_Unsupported: String { return self._s[3578]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3579]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3580]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3577]!, self._r[3577]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3581]!, self._r[3581]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0]) + return formatWithArgumentRanges(self._s[3582]!, self._r[3582]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[3579]! } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3580]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3581]! } - public var NotificationsSound_None: String { return self._s[3582]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3583]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3585]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3586]! } + public var Wallet_WordImport_Continue: String { return self._s[3583]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3584]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3585]! } + public var NotificationsSound_None: String { return self._s[3586]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3587]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3589]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3590]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3587]!, self._r[3587]!, [_1]) + return formatWithArgumentRanges(self._s[3591]!, self._r[3591]!, [_1]) } - public var Cache_Indexing: String { return self._s[3588]! } - public var DialogList_RecentTitlePeople: String { return self._s[3590]! } - public var DialogList_EncryptionRejected: String { return self._s[3591]! } - public var GroupInfo_Administrators: String { return self._s[3592]! } - public var Passport_ScanPassportHelp: String { return self._s[3593]! } - public var Application_Name: String { return self._s[3594]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3595]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3597]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3598]! } + public var Cache_Indexing: String { return self._s[3592]! } + public var DialogList_RecentTitlePeople: String { return self._s[3594]! } + public var DialogList_EncryptionRejected: String { return self._s[3595]! } + public var GroupInfo_Administrators: String { return self._s[3596]! } + public var Passport_ScanPassportHelp: String { return self._s[3597]! } + public var Application_Name: String { return self._s[3598]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3599]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3601]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3602]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3599]!, self._r[3599]!, [_0]) + return formatWithArgumentRanges(self._s[3603]!, self._r[3603]!, [_0]) } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_0]) + return formatWithArgumentRanges(self._s[3604]!, self._r[3604]!, [_0]) } public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3601]!, self._r[3601]!, [_0]) + return formatWithArgumentRanges(self._s[3605]!, self._r[3605]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3602]! } - public var Privacy_ChatsTitle: String { return self._s[3603]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3604]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3605]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3606]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3607]! } - public var Group_LinkedChannel: String { return self._s[3608]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3609]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3610]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3611]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3612]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3614]! } - public var Channel_Setup_TypePublic: String { return self._s[3616]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3606]! } + public var Privacy_ChatsTitle: String { return self._s[3607]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3608]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3609]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3610]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3611]! } + public var Group_LinkedChannel: String { return self._s[3612]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3613]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3614]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3615]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3616]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3618]! } + public var Channel_Setup_TypePublic: String { return self._s[3620]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3617]!, self._r[3617]!, [_0]) + return formatWithArgumentRanges(self._s[3621]!, self._r[3621]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3619]! } - public var Map_OpenInMaps: String { return self._s[3621]! } + public var Channel_TypeSetup_Title: String { return self._s[3623]! } + public var Map_OpenInMaps: String { return self._s[3625]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3622]!, self._r[3622]!, [_1]) + return formatWithArgumentRanges(self._s[3626]!, self._r[3626]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3624]! } + public var NotificationsSound_Tremolo: String { return self._s[3628]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3625]!, self._r[3625]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3629]!, self._r[3629]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3626]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3627]! } - public var Passport_PasswordHelp: String { return self._s[3628]! } - public var Login_CodeExpiredError: String { return self._s[3629]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3630]! } - public var Conversation_TitleUnmute: String { return self._s[3631]! } - public var Passport_Identity_ScansHelp: String { return self._s[3632]! } - public var Passport_Language_lo: String { return self._s[3633]! } - public var Camera_FlashAuto: String { return self._s[3634]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3635]! } - public var Common_Cancel: String { return self._s[3636]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3637]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3638]! } - public var Appearance_TintAllColors: String { return self._s[3639]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3630]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3631]! } + public var Passport_PasswordHelp: String { return self._s[3632]! } + public var Login_CodeExpiredError: String { return self._s[3633]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3634]! } + public var Conversation_TitleUnmute: String { return self._s[3635]! } + public var Passport_Identity_ScansHelp: String { return self._s[3636]! } + public var Passport_Language_lo: String { return self._s[3637]! } + public var Camera_FlashAuto: String { return self._s[3638]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3639]! } + public var Common_Cancel: String { return self._s[3640]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3641]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3642]! } + public var Appearance_TintAllColors: String { return self._s[3643]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3640]!, self._r[3640]!, [_1]) + return formatWithArgumentRanges(self._s[3644]!, self._r[3644]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3641]! } - public var ChatSettings_Title: String { return self._s[3643]! } - public var Passport_PasswordReset: String { return self._s[3644]! } - public var SocksProxySetup_TypeNone: String { return self._s[3645]! } - public var EditTheme_Title: String { return self._s[3647]! } - public var PhoneNumberHelp_Help: String { return self._s[3648]! } - public var Checkout_EnterPassword: String { return self._s[3649]! } - public var Share_AuthTitle: String { return self._s[3651]! } - public var Activity_UploadingDocument: String { return self._s[3652]! } - public var State_Connecting: String { return self._s[3653]! } - public var Profile_MessageLifetime1w: String { return self._s[3654]! } - public var Conversation_ContextMenuReport: String { return self._s[3655]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3656]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3657]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3645]! } + public var ChatSettings_Title: String { return self._s[3647]! } + public var Passport_PasswordReset: String { return self._s[3648]! } + public var SocksProxySetup_TypeNone: String { return self._s[3649]! } + public var EditTheme_Title: String { return self._s[3651]! } + public var PhoneNumberHelp_Help: String { return self._s[3652]! } + public var Checkout_EnterPassword: String { return self._s[3653]! } + public var Share_AuthTitle: String { return self._s[3655]! } + public var Activity_UploadingDocument: String { return self._s[3656]! } + public var State_Connecting: String { return self._s[3657]! } + public var Profile_MessageLifetime1w: String { return self._s[3658]! } + public var Conversation_ContextMenuReport: String { return self._s[3659]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3660]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3661]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3658]!, self._r[3658]!, [_0]) + return formatWithArgumentRanges(self._s[3662]!, self._r[3662]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3659]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3660]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3661]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3662]! } - public var PhotoEditor_Set: String { return self._s[3663]! } - public var EmptyGroupInfo_Title: String { return self._s[3664]! } - public var Login_PadPhoneHelp: String { return self._s[3665]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3667]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3669]! } - public var NotificationsSound_Complete: String { return self._s[3670]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3671]! } - public var Group_Info_AdminLog: String { return self._s[3672]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3673]! } + public var AuthSessions_Terminate: String { return self._s[3663]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3664]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3665]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3666]! } + public var PhotoEditor_Set: String { return self._s[3667]! } + public var EmptyGroupInfo_Title: String { return self._s[3668]! } + public var Login_PadPhoneHelp: String { return self._s[3669]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3671]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3673]! } + public var NotificationsSound_Complete: String { return self._s[3674]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3675]! } + public var Group_Info_AdminLog: String { return self._s[3676]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3677]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3674]!, self._r[3674]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3678]!, self._r[3678]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3675]! } - public var Conversation_Admin: String { return self._s[3677]! } - public var Conversation_GifTooltip: String { return self._s[3678]! } - public var Passport_NotLoggedInMessage: String { return self._s[3679]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3679]! } + public var Conversation_Admin: String { return self._s[3681]! } + public var Conversation_GifTooltip: String { return self._s[3682]! } + public var Passport_NotLoggedInMessage: String { return self._s[3683]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3681]!, self._r[3681]!, [_0]) + return formatWithArgumentRanges(self._s[3685]!, self._r[3685]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3682]! } - public var SharedMedia_EmptyTitle: String { return self._s[3684]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3686]! } - public var Username_Help: String { return self._s[3687]! } - public var DialogList_LanguageTooltip: String { return self._s[3689]! } - public var Map_LoadError: String { return self._s[3690]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3691]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3692]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3693]! } - public var Notification_Exceptions_NewException: String { return self._s[3694]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3695]! } - public var WatchRemote_AlertText: String { return self._s[3696]! } + public var Profile_MessageLifetimeForever: String { return self._s[3686]! } + public var SharedMedia_EmptyTitle: String { return self._s[3688]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3690]! } + public var Username_Help: String { return self._s[3691]! } + public var DialogList_LanguageTooltip: String { return self._s[3693]! } + public var Map_LoadError: String { return self._s[3694]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3695]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3696]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3697]! } + public var Notification_Exceptions_NewException: String { return self._s[3698]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3699]! } + public var WatchRemote_AlertText: String { return self._s[3700]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3697]!, self._r[3697]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_1, _2]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[3701]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[3705]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_0]) + return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_0]) } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3703]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3704]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3707]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3708]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3705]!, self._r[3705]!, [_0]) + return formatWithArgumentRanges(self._s[3709]!, self._r[3709]!, [_0]) } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3710]!, self._r[3710]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3707]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3708]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3710]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3711]! } - public var ChatList_UndoArchiveText1: String { return self._s[3712]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3713]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3714]! } - public var Cache_ClearNone: String { return self._s[3715]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3716]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3717]! } + public var Group_AdminLog_EmptyText: String { return self._s[3711]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3712]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3714]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3715]! } + public var ChatList_UndoArchiveText1: String { return self._s[3716]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3717]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3718]! } + public var Cache_ClearNone: String { return self._s[3719]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3720]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3721]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3718]!, self._r[3718]!, [_0]) + return formatWithArgumentRanges(self._s[3722]!, self._r[3722]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[3719]! } + public var Passport_Identity_Country: String { return self._s[3723]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3720]!, self._r[3720]!, [_0]) + return formatWithArgumentRanges(self._s[3724]!, self._r[3724]!, [_0]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3721]!, self._r[3721]!, [_0]) + return formatWithArgumentRanges(self._s[3725]!, self._r[3725]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3722]! } - public var AccessDenied_Settings: String { return self._s[3723]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3724]! } - public var Month_ShortMay: String { return self._s[3725]! } - public var Compose_NewGroup: String { return self._s[3727]! } - public var Group_Setup_TypePrivate: String { return self._s[3729]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3731]! } - public var Appearance_ThemeDayClassic: String { return self._s[3732]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3733]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3734]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3735]! } - public var Conversation_typing: String { return self._s[3737]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3738]! } - public var Paint_Masks: String { return self._s[3739]! } - public var Contacts_DeselectAll: String { return self._s[3740]! } + public var Exceptions_AddToExceptions: String { return self._s[3726]! } + public var AccessDenied_Settings: String { return self._s[3727]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3728]! } + public var Month_ShortMay: String { return self._s[3729]! } + public var Compose_NewGroup: String { return self._s[3731]! } + public var Group_Setup_TypePrivate: String { return self._s[3733]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3735]! } + public var Appearance_ThemeDayClassic: String { return self._s[3736]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3737]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3738]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3739]! } + public var Conversation_typing: String { return self._s[3741]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3742]! } + public var Paint_Masks: String { return self._s[3743]! } + public var Contacts_DeselectAll: String { return self._s[3744]! } public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3741]!, self._r[3741]!, [_0]) + return formatWithArgumentRanges(self._s[3745]!, self._r[3745]!, [_0]) } - public var Username_InvalidTaken: String { return self._s[3742]! } - public var Call_StatusNoAnswer: String { return self._s[3743]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3744]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3745]! } - public var Passport_Identity_Selfie: String { return self._s[3746]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3747]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3748]! } - public var Conversation_ClearSecretHistory: String { return self._s[3749]! } - public var PeopleNearby_Description: String { return self._s[3751]! } - public var NetworkUsageSettings_Title: String { return self._s[3752]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3754]! } + public var Username_InvalidTaken: String { return self._s[3746]! } + public var Call_StatusNoAnswer: String { return self._s[3747]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3748]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3749]! } + public var Passport_Identity_Selfie: String { return self._s[3750]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3751]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3752]! } + public var Conversation_ClearSecretHistory: String { return self._s[3753]! } + public var PeopleNearby_Description: String { return self._s[3755]! } + public var NetworkUsageSettings_Title: String { return self._s[3756]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3758]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3756]!, self._r[3756]!, [_0]) + return formatWithArgumentRanges(self._s[3760]!, self._r[3760]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3757]!, self._r[3757]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3761]!, self._r[3761]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3759]! } - public var VoiceOver_Navigation_Search: String { return self._s[3760]! } - public var Map_LiveLocationTitle: String { return self._s[3761]! } - public var Login_InfoAvatarAdd: String { return self._s[3762]! } - public var Passport_Identity_FilesView: String { return self._s[3763]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3764]! } - public var Privacy_Calls_NeverAllow: String { return self._s[3765]! } - public var VoiceOver_Chat_File: String { return self._s[3766]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3767]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[3763]! } + public var VoiceOver_Navigation_Search: String { return self._s[3764]! } + public var Map_LiveLocationTitle: String { return self._s[3765]! } + public var Login_InfoAvatarAdd: String { return self._s[3766]! } + public var Passport_Identity_FilesView: String { return self._s[3767]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3768]! } + public var Privacy_Calls_NeverAllow: String { return self._s[3769]! } + public var VoiceOver_Chat_File: String { return self._s[3770]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3771]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3768]!, self._r[3768]!, [_0]) + return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[3769]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[3770]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3771]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[3773]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[3774]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3775]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3776]!, self._r[3776]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3773]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[3774]! } - public var Tour_Title2: String { return self._s[3775]! } - public var Wallet_Sent_ViewWallet: String { return self._s[3776]! } - public var Conversation_FileOpenIn: String { return self._s[3777]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3778]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[3779]! } - public var Wallpaper_Set: String { return self._s[3780]! } - public var Passport_Identity_Translations: String { return self._s[3782]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3777]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[3778]! } + public var Tour_Title2: String { return self._s[3779]! } + public var Wallet_Sent_ViewWallet: String { return self._s[3780]! } + public var Conversation_FileOpenIn: String { return self._s[3781]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3782]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[3783]! } + public var Wallpaper_Set: String { return self._s[3784]! } + public var Passport_Identity_Translations: String { return self._s[3786]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3783]!, self._r[3783]!, [_0]) + return formatWithArgumentRanges(self._s[3787]!, self._r[3787]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[3784]! } + public var Channel_LeaveChannel: String { return self._s[3788]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3785]!, self._r[3785]!, [_1]) + return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3787]! } - public var PhotoEditor_HighlightsTint: String { return self._s[3788]! } - public var Passport_Email_Delete: String { return self._s[3789]! } - public var Conversation_Mute: String { return self._s[3791]! } - public var Channel_AddBotAsAdmin: String { return self._s[3792]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3794]! } - public var Channel_Management_LabelOwner: String { return self._s[3796]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3791]! } + public var PhotoEditor_HighlightsTint: String { return self._s[3792]! } + public var Passport_Email_Delete: String { return self._s[3793]! } + public var Conversation_Mute: String { return self._s[3795]! } + public var Channel_AddBotAsAdmin: String { return self._s[3796]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3798]! } + public var Channel_Management_LabelOwner: String { return self._s[3800]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3797]!, self._r[3797]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[3798]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[3799]! } - public var Common_No: String { return self._s[3800]! } - public var Weekday_Sunday: String { return self._s[3801]! } - public var Notification_Reply: String { return self._s[3802]! } - public var Conversation_ViewMessage: String { return self._s[3803]! } + public var Calls_CallTabDescription: String { return self._s[3802]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[3803]! } + public var Common_No: String { return self._s[3804]! } + public var Weekday_Sunday: String { return self._s[3805]! } + public var Notification_Reply: String { return self._s[3806]! } + public var Conversation_ViewMessage: String { return self._s[3807]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3804]!, self._r[3804]!, [_0]) + return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3805]!, self._r[3805]!, [_0]) + return formatWithArgumentRanges(self._s[3809]!, self._r[3809]!, [_0]) } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3806]!, self._r[3806]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3810]!, self._r[3810]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[3807]! } - public var Wallet_Send_Title: String { return self._s[3808]! } - public var Message_PinnedDocumentMessage: String { return self._s[3809]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[3810]! } - public var DialogList_TabTitle: String { return self._s[3812]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[3813]! } - public var Passport_FieldEmail: String { return self._s[3814]! } - public var Conversation_UnpinMessageAlert: String { return self._s[3815]! } - public var Passport_Address_TypeBankStatement: String { return self._s[3816]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[3817]! } - public var Passport_Identity_ExpiryDate: String { return self._s[3818]! } - public var Privacy_Calls_P2P: String { return self._s[3819]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[3811]! } + public var Wallet_Send_Title: String { return self._s[3812]! } + public var Message_PinnedDocumentMessage: String { return self._s[3813]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[3814]! } + public var DialogList_TabTitle: String { return self._s[3816]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[3817]! } + public var Passport_FieldEmail: String { return self._s[3818]! } + public var Conversation_UnpinMessageAlert: String { return self._s[3819]! } + public var Passport_Address_TypeBankStatement: String { return self._s[3820]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[3821]! } + public var Passport_Identity_ExpiryDate: String { return self._s[3822]! } + public var Privacy_Calls_P2P: String { return self._s[3823]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3821]!, self._r[3821]!, [_0]) + return formatWithArgumentRanges(self._s[3825]!, self._r[3825]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[3822]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[3826]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3823]!, self._r[3823]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3827]!, self._r[3827]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[3824]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3825]! } - public var Passport_InfoText: String { return self._s[3826]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[3827]! } + public var Stickers_ClearRecent: String { return self._s[3828]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3829]! } + public var Passport_InfoText: String { return self._s[3830]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[3831]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3828]!, self._r[3828]!, [_0]) + return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3829]!, self._r[3829]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3833]!, self._r[3833]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3830]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[3831]! } - public var VoiceOver_Navigation_Compose: String { return self._s[3832]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[3833]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[3835]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[3836]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3834]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[3835]! } + public var VoiceOver_Navigation_Compose: String { return self._s[3836]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[3837]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[3839]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[3840]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3837]!, self._r[3837]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3839]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3843]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_0]) + return formatWithArgumentRanges(self._s[3845]!, self._r[3845]!, [_0]) } - public var DialogList_Unread: String { return self._s[3842]! } + public var DialogList_Unread: String { return self._s[3846]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3843]!, self._r[3843]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3847]!, self._r[3847]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[3844]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[3845]! } + public var User_DeletedAccount: String { return self._s[3848]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[3849]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3846]!, self._r[3846]!, [_0]) + return formatWithArgumentRanges(self._s[3850]!, self._r[3850]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[3847]! } - public var SharedMedia_CategoryMedia: String { return self._s[3848]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[3849]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[3850]! } - public var Watch_ChatList_Compose: String { return self._s[3851]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[3852]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3853]! } - public var Watch_Microphone_Access: String { return self._s[3854]! } - public var Group_Setup_HistoryHeader: String { return self._s[3855]! } - public var Map_SetThisLocation: String { return self._s[3856]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3857]! } - public var Activity_UploadingPhoto: String { return self._s[3858]! } - public var Conversation_Edit: String { return self._s[3860]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[3861]! } - public var Login_TermsOfServiceDecline: String { return self._s[3862]! } - public var Message_PinnedContactMessage: String { return self._s[3863]! } + public var UserInfo_NotificationsDefault: String { return self._s[3851]! } + public var SharedMedia_CategoryMedia: String { return self._s[3852]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[3853]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[3854]! } + public var Watch_ChatList_Compose: String { return self._s[3855]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[3856]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3857]! } + public var Watch_Microphone_Access: String { return self._s[3858]! } + public var Group_Setup_HistoryHeader: String { return self._s[3859]! } + public var Map_SetThisLocation: String { return self._s[3860]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3861]! } + public var Activity_UploadingPhoto: String { return self._s[3862]! } + public var Conversation_Edit: String { return self._s[3864]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[3865]! } + public var Login_TermsOfServiceDecline: String { return self._s[3866]! } + public var Message_PinnedContactMessage: String { return self._s[3867]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3864]!, self._r[3864]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3868]!, self._r[3868]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3869]!, self._r[3869]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[3866]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[3868]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[3869]! } + public var Appearance_LargeEmoji: String { return self._s[3870]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[3872]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[3873]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3870]!, self._r[3870]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3874]!, self._r[3874]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3871]! } - public var Message_PinnedPhotoMessage: String { return self._s[3872]! } - public var Passport_FieldPhone: String { return self._s[3873]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[3874]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[3875]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[3877]! } - public var Conversation_Call: String { return self._s[3878]! } - public var Common_TakePhoto: String { return self._s[3880]! } - public var Group_EditAdmin_RankTitle: String { return self._s[3881]! } - public var Wallet_Receive_CommentHeader: String { return self._s[3882]! } - public var Channel_NotificationLoading: String { return self._s[3883]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3875]! } + public var Message_PinnedPhotoMessage: String { return self._s[3876]! } + public var Passport_FieldPhone: String { return self._s[3877]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[3878]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[3879]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[3881]! } + public var Conversation_Call: String { return self._s[3882]! } + public var Common_TakePhoto: String { return self._s[3884]! } + public var Group_EditAdmin_RankTitle: String { return self._s[3885]! } + public var Wallet_Receive_CommentHeader: String { return self._s[3886]! } + public var Channel_NotificationLoading: String { return self._s[3887]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3884]!, self._r[3884]!, [_0]) - } - public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3885]!, self._r[3885]!, [_0]) - } - public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3886]!, self._r[3886]!, [_1]) - } - public var Permissions_SiriTitle_v0: String { return self._s[3887]! } - public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3888]!, self._r[3888]!, [_0]) } - public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[3890]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[3891]! } - public var Common_edit: String { return self._s[3892]! } - public var PrivacySettings_AuthSessions: String { return self._s[3893]! } - public var Month_ShortJune: String { return self._s[3894]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[3895]! } - public var Call_ReportSend: String { return self._s[3896]! } - public var Watch_LastSeen_JustNow: String { return self._s[3897]! } - public var Notifications_MessageNotifications: String { return self._s[3898]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3899]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[3901]! } - public var Group_Status: String { return self._s[3902]! } + public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3890]!, self._r[3890]!, [_1]) + } + public var Permissions_SiriTitle_v0: String { return self._s[3891]! } + public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3892]!, self._r[3892]!, [_0]) + } + public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3893]!, self._r[3893]!, [_0]) + } + public var Channel_MessagePhotoRemoved: String { return self._s[3894]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[3895]! } + public var ClearCache_FreeSpace: String { return self._s[3896]! } + public var Common_edit: String { return self._s[3897]! } + public var PrivacySettings_AuthSessions: String { return self._s[3898]! } + public var Month_ShortJune: String { return self._s[3899]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[3900]! } + public var Call_ReportSend: String { return self._s[3901]! } + public var Watch_LastSeen_JustNow: String { return self._s[3902]! } + public var Notifications_MessageNotifications: String { return self._s[3903]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3904]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[3906]! } + public var Group_Status: String { return self._s[3907]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3903]!, self._r[3903]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3908]!, self._r[3908]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[3904]! } - public var ShareMenu_ShareTo: String { return self._s[3905]! } - public var Conversation_Moderate_Ban: String { return self._s[3906]! } + public var TextFormat_AddLinkTitle: String { return self._s[3909]! } + public var ShareMenu_ShareTo: String { return self._s[3910]! } + public var Conversation_Moderate_Ban: String { return self._s[3911]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3907]!, self._r[3907]!, [_0]) + return formatWithArgumentRanges(self._s[3912]!, self._r[3912]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[3908]! } - public var Map_LiveLocationFor8Hours: String { return self._s[3909]! } + public var SharedMedia_ViewInChat: String { return self._s[3913]! } + public var Map_LiveLocationFor8Hours: String { return self._s[3914]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3910]!, self._r[3910]!, [_1]) + return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3911]!, self._r[3911]!, [_1, _2]) - } - public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3913]!, self._r[3913]!, [_0]) - } - public var Map_OpenInHereMaps: String { return self._s[3914]! } - public var Appearance_ReduceMotion: String { return self._s[3915]! } - public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[3917]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[3918]! } - public var PhotoEditor_Skip: String { return self._s[3919]! } - public func SharedMedia_Link(_ value: Int32) -> String { + public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3918]!, self._r[3918]!, [_0]) + } + public var Map_OpenInHereMaps: String { return self._s[3919]! } + public var Appearance_ReduceMotion: String { return self._s[3920]! } + public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3921]!, self._r[3921]!, [_1, _2]) + } + public var Channel_Setup_TypePublicHelp: String { return self._s[3922]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[3923]! } + public var PhotoEditor_Skip: String { return self._s[3924]! } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Photo(_ value: Int32) -> String { + public func Conversation_StatusMembers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notification_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Weeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Generic(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedStickers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Contacts_ImportersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_Exceptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Passport_Scans(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Video(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedGifs(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Theme_UsersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_StickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusOnline(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideoMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_File(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_SelectedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, _1, _2) } public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedLocations(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Invitation_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedPolls(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) - } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Months(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_SelectedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAudios(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteText_ContactsCountText(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_SharePhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_ShortDays(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) - } - public func UserCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } public func StickerPack_AddStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Invitation_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_File(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_SharePhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPhotos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendGif(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedLocations(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ForwardedGifs(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Video(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_SelectedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusOnline(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteFor_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + } + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAudios(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Months(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) } public func MuteExpires_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + public func StickerPack_StickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_UserInfo_Mute(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_Exceptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Passport_Scans(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Media_ShareItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Weeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPolls(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedStickers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + } + public func UserCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedVideoMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Generic(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Call_ShortMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramPresentationData/Sources/PresentationTheme.swift b/submodules/TelegramPresentationData/Sources/PresentationTheme.swift index 8e3dc3f8c7..060e23e2f7 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationTheme.swift @@ -105,8 +105,12 @@ public final class PresentationThemeRootNavigationBar { public let badgeBackgroundColor: UIColor public let badgeStrokeColor: UIColor public let badgeTextColor: UIColor + public let segmentedBackgroundColor: UIColor + public let segmentedForegroundColor: UIColor + public let segmentedTextColor: UIColor + public let segmentedDividerColor: UIColor - public init(buttonColor: UIColor, disabledButtonColor: UIColor, primaryTextColor: UIColor, secondaryTextColor: UIColor, controlColor: UIColor, accentTextColor: UIColor, backgroundColor: UIColor, separatorColor: UIColor, badgeBackgroundColor: UIColor, badgeStrokeColor: UIColor, badgeTextColor: UIColor) { + public init(buttonColor: UIColor, disabledButtonColor: UIColor, primaryTextColor: UIColor, secondaryTextColor: UIColor, controlColor: UIColor, accentTextColor: UIColor, backgroundColor: UIColor, separatorColor: UIColor, badgeBackgroundColor: UIColor, badgeStrokeColor: UIColor, badgeTextColor: UIColor, segmentedBackgroundColor: UIColor, segmentedForegroundColor: UIColor, segmentedTextColor: UIColor, segmentedDividerColor: UIColor) { self.buttonColor = buttonColor self.disabledButtonColor = disabledButtonColor self.primaryTextColor = primaryTextColor @@ -118,6 +122,10 @@ public final class PresentationThemeRootNavigationBar { self.badgeBackgroundColor = badgeBackgroundColor self.badgeStrokeColor = badgeStrokeColor self.badgeTextColor = badgeTextColor + self.segmentedBackgroundColor = segmentedBackgroundColor + self.segmentedForegroundColor = segmentedForegroundColor + self.segmentedTextColor = segmentedTextColor + self.segmentedDividerColor = segmentedDividerColor } } diff --git a/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift b/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift index 9e0b451141..c6ac40c3f5 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift @@ -338,6 +338,10 @@ extension PresentationThemeRootNavigationBar: Codable { case badgeFill case badgeStroke case badgeText + case segmentedBg + case segmentedFg + case segmentedText + case segmentedDivider } public convenience init(from decoder: Decoder) throws { @@ -352,7 +356,11 @@ extension PresentationThemeRootNavigationBar: Codable { separatorColor: try decodeColor(values, .separator), badgeBackgroundColor: try decodeColor(values, .badgeFill), badgeStrokeColor: try decodeColor(values, .badgeStroke), - badgeTextColor: try decodeColor(values, .badgeText)) + badgeTextColor: try decodeColor(values, .badgeText), + segmentedBackgroundColor: try decodeColor(values, .segmentedBg), + segmentedForegroundColor: try decodeColor(values, .segmentedFg), + segmentedTextColor: try decodeColor(values, .segmentedText), + segmentedDividerColor: try decodeColor(values, .segmentedDivider)) } public func encode(to encoder: Encoder) throws { @@ -368,6 +376,10 @@ extension PresentationThemeRootNavigationBar: Codable { try encodeColor(&values, self.badgeBackgroundColor, .badgeFill) try encodeColor(&values, self.badgeStrokeColor, .badgeStroke) try encodeColor(&values, self.badgeTextColor, .badgeText) + try encodeColor(&values, self.segmentedBackgroundColor, .segmentedBg) + try encodeColor(&values, self.segmentedForegroundColor, .segmentedFg) + try encodeColor(&values, self.segmentedTextColor, .segmentedText) + try encodeColor(&values, self.segmentedDividerColor, .segmentedDivider) } } diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index f64d8fe31a..e48fd4aba1 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -50,6 +50,7 @@ import AppBundle import WalletUI import WalletUrl import LocalizedPeerData +import SettingsUI public enum ChatControllerPeekActions { case standard @@ -1147,7 +1148,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G case let .url(url): var cleanUrl = url var canAddToReadingList = true - let canOpenIn = availableOpenInOptions(context: strongSelf.context, item: .url(url: url)).count > 1 + var canOpenIn = availableOpenInOptions(context: strongSelf.context, item: .url(url: url)).count > 1 let mailtoString = "mailto:" let telString = "tel:" var openText = strongSelf.presentationData.strings.Conversation_LinkDialogOpen @@ -1160,6 +1161,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G phoneNumber = String(cleanUrl[cleanUrl.index(cleanUrl.startIndex, offsetBy: telString.distance(from: telString.startIndex, to: telString.endIndex))...]) cleanUrl = phoneNumber! openText = strongSelf.presentationData.strings.UserInfo_PhoneCall + canOpenIn = false } else if canOpenIn { openText = strongSelf.presentationData.strings.Conversation_FileOpenIn } @@ -1468,6 +1470,10 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if let strongSelf = self { strongSelf.present(c, in: .window(.root), with: a) } + }, push: { [weak self] c in + if let strongSelf = self { + strongSelf.push(c) + } }) strongSelf.chatDisplayNode.dismissInput() strongSelf.present(controller, in: .window(.root)) @@ -1522,7 +1528,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.messageTooltipController?.dismiss() let tooltipController = TooltipController(content: .text(text), dismissByTapOutside: true, dismissImmediatelyOnLayoutUpdate: true) strongSelf.messageTooltipController = tooltipController - tooltipController.dismissed = { [weak tooltipController] in + tooltipController.dismissed = { [weak tooltipController] _ in if let strongSelf = self, let tooltipController = tooltipController, strongSelf.messageTooltipController === tooltipController { strongSelf.messageTooltipController = nil } @@ -2995,6 +3001,8 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if let strongSelf = self, let messageIds = strongSelf.presentationInterfaceState.interfaceState.selectionState?.selectedIds, !messageIds.isEmpty { strongSelf.present(peerReportOptionsController(context: strongSelf.context, subject: .messages(Array(messageIds).sorted()), present: { c, a in self?.present(c, in: .window(.root), with: a) + }, push: { c in + self?.push(c) }, completion: { _ in }), in: .window(.root)) } }, reportMessages: { [weak self] messages, contextController in @@ -3536,7 +3544,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let tooltipController = TooltipController(content: .text(banDescription)) strongSelf.mediaRestrictedTooltipController = tooltipController strongSelf.mediaRestrictedTooltipControllerMode = isStickers - tooltipController.dismissed = { [weak tooltipController] in + tooltipController.dismissed = { [weak tooltipController] _ in if let strongSelf = self, let tooltipController = tooltipController, strongSelf.mediaRestrictedTooltipController === tooltipController { strongSelf.mediaRestrictedTooltipController = nil } @@ -3571,7 +3579,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.videoUnmuteTooltipController?.dismiss() let tooltipController = TooltipController(content: .iconAndText(icon, strongSelf.presentationInterfaceState.strings.Conversation_PressVolumeButtonForSound), timeout: 3.5, dismissByTapOutside: true, dismissImmediatelyOnLayoutUpdate: true) strongSelf.videoUnmuteTooltipController = tooltipController - tooltipController.dismissed = { [weak tooltipController] in + tooltipController.dismissed = { [weak tooltipController] _ in if let strongSelf = self, let tooltipController = tooltipController, strongSelf.videoUnmuteTooltipController === tooltipController { strongSelf.videoUnmuteTooltipController = nil ApplicationSpecificNotice.setVolumeButtonToUnmute(accountManager: strongSelf.context.sharedContext.accountManager) @@ -3826,7 +3834,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } else if let rect = rect { let tooltipController = TooltipController(content: .text(text)) strongSelf.silentPostTooltipController = tooltipController - tooltipController.dismissed = { [weak tooltipController] in + tooltipController.dismissed = { [weak tooltipController] _ in if let strongSelf = self, let tooltipController = tooltipController, strongSelf.silentPostTooltipController === tooltipController { strongSelf.silentPostTooltipController = nil } @@ -4993,19 +5001,211 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G switch self.chatLocationInfoData { case let .peer(peerView): self.navigationActionDisposable.set((peerView.get() - |> take(1) - |> deliverOnMainQueue).start(next: { [weak self] peerView in - if let strongSelf = self, let peer = peerView.peers[peerView.peerId], peer.restrictionText(platform: "ios") == nil && !strongSelf.presentationInterfaceState.isNotAccessible { - if let infoController = strongSelf.context.sharedContext.makePeerInfoController(context: strongSelf.context, peer: peer, mode: .generic) { - strongSelf.effectiveNavigationController?.pushViewController(infoController) - } + |> take(1) + |> deliverOnMainQueue).start(next: { [weak self] peerView in + if let strongSelf = self, let peer = peerView.peers[peerView.peerId], peer.restrictionText(platform: "ios") == nil && !strongSelf.presentationInterfaceState.isNotAccessible { + if let infoController = strongSelf.context.sharedContext.makePeerInfoController(context: strongSelf.context, peer: peer, mode: .generic) { + strongSelf.effectiveNavigationController?.pushViewController(infoController) } + } })) } case .search: self.interfaceInteraction?.beginMessageSearch(.everything, "") case .dismiss: self.dismiss() + case .clearCache: + let clearDisposable = MetaDisposable() + self.updateChatPresentationInterfaceState(animated: true, interactive: true, { $0.updatedInterfaceState({ $0.withoutSelectionState() }) }) + + switch self.chatLocationInfoData { + case let .peer(peerView): + self.navigationActionDisposable.set((peerView.get() + |> take(1) + |> deliverOnMainQueue).start(next: { [weak self] peerView in + guard let strongSelf = self, let peer = peerView.peers[peerView.peerId] else { + return + } + let peerId = peer.id + + let cacheUsageStats = (collectCacheUsageStats(account: strongSelf.context.account, peerId: peer.id) + |> deliverOnMainQueue).start(next: { [weak self] result in + guard let strongSelf = self, case let .result(stats) = result, var categories = stats.media[peer.id] else { + return + } + let presentationData = strongSelf.presentationData + let controller = ActionSheetController(presentationTheme: presentationData.theme) + let dismissAction: () -> Void = { [weak controller] in + controller?.dismissAnimated() + } + + var sizeIndex: [PeerCacheUsageCategory: (Bool, Int64)] = [:] + + var itemIndex = 0 + + let updateTotalSize: () -> Void = { [weak controller] in + controller?.updateItem(groupIndex: 0, itemIndex: itemIndex, { item in + let title: String + let filteredSize = sizeIndex.values.reduce(0, { $0 + ($1.0 ? $1.1 : 0) }) + + if filteredSize == 0 { + title = presentationData.strings.Cache_ClearNone + } else { + title = presentationData.strings.Cache_Clear("\(dataSizeString(filteredSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0 + } + + if let item = item as? ActionSheetButtonItem { + return ActionSheetButtonItem(title: title, color: filteredSize != 0 ? .accent : .disabled, enabled: filteredSize != 0, action: item.action) + } + return item + }) + } + + let toggleCheck: (PeerCacheUsageCategory, Int) -> Void = { [weak controller] category, itemIndex in + if let (value, size) = sizeIndex[category] { + sizeIndex[category] = (!value, size) + } + controller?.updateItem(groupIndex: 0, itemIndex: itemIndex, { item in + if let item = item as? ActionSheetCheckboxItem { + return ActionSheetCheckboxItem(title: item.title, label: item.label, value: !item.value, action: item.action) + } + return item + }) + updateTotalSize() + } + var items: [ActionSheetItem] = [] + + items.append(DeleteChatPeerActionSheetItem(context: strongSelf.context, peer: peer, chatPeer: peer, action: .clearCache, strings: presentationData.strings, nameDisplayOrder: presentationData.nameDisplayOrder)) + + let validCategories: [PeerCacheUsageCategory] = [.image, .video, .audio, .file] + + var totalSize: Int64 = 0 + + func stringForCategory(strings: PresentationStrings, category: PeerCacheUsageCategory) -> String { + switch category { + case .image: + return strings.Cache_Photos + case .video: + return strings.Cache_Videos + case .audio: + return strings.Cache_Music + case .file: + return strings.Cache_Files + } + } + + for categoryId in validCategories { + if let media = categories[categoryId] { + var categorySize: Int64 = 0 + for (_, size) in media { + categorySize += size + } + sizeIndex[categoryId] = (true, categorySize) + totalSize += categorySize + if categorySize > 1024 { + let index = itemIndex + items.append(ActionSheetCheckboxItem(title: stringForCategory(strings: presentationData.strings, category: categoryId), label: dataSizeString(categorySize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator), value: true, action: { value in + toggleCheck(categoryId, index) + })) + itemIndex += 1 + } + } + } + + if items.isEmpty { + strongSelf.presentClearCacheSuggestion() + } else { + items.append(ActionSheetButtonItem(title: presentationData.strings.Cache_Clear("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0, action: { + let clearCategories = sizeIndex.keys.filter({ sizeIndex[$0]!.0 }) + var clearMediaIds = Set() + + var media = stats.media + if var categories = media[peerId] { + for category in clearCategories { + if let contents = categories[category] { + for (mediaId, _) in contents { + clearMediaIds.insert(mediaId) + } + } + categories.removeValue(forKey: category) + } + + media[peerId] = categories + } +// if let additionalPeerId = additionalPeerId { +// if var categories = media[additionalPeerId] { +// for category in clearCategories { +// if let contents = categories[category] { +// for (mediaId, _) in contents { +// clearMediaIds.insert(mediaId) +// } +// } +// categories.removeValue(forKey: category) +// } +// +// media[additionalPeerId] = categories +// } +// } + + var clearResourceIds = Set() + for id in clearMediaIds { + if let ids = stats.mediaResourceIds[id] { + for resourceId in ids { + clearResourceIds.insert(WrappedMediaResourceId(resourceId)) + } + } + } + + var signal = clearCachedMediaResources(account: strongSelf.context.account, mediaResourceIds: clearResourceIds) + + let resultStats = CacheUsageStats(media: media, mediaResourceIds: stats.mediaResourceIds, peers: stats.peers, otherSize: stats.otherSize, otherPaths: stats.otherPaths, cacheSize: stats.cacheSize, tempPaths: stats.tempPaths, tempSize: stats.tempSize, immutableSize: stats.immutableSize) + + var cancelImpl: (() -> Void)? + let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } + let progressSignal = Signal { subscriber in + let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: { + cancelImpl?() + })) + strongSelf.present(controller, in: .window(.root), with: ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + return ActionDisposable { [weak controller] in + Queue.mainQueue().async() { + controller?.dismiss() + } + } + } + |> runOn(Queue.mainQueue()) + |> delay(0.15, queue: Queue.mainQueue()) + let progressDisposable = progressSignal.start() + + signal = signal + |> afterDisposed { + Queue.mainQueue().async { + progressDisposable.dispose() + } + } + cancelImpl = { + clearDisposable.set(nil) + } + clearDisposable.set((signal + |> deliverOnMainQueue).start(completed: { + + + strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0), elevatedLayout: false, action: { _ in }), in: .window(.root)) + })) + + dismissAction() + })) + + controller.setItemGroups([ + ActionSheetItemGroup(items: items), + ActionSheetItemGroup(items: [ActionSheetButtonItem(title: presentationData.strings.Common_Cancel, action: { dismissAction() })]) + ]) + strongSelf.chatDisplayNode.dismissInput() + strongSelf.present(controller, in: .window(.root)) + } + }) + })) + } } } @@ -7444,6 +7644,35 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } } + private func presentClearCacheSuggestion() { + guard let peer = self.presentationInterfaceState.renderedPeer?.peer else { + return + } + self.updateChatPresentationInterfaceState(animated: true, interactive: true, { $0.updatedInterfaceState({ $0.withoutSelectionState() }) }) + + let actionSheet = ActionSheetController(presentationTheme: self.presentationData.theme) + var items: [ActionSheetItem] = [] + + items.append(DeleteChatPeerActionSheetItem(context: self.context, peer: peer, chatPeer: peer, action: .clearCacheSuggestion, strings: self.presentationData.strings, nameDisplayOrder: self.presentationData.nameDisplayOrder)) + + items.append(ActionSheetButtonItem(title: self.presentationData.strings.ClearCache_FreeSpace, color: .accent, action: { [weak self, weak actionSheet] in + actionSheet?.dismissAnimated() + if let strongSelf = self { + let controller = storageUsageController(context: strongSelf.context, isModal: true) + strongSelf.present(controller, in: .window(.root), with: ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + } + })) + + actionSheet.setItemGroups([ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ + ActionSheetButtonItem(title: self.presentationData.strings.Common_Cancel, color: .accent, font: .bold, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + + }) + ])]) + self.chatDisplayNode.dismissInput() + self.present(actionSheet, in: .window(.root)) + } + @available(iOSApplicationExtension 11.0, iOS 11.0, *) public func dropInteraction(_ interaction: UIDropInteraction, canHandle session: UIDropSession) -> Bool { return session.hasItemsConforming(toTypeIdentifiers: [kUTTypeImage as String]) @@ -7507,7 +7736,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } else if let rect = rect { let tooltipController = TooltipController(content: .text(text)) self.mediaRecordingModeTooltipController = tooltipController - tooltipController.dismissed = { [weak self, weak tooltipController] in + tooltipController.dismissed = { [weak self, weak tooltipController] _ in if let strongSelf = self, let tooltipController = tooltipController, strongSelf.mediaRecordingModeTooltipController === tooltipController { strongSelf.mediaRecordingModeTooltipController = nil } diff --git a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateNavigationButtons.swift b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateNavigationButtons.swift index 695aa3d006..7246aa563c 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateNavigationButtons.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateNavigationButtons.swift @@ -8,6 +8,7 @@ import AccountContext enum ChatNavigationButtonAction { case openChatInfo case clearHistory + case clearCache case cancelMessageSelection case search case dismiss @@ -44,6 +45,9 @@ func leftNavigationButtonForChatInterfaceState(_ presentationInterfaceState: Cha if canClear { return ChatNavigationButton(action: .clearHistory, buttonItem: UIBarButtonItem(title: title, style: .plain, target: target, action: selector)) + } else { + title = strings.Conversation_ClearCache + return ChatNavigationButton(action: .clearCache, buttonItem: UIBarButtonItem(title: title, style: .plain, target: target, action: selector)) } } } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift index 7266c79424..352b2e8e15 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift @@ -148,6 +148,9 @@ final class ChatMessageSelectionInputPanelNode: ChatInputPanelNode { self.deleteButton.isHidden = !self.deleteButton.isEnabled self.reportButton.isHidden = !self.reportButton.isEnabled + + self.deleteButton.isHidden = false + self.deleteButton.isEnabled = true } else { self.deleteButton.isEnabled = false self.deleteButton.isHidden = true @@ -155,6 +158,8 @@ final class ChatMessageSelectionInputPanelNode: ChatInputPanelNode { self.reportButton.isHidden = true self.forwardButton.isEnabled = false self.shareButton.isEnabled = false + + self.deleteButton.isHidden = false } if self.deleteButton.isHidden && self.reportButton.isHidden { diff --git a/submodules/TelegramUI/TelegramUI/ChatTextInputPanelNode.swift b/submodules/TelegramUI/TelegramUI/ChatTextInputPanelNode.swift index 571889e880..e33b61b7a2 100644 --- a/submodules/TelegramUI/TelegramUI/ChatTextInputPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatTextInputPanelNode.swift @@ -1575,7 +1575,8 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { self.interfaceInteraction?.updateTextInputStateAndMode { current, inputMode in if let inputText = current.inputText.mutableCopy() as? NSMutableAttributedString { inputText.replaceCharacters(in: NSMakeRange(current.selectionRange.lowerBound, current.selectionRange.count), with: attributedString) - return (ChatTextInputState(inputText: inputText), inputMode) + let updatedRange = current.selectionRange.lowerBound + attributedString.length + return (ChatTextInputState(inputText: inputText, selectionRange: updatedRange ..< updatedRange), inputMode) } else { return (ChatTextInputState(inputText: attributedString), inputMode) } diff --git a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift index 7ab5bce3f7..bc5f52edd0 100644 --- a/submodules/TelegramUI/TelegramUI/CreateGroupController.swift +++ b/submodules/TelegramUI/TelegramUI/CreateGroupController.swift @@ -314,6 +314,7 @@ public func createGroupControllerImpl(context: AccountContext, peerIds: [PeerId] var replaceControllerImpl: ((ViewController) -> Void)? var dismissImpl: (() -> Void)? var presentControllerImpl: ((ViewController, Any?) -> Void)? + var pushImpl: ((ViewController) -> Void)? var endEditingImpl: (() -> Void)? var clearHighlightImpl: (() -> Void)? @@ -583,7 +584,7 @@ public func createGroupControllerImpl(context: AccountContext, peerIds: [PeerId] }, sendLiveLocation: { _, _ in }, theme: presentationData.theme, customLocationPicker: true, presentationCompleted: { clearHighlightImpl?() }) - presentControllerImpl?(controller, nil) + pushImpl?(controller) }) let signal = combineLatest(context.sharedContext.presentationData, statePromise.get(), context.account.postbox.multiplePeersView(peerIds), .single(nil) |> then(addressPromise.get())) @@ -619,6 +620,9 @@ public func createGroupControllerImpl(context: AccountContext, peerIds: [PeerId] presentControllerImpl = { [weak controller] c, a in controller?.present(c, in: .window(.root), with: a) } + pushImpl = { [weak controller] c in + controller?.push(c) + } controller.willDisappear = { _ in endEditingImpl?() } diff --git a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift index 75658d2f7c..42a6488117 100644 --- a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift +++ b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift @@ -18,6 +18,7 @@ import PeerInfoUI import SettingsUI import AlertUI import PresentationDataUtils +import ShareController private enum ChatMessageGalleryControllerData { case url(String) @@ -26,7 +27,7 @@ private enum ChatMessageGalleryControllerData { case map(TelegramMediaMap) case stickerPack(StickerPackReference) case audio(TelegramMediaFile) - case document(TelegramMediaFile) + case document(TelegramMediaFile, Bool) case gallery(GalleryController) case secretGallery(SecretMediaPreviewController) case chatAvatars(AvatarGalleryController, Media) @@ -152,14 +153,10 @@ private func chatMessageGalleryControllerData(context: AccountContext, message: return .gallery(gallery) } } - #if DEBUG + if ext == "mkv" { - let gallery = GalleryController(context: context, source: standalone ? .standaloneMessage(message) : .peerMessagesAtId(message.id), invertItemOrder: reverseMessageGalleryOrder, streamSingleVideo: stream, fromPlayingVideo: autoplayingVideo, landscape: landscape, timecode: timecode, synchronousLoad: synchronousLoad, replaceRootController: { [weak navigationController] controller, ready in - navigationController?.replaceTopController(controller, animated: false, ready: ready) - }, baseNavigationController: navigationController, actionInteraction: actionInteraction) - return .gallery(gallery) + return .document(file, true) } - #endif } if internalDocumentItemSupportsMimeType(file.mimeType, fileName: file.fileName ?? "file") { @@ -170,7 +167,7 @@ private func chatMessageGalleryControllerData(context: AccountContext, message: } if !file.isVideo { - return .document(file) + return .document(file, false) } } @@ -271,9 +268,12 @@ func openChatMessageImpl(_ params: OpenChatMessageParams) -> Bool { params.dismissInput() params.present(controller, nil) return true - case let .document(file): + case let .document(file, immediateShare): let presentationData = params.context.sharedContext.currentPresentationData.with { $0 } - if let rootController = params.navigationController?.view.window?.rootViewController { + if immediateShare { + let controller = ShareController(context: params.context, subject: .media(.standalone(media: file)), immediateExternalShare: true) + params.present(controller, nil) + } else if let rootController = params.navigationController?.view.window?.rootViewController { presentDocumentPreviewController(rootController: rootController, theme: presentationData.theme, strings: presentationData.strings, postbox: params.context.account.postbox, file: file) } return true diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift index 05c1cb865f..3b848e957a 100644 --- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift +++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift @@ -422,6 +422,8 @@ public class PeerMediaCollectionController: TelegramBaseController { if let strongSelf = self, let messageIds = strongSelf.interfaceState.selectionState?.selectedIds, !messageIds.isEmpty { strongSelf.present(peerReportOptionsController(context: strongSelf.context, subject: .messages(Array(messageIds).sorted()), present: { c, a in self?.present(c, in: .window(.root), with: a) + }, push: { c in + self?.push(c) }, completion: { _ in }), in: .window(.root)) } }, reportMessages: { _, _ in diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index aa9b693ab147ee26079e2bac291563132d8e8e35..02fd7d12c4361edac07aba3a82cbdb48ab70e33e 100644 GIT binary patch delta 35774 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 Rv?XaV`dW5=Q1*j={|^A~%M<_r delta 36010 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 diff --git a/submodules/TelegramUI/TelegramUI/WalletContextImpl.swift b/submodules/TelegramUI/TelegramUI/WalletContextImpl.swift index d4ce18d8fd..2231e600d3 100644 --- a/submodules/TelegramUI/TelegramUI/WalletContextImpl.swift +++ b/submodules/TelegramUI/TelegramUI/WalletContextImpl.swift @@ -140,60 +140,63 @@ final class WalletContextImpl: WalletContext { buttonTextColor: .white, incomingFundsTitleColor: theme.chatList.secretTitleColor, outgoingFundsTitleColor: theme.list.itemDestructiveColor - ), setup: WalletSetupTheme( - buttonFillColor: theme.list.itemCheckColors.fillColor, - buttonForegroundColor: theme.list.itemCheckColors.foregroundColor, - inputBackgroundColor: theme.actionSheet.inputBackgroundColor, - inputPlaceholderColor: theme.actionSheet.inputPlaceholderColor, - inputTextColor: theme.actionSheet.inputTextColor, - inputClearButtonColor: theme.actionSheet.inputClearButtonColor.withAlphaComponent(0.8) - ), - list: WalletListTheme( - itemPrimaryTextColor: theme.list.itemPrimaryTextColor, - itemSecondaryTextColor: theme.list.itemSecondaryTextColor, - itemPlaceholderTextColor: theme.list.itemPlaceholderTextColor, - itemDestructiveColor: theme.list.itemDestructiveColor, - itemAccentColor: theme.list.itemAccentColor, - itemDisabledTextColor: theme.list.itemDisabledTextColor, - plainBackgroundColor: theme.list.plainBackgroundColor, - blocksBackgroundColor: theme.list.blocksBackgroundColor, - itemPlainSeparatorColor: theme.list.itemPlainSeparatorColor, - itemBlocksBackgroundColor: theme.list.itemBlocksBackgroundColor, - itemBlocksSeparatorColor: theme.list.itemBlocksSeparatorColor, - itemHighlightedBackgroundColor: theme.list.itemHighlightedBackgroundColor, - sectionHeaderTextColor: theme.list.sectionHeaderTextColor, - freeTextColor: theme.list.freeTextColor, - freeTextErrorColor: theme.list.freeTextErrorColor, - inputClearButtonColor: theme.list.inputClearButtonColor - ), - statusBarStyle: theme.rootController.statusBarStyle.style, - navigationBar: navigationBarData.theme, - keyboardAppearance: theme.rootController.keyboardColor.keyboardAppearance, - alert: AlertControllerTheme(presentationTheme: theme), - actionSheet: ActionSheetControllerTheme(presentationTheme: theme) - ), strings: WalletStrings( - primaryComponent: WalletStringsComponent( - languageCode: strings.primaryComponent.languageCode, - localizedName: strings.primaryComponent.localizedName, - pluralizationRulesCode: strings.primaryComponent.pluralizationRulesCode, - dict: strings.primaryComponent.dict - ), - secondaryComponent: strings.secondaryComponent.flatMap { component in - return WalletStringsComponent( - languageCode: component.languageCode, - localizedName: component.localizedName, - pluralizationRulesCode: component.pluralizationRulesCode, - dict: component.dict - ) - }, - groupingSeparator: strings.groupingSeparator - ), dateTimeFormat: WalletPresentationDateTimeFormat( - timeFormat: timeFormat, - dateFormat: dateFormat, - dateSeparator: presentationData.dateTimeFormat.dateSeparator, - decimalSeparator: presentationData.dateTimeFormat.decimalSeparator, - groupingSeparator: presentationData.dateTimeFormat.groupingSeparator - ) + ), transaction: WalletTransactionTheme( + descriptionBackgroundColor: theme.chat.message.incoming.bubble.withoutWallpaper.fill, + descriptionTextColor: theme.chat.message.incoming.primaryTextColor + ), setup: WalletSetupTheme( + buttonFillColor: theme.list.itemCheckColors.fillColor, + buttonForegroundColor: theme.list.itemCheckColors.foregroundColor, + inputBackgroundColor: theme.actionSheet.inputBackgroundColor, + inputPlaceholderColor: theme.actionSheet.inputPlaceholderColor, + inputTextColor: theme.actionSheet.inputTextColor, + inputClearButtonColor: theme.actionSheet.inputClearButtonColor.withAlphaComponent(0.8) + ), + list: WalletListTheme( + itemPrimaryTextColor: theme.list.itemPrimaryTextColor, + itemSecondaryTextColor: theme.list.itemSecondaryTextColor, + itemPlaceholderTextColor: theme.list.itemPlaceholderTextColor, + itemDestructiveColor: theme.list.itemDestructiveColor, + itemAccentColor: theme.list.itemAccentColor, + itemDisabledTextColor: theme.list.itemDisabledTextColor, + plainBackgroundColor: theme.list.plainBackgroundColor, + blocksBackgroundColor: theme.list.blocksBackgroundColor, + itemPlainSeparatorColor: theme.list.itemPlainSeparatorColor, + itemBlocksBackgroundColor: theme.list.itemBlocksBackgroundColor, + itemBlocksSeparatorColor: theme.list.itemBlocksSeparatorColor, + itemHighlightedBackgroundColor: theme.list.itemHighlightedBackgroundColor, + sectionHeaderTextColor: theme.list.sectionHeaderTextColor, + freeTextColor: theme.list.freeTextColor, + freeTextErrorColor: theme.list.freeTextErrorColor, + inputClearButtonColor: theme.list.inputClearButtonColor + ), + statusBarStyle: theme.rootController.statusBarStyle.style, + navigationBar: navigationBarData.theme, + keyboardAppearance: theme.rootController.keyboardColor.keyboardAppearance, + alert: AlertControllerTheme(presentationTheme: theme), + actionSheet: ActionSheetControllerTheme(presentationTheme: theme) + ), strings: WalletStrings( + primaryComponent: WalletStringsComponent( + languageCode: strings.primaryComponent.languageCode, + localizedName: strings.primaryComponent.localizedName, + pluralizationRulesCode: strings.primaryComponent.pluralizationRulesCode, + dict: strings.primaryComponent.dict + ), + secondaryComponent: strings.secondaryComponent.flatMap { component in + return WalletStringsComponent( + languageCode: component.languageCode, + localizedName: component.localizedName, + pluralizationRulesCode: component.pluralizationRulesCode, + dict: component.dict + ) + }, + groupingSeparator: strings.groupingSeparator + ), dateTimeFormat: WalletPresentationDateTimeFormat( + timeFormat: timeFormat, + dateFormat: dateFormat, + dateSeparator: presentationData.dateTimeFormat.dateSeparator, + decimalSeparator: presentationData.dateTimeFormat.decimalSeparator, + groupingSeparator: presentationData.dateTimeFormat.groupingSeparator + ) ) } diff --git a/submodules/WalletUI/Sources/WalletCreateInvoiceScreen.swift b/submodules/WalletUI/Sources/WalletCreateInvoiceScreen.swift index 09f56c37e8..597041dfe2 100644 --- a/submodules/WalletUI/Sources/WalletCreateInvoiceScreen.swift +++ b/submodules/WalletUI/Sources/WalletCreateInvoiceScreen.swift @@ -184,7 +184,7 @@ protocol WalletCreateInvoiceScreen { private final class WalletCreateInvoiceScreenImpl: ItemListController, WalletCreateInvoiceScreen { override func preferredContentSizeForLayout(_ layout: ContainerViewLayout) -> CGSize? { - return CGSize(width: layout.size.width, height: layout.size.height - 174.0) + return CGSize(width: layout.size.width, height: min(640.0, layout.size.height)) } } diff --git a/submodules/WalletUI/Sources/WalletInfoTransactionItem.swift b/submodules/WalletUI/Sources/WalletInfoTransactionItem.swift index ff934c5479..d09715ee29 100644 --- a/submodules/WalletUI/Sources/WalletInfoTransactionItem.swift +++ b/submodules/WalletUI/Sources/WalletInfoTransactionItem.swift @@ -113,6 +113,7 @@ class WalletInfoTransactionItemNode: ListViewItemNode { private let iconNode: ASImageNode private let textNode: TextNode private let descriptionNode: TextNode + private let feesNode: TextNode private let dateNode: TextNode private var statusNode: StatusClockNode? @@ -157,6 +158,11 @@ class WalletInfoTransactionItemNode: ListViewItemNode { self.descriptionNode.contentMode = .left self.descriptionNode.contentsScale = UIScreen.main.scale + self.feesNode = TextNode() + self.feesNode.isUserInteractionEnabled = false + self.feesNode.contentMode = .left + self.feesNode.contentsScale = UIScreen.main.scale + self.dateNode = TextNode() self.dateNode.isUserInteractionEnabled = false self.dateNode.contentMode = .left @@ -175,6 +181,7 @@ class WalletInfoTransactionItemNode: ListViewItemNode { self.addSubnode(self.directionNode) self.addSubnode(self.textNode) self.addSubnode(self.descriptionNode) + self.addSubnode(self.feesNode) self.addSubnode(self.dateNode) self.addSubnode(self.activateArea) @@ -186,6 +193,7 @@ class WalletInfoTransactionItemNode: ListViewItemNode { let makeDirectionLayout = TextNode.asyncLayout(self.directionNode) let makeTextLayout = TextNode.asyncLayout(self.textNode) let makeDescriptionLayout = TextNode.asyncLayout(self.descriptionNode) + let makeFeesLayout = TextNode.asyncLayout(self.feesNode) let makeDateLayout = TextNode.asyncLayout(self.dateNode) let currentItem = self.item @@ -269,18 +277,15 @@ class WalletInfoTransactionItemNode: ListViewItemNode { } } + var feeText: String = "" let dateText: String switch item.walletTransaction { case let .completed(transaction): let fee = transaction.storageFee + transaction.otherFee if fee != 0 { - let feeText = item.strings.Wallet_Info_TransactionBlockchainFee(formatBalanceText(-fee, decimalSeparator: item.dateTimeFormat.decimalSeparator)).0 - if !description.isEmpty { - description.append("\n") - } - description += "\(feeText)" + feeText = item.strings.Wallet_Info_TransactionBlockchainFee(formatBalanceText(-fee, decimalSeparator: item.dateTimeFormat.decimalSeparator)).0 } - dateText = stringForMessageTimestamp(timestamp: Int32(clamping: transaction.timestamp), dateTimeFormat: item.dateTimeFormat) + dateText = stringForMessageTimestamp(timestamp: Int32(clamping: transaction.timestamp), dateTimeFormat: item.dateTimeFormat) case let .pending(transaction): dateText = stringForMessageTimestamp(timestamp: Int32(clamping: transaction.timestamp), dateTimeFormat: item.dateTimeFormat) } @@ -307,7 +312,9 @@ class WalletInfoTransactionItemNode: ListViewItemNode { let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: text, font: textFont, textColor: item.theme.list.itemPrimaryTextColor), backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - leftInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) - let (descriptionLayout, descriptionApply) = makeDescriptionLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: description, font: descriptionFont, textColor: item.theme.list.itemSecondaryTextColor), backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - leftInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) + let (descriptionLayout, descriptionApply) = makeDescriptionLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: description, font: descriptionFont, textColor: item.theme.list.itemSecondaryTextColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - leftInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) + + let (feesLayout, feesApply) = makeFeesLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: feeText, font: descriptionFont, textColor: item.theme.list.itemSecondaryTextColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - leftInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) var contentSize: CGSize var insets: UIEdgeInsets @@ -328,6 +335,9 @@ class WalletInfoTransactionItemNode: ListViewItemNode { if !descriptionLayout.size.width.isZero { contentSize.height += descriptionLayout.size.height + textSpacing } + if !feesLayout.size.width.isZero { + contentSize.height += feesLayout.size.height + textSpacing + } insets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 0.0) var topHighlightInset: CGFloat = 0.0 if dateHeaderAtBottom, let header = item.header { @@ -356,6 +366,7 @@ class WalletInfoTransactionItemNode: ListViewItemNode { let _ = titleApply() let _ = textApply() let _ = descriptionApply() + let _ = feesApply() let _ = dateApply() let _ = directionApply() @@ -385,7 +396,9 @@ class WalletInfoTransactionItemNode: ListViewItemNode { let textFrame = CGRect(origin: CGPoint(x: leftInset, y: titleFrame.maxY + titleSpacing), size: textLayout.size) strongSelf.textNode.frame = textFrame - strongSelf.descriptionNode.frame = CGRect(origin: CGPoint(x: leftInset, y: textFrame.maxY + textSpacing), size: descriptionLayout.size) + let descriptionFrame = CGRect(origin: CGPoint(x: leftInset, y: textFrame.maxY + textSpacing), size: descriptionLayout.size) + strongSelf.descriptionNode.frame = descriptionFrame + strongSelf.feesNode.frame = CGRect(origin: CGPoint(x: leftInset, y: descriptionFrame.maxY + textSpacing), size: feesLayout.size) let dateFrame = CGRect(origin: CGPoint(x: params.width - leftInset - dateLayout.size.width, y: topInset), size: dateLayout.size) strongSelf.dateNode.frame = dateFrame diff --git a/submodules/WalletUI/Sources/WalletPresentationData.swift b/submodules/WalletUI/Sources/WalletPresentationData.swift index 0c4ac29cb6..23546e32d8 100644 --- a/submodules/WalletUI/Sources/WalletPresentationData.swift +++ b/submodules/WalletUI/Sources/WalletPresentationData.swift @@ -49,6 +49,19 @@ public final class WalletInfoTheme { } } +public final class WalletTransactionTheme { + public let descriptionBackgroundColor: UIColor + public let descriptionTextColor: UIColor + + public init( + descriptionBackgroundColor: UIColor, + descriptionTextColor: UIColor + ) { + self.descriptionBackgroundColor = descriptionBackgroundColor + self.descriptionTextColor = descriptionTextColor + } +} + public final class WalletSetupTheme { public let buttonFillColor: UIColor public let buttonForegroundColor: UIColor @@ -131,6 +144,7 @@ public final class WalletListTheme { public final class WalletTheme: Equatable { public let info: WalletInfoTheme + public let transaction: WalletTransactionTheme public let setup: WalletSetupTheme public let list: WalletListTheme public let statusBarStyle: StatusBarStyle @@ -141,8 +155,9 @@ public final class WalletTheme: Equatable { private let resourceCache = WalletThemeResourceCache() - public init(info: WalletInfoTheme, setup: WalletSetupTheme, list: WalletListTheme, statusBarStyle: StatusBarStyle, navigationBar: NavigationBarTheme, keyboardAppearance: UIKeyboardAppearance, alert: AlertControllerTheme, actionSheet: ActionSheetControllerTheme) { + public init(info: WalletInfoTheme, transaction: WalletTransactionTheme, setup: WalletSetupTheme, list: WalletListTheme, statusBarStyle: StatusBarStyle, navigationBar: NavigationBarTheme, keyboardAppearance: UIKeyboardAppearance, alert: AlertControllerTheme, actionSheet: ActionSheetControllerTheme) { self.info = info + self.transaction = transaction self.setup = setup self.list = list self.statusBarStyle = statusBarStyle diff --git a/submodules/WalletUI/Sources/WalletQrScanScreen.swift b/submodules/WalletUI/Sources/WalletQrScanScreen.swift index c2a8c72e2d..5fce217ba4 100644 --- a/submodules/WalletUI/Sources/WalletQrScanScreen.swift +++ b/submodules/WalletUI/Sources/WalletQrScanScreen.swift @@ -119,7 +119,7 @@ public final class WalletQrScanScreen: ViewController { return } strongSelf.context.pickImage(completion: { image in - let detector = CIDetector(ofType: CIDetectorTypeQRCode, context: nil, options: [CIDetectorAccuracy:CIDetectorAccuracyHigh])! + let detector = CIDetector(ofType: CIDetectorTypeQRCode, context: nil, options: [CIDetectorAccuracy: CIDetectorAccuracyHigh])! if let ciImage = CIImage(image: image) { var options: [String: Any] if ciImage.properties.keys.contains((kCGImagePropertyOrientation as String)) { diff --git a/submodules/WalletUI/Sources/WalletReceiveScreen.swift b/submodules/WalletUI/Sources/WalletReceiveScreen.swift index f10be88a48..df06c98de3 100644 --- a/submodules/WalletUI/Sources/WalletReceiveScreen.swift +++ b/submodules/WalletUI/Sources/WalletReceiveScreen.swift @@ -89,6 +89,21 @@ final class WalletReceiveScreen: ViewController { } self?.push(walletCreateInvoiceScreen(context: strongSelf.context, address: strongSelf.mode.address)) } + (self.displayNode as! WalletReceiveScreenNode).displayCopyContextMenu = { [weak self] node, frame, text in + guard let strongSelf = self else { + return + } + let contextMenuController = ContextMenuController(actions: [ContextMenuAction(content: .text(title: strongSelf.presentationData.strings.Wallet_ContextMenuCopy, accessibilityLabel: strongSelf.presentationData.strings.Wallet_ContextMenuCopy), action: { + UIPasteboard.general.string = text + })]) + strongSelf.present(contextMenuController, in: .window(.root), with: ContextMenuControllerPresentationArguments(sourceNodeAndRect: { [weak self] in + if let strongSelf = self { + return (node, frame.insetBy(dx: 0.0, dy: -2.0), strongSelf.displayNode, strongSelf.displayNode.view.bounds) + } else { + return nil + } + })) + } self.displayNodeDidLoad() } @@ -120,7 +135,7 @@ final class WalletReceiveScreen: ViewController { } override func preferredContentSizeForLayout(_ layout: ContainerViewLayout) -> CGSize? { - return CGSize(width: layout.size.width, height: layout.size.height - 174.0) + return CGSize(width: layout.size.width, height: min(640.0, layout.size.height)) } override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { @@ -172,6 +187,7 @@ private final class WalletReceiveScreenNode: ViewControllerTracingNode { private let secondaryButtonNode: HighlightableButtonNode var openCreateInvoice: (() -> Void)? + var displayCopyContextMenu: ((ASDisplayNode, CGRect, String) -> Void)? init(context: WalletContext, presentationData: WalletPresentationData, mode: WalletReceiveScreenMode) { self.context = context @@ -234,21 +250,16 @@ private final class WalletReceiveScreenNode: ViewControllerTracingNode { } let textFont = Font.regular(16.0) - let addressFont = Font.monospace(17.0) let textColor = self.presentationData.theme.list.itemPrimaryTextColor let secondaryTextColor = self.presentationData.theme.list.itemSecondaryTextColor let url = urlForMode(self.mode) switch self.mode { case let .receive(address): self.textNode.attributedText = NSAttributedString(string: self.presentationData.strings.Wallet_Receive_ShareUrlInfo, font: textFont, textColor: secondaryTextColor) - self.urlTextNode.attributedText = NSAttributedString(string: formatAddress(url + " "), font: addressFont, textColor: textColor, paragraphAlignment: .justified) self.buttonNode.title = self.presentationData.strings.Wallet_Receive_ShareAddress self.secondaryButtonNode.setTitle(self.presentationData.strings.Wallet_Receive_CreateInvoice, with: Font.regular(17.0), with: self.presentationData.theme.list.itemAccentColor, for: .normal) case let .invoice(address, amount, comment): self.textNode.attributedText = NSAttributedString(string: self.presentationData.strings.Wallet_Receive_ShareUrlInfo, font: textFont, textColor: secondaryTextColor, paragraphAlignment: .center) - - let sliced = String(url.enumerated().map { $0 > 0 && $0 % 32 == 0 ? ["\n", $1] : [$1]}.joined()) - self.urlTextNode.attributedText = NSAttributedString(string: sliced, font: addressFont, textColor: textColor, paragraphAlignment: .justified) self.buttonNode.title = self.presentationData.strings.Wallet_Receive_ShareInvoiceUrl } @@ -258,6 +269,32 @@ private final class WalletReceiveScreenNode: ViewControllerTracingNode { self.secondaryButtonNode.addTarget(self, action: #selector(createInvoicePressed), forControlEvents: .touchUpInside) } + override func didLoad() { + super.didLoad() + + let addressGestureRecognizer = TapLongTapOrDoubleTapGestureRecognizer(target: self, action: #selector(self.tapLongTapOrDoubleTapAddressGesture(_:))) + addressGestureRecognizer.tapActionAtPoint = { [weak self] point in + return .waitForSingleTap + } + self.urlTextNode.view.addGestureRecognizer(addressGestureRecognizer) + } + + @objc func tapLongTapOrDoubleTapAddressGesture(_ recognizer: TapLongTapOrDoubleTapGestureRecognizer) { + switch recognizer.state { + case .ended: + if let (gesture, location) = recognizer.lastRecognizedGestureAndLocation { + switch gesture { + case .longTap: + self.displayCopyContextMenu?(self, self.urlTextNode.frame, urlForMode(self.mode)) + default: + break + } + } + default: + break + } + } + @objc private func qrPressed() { shareInvoiceQrCode(context: self.context, invoice: urlForMode(self.mode)) } @@ -293,6 +330,18 @@ private final class WalletReceiveScreenNode: ViewControllerTracingNode { transition.updateBounds(node: self.qrIconNode, bounds: CGRect(origin: CGPoint(), size: iconSize)) transition.updatePosition(node: self.qrIconNode, position: imageFrame.center.offsetBy(dx: 0.0, dy: -1.0)) + if self.urlTextNode.attributedText?.string.isEmpty ?? true { + var url = urlForMode(self.mode) + if case .receive = self.mode { + url = url + "?" + } + let count = min(url.count / 2, Int(ceil(min(layout.size.width, layout.size.height) * 0.0853))) + let sliced = String(url.enumerated().map { $0 > 0 && $0 % count == 0 ? ["\n", $1] : [$1]}.joined()) + + let addressFont = Font.monospace(17.0) + self.urlTextNode.attributedText = NSAttributedString(string: sliced, font: addressFont, textColor: self.presentationData.theme.list.itemPrimaryTextColor, paragraphAlignment: .justified) + } + let urlTextSize = self.urlTextNode.updateLayout(CGSize(width: layout.size.width - inset * 2.0, height: CGFloat.greatestFiniteMagnitude)) transition.updateFrame(node: self.urlTextNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - urlTextSize.width) / 2.0), y: imageFrame.maxY + 25.0), size: urlTextSize)) diff --git a/submodules/WalletUI/Sources/WalletSettingsScreen.swift b/submodules/WalletUI/Sources/WalletSettingsScreen.swift index cc5edd862a..998dbdb68b 100644 --- a/submodules/WalletUI/Sources/WalletSettingsScreen.swift +++ b/submodules/WalletUI/Sources/WalletSettingsScreen.swift @@ -79,7 +79,6 @@ private func walletSettingsControllerEntries(presentationData: WalletPresentatio entries.append(.deleteWallet(presentationData.theme, presentationData.strings.Wallet_Settings_DeleteWallet)) entries.append(.deleteWalletInfo(presentationData.theme, presentationData.strings.Wallet_Settings_DeleteWalletInfo)) - return entries } diff --git a/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift b/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift index d2323372d5..8bc4ca0e24 100644 --- a/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift +++ b/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift @@ -202,7 +202,12 @@ final class WalletTransactionInfoScreen: ViewController { } var string = NSMutableAttributedString(string: "Blockchain validators collect a tiny fee for storing information about your decentralized wallet and for processing your transactions. More info", font: Font.regular(14.0), textColor: .white, paragraphAlignment: .center) string.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(rgb: 0x6bb2ff), range: NSMakeRange(string.string.count - 10, 10)) - let controller = TooltipController(content: .attributedText(string), timeout: 3.0, dismissByTapOutside: true, dismissByTapOutsideSource: false, dismissImmediatelyOnLayoutUpdate: false) + let controller = TooltipController(content: .attributedText(string), timeout: 3.0, dismissByTapOutside: true, dismissByTapOutsideSource: false, dismissImmediatelyOnLayoutUpdate: false, arrowOnBottom: false) + controller.dismissed = { [weak self] tappedInside in + if let strongSelf = self, tappedInside { + strongSelf.context.openUrl(strongSelf.presentationData.strings.Wallet_TransactionInfo_FeeInfoURL) + } + } strongSelf.present(controller, in: .window(.root), with: TooltipControllerPresentationArguments(sourceViewAndRect: { if let strongSelf = self { return (node.view, rect.insetBy(dx: 0.0, dy: -4.0)) @@ -210,6 +215,21 @@ final class WalletTransactionInfoScreen: ViewController { return nil })) } + (self.displayNode as! WalletTransactionInfoScreenNode).displayCopyContextMenu = { [weak self] node, frame, text in + guard let strongSelf = self else { + return + } + let contextMenuController = ContextMenuController(actions: [ContextMenuAction(content: .text(title: strongSelf.presentationData.strings.Wallet_ContextMenuCopy, accessibilityLabel: strongSelf.presentationData.strings.Wallet_ContextMenuCopy), action: { + UIPasteboard.general.string = text + })]) + strongSelf.present(contextMenuController, in: .window(.root), with: ContextMenuControllerPresentationArguments(sourceNodeAndRect: { [weak self] in + if let strongSelf = self { + return (node, frame.insetBy(dx: 0.0, dy: -2.0), strongSelf.displayNode, strongSelf.displayNode.view.bounds) + } else { + return nil + } + })) + } self.displayNodeDidLoad() } @@ -223,7 +243,8 @@ final class WalletTransactionInfoScreen: ViewController { textHeight += 24.0 } let insets = layout.insets(options: []) - return CGSize(width: layout.size.width, height: 428.0 + insets.bottom + textHeight) + + return CGSize(width: layout.size.width, height: min(min(720.0, layout.size.height), 428.0 + insets.bottom + textHeight)) } override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { @@ -240,7 +261,7 @@ final class WalletTransactionInfoScreen: ViewController { private let integralFont = Font.medium(48.0) private let fractionalFont = Font.medium(24.0) -private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { +private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate { private let context: WalletContext private var presentationData: WalletPresentationData private let walletTransaction: WalletInfoTransaction @@ -249,14 +270,20 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { private let titleNode: ImmediateTextNode private let timeNode: ImmediateTextNode + private let navigationBackgroundNode: ASDisplayNode + private let navigationSeparatorNode: ASDisplayNode + + private let scrollNode: ASScrollNode private let amountNode: ImmediateTextNode private let iconNode: AnimatedStickerNode private let activateArea: AccessibilityAreaNode private let feesNode: ImmediateTextNode + private let feesInfoIconNode: ASImageNode private let feesButtonNode: ASButtonNode private let commentBackgroundNode: ASImageNode private let commentTextNode: ImmediateTextNode + private let commentSeparatorNode: ASDisplayNode private let addressTextNode: ImmediateTextNode @@ -264,6 +291,7 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { var send: ((String) -> Void)? var displayFeesTooltip: ((ASDisplayNode, CGRect) -> Void)? + var displayCopyContextMenu: ((ASDisplayNode, CGRect, String) -> Void)? init(context: WalletContext, presentationData: WalletPresentationData, walletTransaction: WalletInfoTransaction) { self.context = context @@ -278,6 +306,14 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { self.timeNode.textAlignment = .center self.timeNode.maximumNumberOfLines = 1 + self.navigationBackgroundNode = ASDisplayNode() + self.navigationBackgroundNode.backgroundColor = self.presentationData.theme.navigationBar.backgroundColor + self.navigationBackgroundNode.alpha = 0.0 + self.navigationSeparatorNode = ASDisplayNode() + self.navigationSeparatorNode.backgroundColor = self.presentationData.theme.navigationBar.separatorColor + + self.scrollNode = ASScrollNode() + self.amountNode = ImmediateTextNode() self.amountNode.textAlignment = .center self.amountNode.maximumNumberOfLines = 1 @@ -293,14 +329,24 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { self.feesNode.maximumNumberOfLines = 2 self.feesNode.lineSpacing = 0.35 + self.feesInfoIconNode = ASImageNode() + self.feesInfoIconNode.displaysAsynchronously = false + self.feesInfoIconNode.displayWithoutProcessing = true + self.feesInfoIconNode.image = UIImage(bundleImageName: "Wallet/InfoIcon") + self.feesButtonNode = ASButtonNode() self.commentBackgroundNode = ASImageNode() self.commentBackgroundNode.contentMode = .scaleToFill + self.commentBackgroundNode.isUserInteractionEnabled = true self.commentTextNode = ImmediateTextNode() self.commentTextNode.textAlignment = .natural self.commentTextNode.maximumNumberOfLines = 0 + self.commentTextNode.isUserInteractionEnabled = false + + self.commentSeparatorNode = ASDisplayNode() + self.commentSeparatorNode.backgroundColor = self.presentationData.theme.list.itemPlainSeparatorColor self.addressTextNode = ImmediateTextNode() self.addressTextNode.maximumNumberOfLines = 4 @@ -327,14 +373,19 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { self.backgroundColor = self.presentationData.theme.list.plainBackgroundColor + self.addSubnode(self.navigationBackgroundNode) + self.addSubnode(self.navigationSeparatorNode) self.addSubnode(self.titleNode) self.addSubnode(self.timeNode) self.addSubnode(self.amountNode) self.addSubnode(self.iconNode) self.addSubnode(self.feesNode) + self.addSubnode(self.feesInfoIconNode) self.addSubnode(self.feesButtonNode) - self.addSubnode(self.commentBackgroundNode) - self.addSubnode(self.commentTextNode) + self.addSubnode(self.scrollNode) + self.scrollNode.addSubnode(self.commentBackgroundNode) + self.scrollNode.addSubnode(self.commentTextNode) + self.addSubnode(self.commentSeparatorNode) self.addSubnode(self.addressTextNode) self.addSubnode(self.buttonNode) @@ -346,7 +397,6 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { self.titleNode.attributedText = NSAttributedString(string: self.presentationData.strings.Wallet_TransactionInfo_Title, font: titleFont, textColor: textColor) - self.timeNode.attributedText = NSAttributedString(string: stringForFullDate(timestamp: Int32(clamping: timestamp), strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat), font: subtitleFont, textColor: seccondaryTextColor) let amountString: String @@ -372,16 +422,18 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { feesString.append(formatBalanceText(transaction.otherFee, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator) + " transaction fee") } - if !feesString.isEmpty { - feesString.append("(?)") - } + self.feesInfoIconNode.isHidden = feesString.isEmpty } self.feesNode.attributedText = NSAttributedString(string: feesString, font: subtitleFont, textColor: seccondaryTextColor) self.feesButtonNode.addTarget(self, action: #selector(feesPressed), forControlEvents: .touchUpInside) - self.commentBackgroundNode.image = messageBubbleImage(incoming: transferredValue > 0, fillColor: UIColor(rgb: 0xf1f1f5), strokeColor: UIColor(rgb: 0xf1f1f5)) - self.commentTextNode.attributedText = NSAttributedString(string: extractDescription(walletTransaction), font: Font.regular(17.0), textColor: .black) + var commentBackgroundColor = presentationData.theme.transaction.descriptionBackgroundColor + if commentBackgroundColor.distance(to: presentationData.theme.list.plainBackgroundColor) < 100 { + commentBackgroundColor = UIColor(rgb: 0xf1f1f4) + } + self.commentBackgroundNode.image = messageBubbleImage(incoming: transferredValue > 0, fillColor: commentBackgroundColor, strokeColor: presentationData.theme.transaction.descriptionBackgroundColor) + self.commentTextNode.attributedText = NSAttributedString(string: extractDescription(walletTransaction), font: Font.regular(17.0), textColor: presentationData.theme.transaction.descriptionTextColor) let address = extractAddress(walletTransaction) var singleAddress: String? @@ -391,7 +443,7 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { if let address = singleAddress { self.addressTextNode.attributedText = NSAttributedString(string: formatAddress(address), font: addressFont, textColor: textColor, paragraphAlignment: .justified) - self.buttonNode.title = "Send Grams to This Address" + self.buttonNode.title = presentationData.strings.Wallet_TransactionInfo_SendGrams self.buttonNode.pressed = { [weak self] in self?.send?(address) @@ -399,9 +451,76 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { } } + override func didLoad() { + super.didLoad() + + let commentGestureRecognizer = TapLongTapOrDoubleTapGestureRecognizer(target: self, action: #selector(self.tapLongTapOrDoubleTapCommentGesture(_:))) + commentGestureRecognizer.tapActionAtPoint = { [weak self] point in + return .waitForSingleTap + } + self.commentBackgroundNode.view.addGestureRecognizer(commentGestureRecognizer) + + let addressGestureRecognizer = TapLongTapOrDoubleTapGestureRecognizer(target: self, action: #selector(self.tapLongTapOrDoubleTapAddressGesture(_:))) + addressGestureRecognizer.tapActionAtPoint = { [weak self] point in + return .waitForSingleTap + } + self.addressTextNode.view.addGestureRecognizer(addressGestureRecognizer) + } + + @objc func tapLongTapOrDoubleTapCommentGesture(_ recognizer: TapLongTapOrDoubleTapGestureRecognizer) { + switch recognizer.state { + case .ended: + if let (gesture, location) = recognizer.lastRecognizedGestureAndLocation { + switch gesture { + case .longTap: + let description = extractDescription(self.walletTransaction) + if !description.isEmpty { + self.displayCopyContextMenu?(self, self.commentBackgroundNode.frame, description) + } + default: + break + } + } + default: + break + } + } + + @objc func tapLongTapOrDoubleTapAddressGesture(_ recognizer: TapLongTapOrDoubleTapGestureRecognizer) { + switch recognizer.state { + case .ended: + if let (gesture, location) = recognizer.lastRecognizedGestureAndLocation { + switch gesture { + case .longTap: + let address = extractAddress(self.walletTransaction) + var singleAddress: String? + if case let .list(list) = address, list.count == 1 { + singleAddress = list.first + } + + if let address = singleAddress { + self.displayCopyContextMenu?(self, self.addressTextNode.frame, address) + } + default: + break + } + } + default: + break + } + } + @objc private func feesPressed() { self.displayFeesTooltip?(self.feesNode, self.feesNode.bounds) } + + func scrollViewDidScroll(_ scrollView: UIScrollView) { + self.updateTitle() + } + + private func updateTitle() { + + } func containerLayoutUpdated(layout: ContainerViewLayout, navigationHeight: CGFloat, transition: ContainedViewLayoutTransition) { var insets = layout.insets(options: []) @@ -430,17 +549,6 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { transition.updateFrame(node: self.feesNode, frame: feesFrame) transition.updateFrame(node: self.feesButtonNode, frame: feesFrame) - let commentSize = self.commentTextNode.updateLayout(CGSize(width: layout.size.width - 36.0 * 2.0, height: CGFloat.greatestFiniteMagnitude)) - let commentFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - commentSize.width) / 2.0), y: amountFrame.maxY + 84.0), size: CGSize(width: commentSize.width, height: commentSize.height)) - transition.updateFrame(node: self.commentTextNode, frame: commentFrame) - - var commentBackgroundFrame = commentSize.width > 0.0 ? commentFrame.insetBy(dx: -11.0, dy: -7.0) : CGRect() - commentBackgroundFrame.size.width += 7.0 - if self.incoming { - commentBackgroundFrame.origin.x -= 7.0 - } - transition.updateFrame(node: self.commentBackgroundNode, frame: commentBackgroundFrame) - let buttonSideInset: CGFloat = 16.0 let bottomInset = insets.bottom + 10.0 let buttonWidth = layout.size.width - buttonSideInset * 2.0 @@ -451,6 +559,27 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode { self.buttonNode.updateLayout(width: buttonFrame.width, transition: transition) let addressSize = self.addressTextNode.updateLayout(CGSize(width: layout.size.width - inset * 2.0, height: CGFloat.greatestFiniteMagnitude)) - transition.updateFrame(node: self.addressTextNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - addressSize.width) / 2.0), y: buttonFrame.minY - addressSize.height - 44.0), size: addressSize)) + let addressFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - addressSize.width) / 2.0), y: buttonFrame.minY - addressSize.height - 38.0), size: addressSize) + transition.updateFrame(node: self.addressTextNode, frame: addressFrame) + + transition.updateFrame(node: self.navigationBackgroundNode, frame: CGRect(x: 0.0, y: 0.0, width: layout.size.width, height: navigationHeight)) + transition.updateFrame(node: self.navigationSeparatorNode, frame: CGRect(x: 0.0, y: navigationHeight, width: layout.size.width, height: UIScreenPixel)) + + let commentSeparatorFrame = CGRect(x: 0.0, y: addressFrame.minY - 36.0, width: layout.size.width, height: UIScreenPixel) + transition.updateFrame(node: self.commentSeparatorNode, frame: commentSeparatorFrame) + + let scrollFrame = CGRect(x: 0.0, y: navigationHeight, width: layout.size.width, height: commentSeparatorFrame.minY - navigationHeight) + transition.updateFrame(node: self.scrollNode, frame: scrollFrame) + + let commentSize = self.commentTextNode.updateLayout(CGSize(width: layout.size.width - 36.0 * 2.0, height: CGFloat.greatestFiniteMagnitude)) + let commentFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - commentSize.width) / 2.0), y: amountFrame.maxY + 84.0 - navigationHeight), size: CGSize(width: commentSize.width, height: commentSize.height)) + transition.updateFrame(node: self.commentTextNode, frame: commentFrame) + + var commentBackgroundFrame = commentSize.width > 0.0 ? commentFrame.insetBy(dx: -11.0, dy: -7.0) : CGRect() + commentBackgroundFrame.size.width += 7.0 + if self.incoming { + commentBackgroundFrame.origin.x -= 7.0 + } + transition.updateFrame(node: self.commentBackgroundNode, frame: commentBackgroundFrame) } } diff --git a/submodules/WalletUI/Sources/WalletWordDisplayScreen.swift b/submodules/WalletUI/Sources/WalletWordDisplayScreen.swift index 2c986e5eb0..bbc72168fc 100644 --- a/submodules/WalletUI/Sources/WalletWordDisplayScreen.swift +++ b/submodules/WalletUI/Sources/WalletWordDisplayScreen.swift @@ -254,14 +254,16 @@ private final class WalletWordDisplayScreenNode: ViewControllerTracingNode, UISc } private func updateTitle() { - guard let listTitleFrame = self.listTitleFrame else { + guard let layout = self.validLayout, let listTitleFrame = self.listTitleFrame else { return } let scrollView = self.scrollNode.view let navigationHeight = self.navigationHeight ?? 0.0 - let minY = navigationHeight - 44.0 + floor(44.0 / 2.0) - let maxY = minY + 44.0 + let nominalNavigationHeight = navigationHeight - (layout.0.statusBarHeight ?? 0.0) + + let minY = navigationHeight - nominalNavigationHeight + floor(nominalNavigationHeight / 2.0) + let maxY = minY + nominalNavigationHeight let y = max(minY, -scrollView.contentOffset.y + listTitleFrame.midY) var t = (y - minY) / (maxY - minY) t = max(0.0, min(1.0, t)) From 04f7b41e47c0757767a96f4b6af4b95737be34b6 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Thu, 17 Oct 2019 15:46:29 +0300 Subject: [PATCH 02/32] Update Camera application shortcut icon --- .../Shortcuts/Camera.imageset/Contents.json | 12 ++++++++++++ .../Shortcuts/Camera.imageset/ic_camera.pdf | Bin 0 -> 4611 bytes .../TelegramUI/ApplicationShortcutItem.swift | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 Telegram-iOS/Icons.xcassets/Shortcuts/Camera.imageset/Contents.json create mode 100644 Telegram-iOS/Icons.xcassets/Shortcuts/Camera.imageset/ic_camera.pdf diff --git a/Telegram-iOS/Icons.xcassets/Shortcuts/Camera.imageset/Contents.json b/Telegram-iOS/Icons.xcassets/Shortcuts/Camera.imageset/Contents.json new file mode 100644 index 0000000000..868e9f5048 --- /dev/null +++ b/Telegram-iOS/Icons.xcassets/Shortcuts/Camera.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "ic_camera.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Telegram-iOS/Icons.xcassets/Shortcuts/Camera.imageset/ic_camera.pdf b/Telegram-iOS/Icons.xcassets/Shortcuts/Camera.imageset/ic_camera.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a5e2d3c939b37193f99f2ee4ea945fa4d124d808 GIT binary patch literal 4611 zcmai&2{=^!_rNVv7(yk4YRHgmGiEGPmN3?2jgY}GV;!c<*mt39+1Fl4WJ$Itq9MED z*O09gvJBZH*`~>F^w$6Fec%7{{O)s~x!*b8bI(2B?>*-{pL4;+NNs7T3=9Zvr>s*J zi@)6KYwrZYK@bq$!40Ua43ag#dO8zbK=O2vDM(h^6-UH+(XTi(5sSn+;xSl|sw$8` z^unS&fPRc9^NXHfMUD?!62x#5q<&$Ew;`lV=p!RDOBFLmP$;Ows4k(JFHy>bM@?&U zb+d-%Su8m)(^*iaPj#u?{ZQm{di8czZZ$r#&`8k7#_s86Qy5Og5uxFQsk_4L6CL-W zlSuFz1*Z(5?F-@MjPC`>HdQ%qgUyV%0| z()WY644p{qMZvPxg3t1$A5Fs}G3TVY?*#HY41{cOAIKOB!4I>PKt{fnuMKDRAydQu zqe*?SP<8(kLs}L;(uN?kaUkqW!`|+VJ0pRCR0nbWl@6L;JkXCzr$J>Mj>zqZ?03-> ztZa*LIV*f+RWL88M-OPr5Vzf5cS6+MK1rGU0+W4n?wepIpsac>0@gSD^mwcYl!H^s zXml|RMlm*-I@}VKpH;!+G+~D8J77D?ovhI4*=h$#mo8#|dufm-_msqB`RBTGC2WRh zg#qC+)vlMAOgVFp7_ZFl9D(|N={={ZW65_qhWJSZgNtNmEYeKk;XlHjQIrKIQM_(V zIT`9I1O>1tKPb6-UaLCj_UbwHZra8PVFA_(?lirZfy^kcnI{Bewp-H1{lRYD$KHoDH4MNhL4TwV*|<}agU6!MEKKd?T=O&*p@*&r&7k)pj+GKeR zn|DrZx18ptw#Sl~6b1xhJuyF1iay%U#QpT!zbe5Y`;+@ax!;oXvi~(KNY)tb{NvXP z>q!K`{!Ca?ECKKB<%lJK6#f)w;ysD-uZ$xZi@_ou!6`CmzI?1gtU!xBMP=|+*- zAQVVe6OY4tnO#FWVnO>=L6ZOlDgHF@n+>JkZ2T-7h#y+AhIEHy)%S~sC%tljWRX}O zS4XU=j>iA4DY+TGm(AYs-XxP0Nqt8|K;R9505;H@^SZ|XCNX+p#!S(XVm`EiYRQ&${e1zneH2Vn$Qx z4xpN^i7k=us>k28n!qhRk|psnY>HanIZ@M;Zq88aaqt3V@{!Rhh++KzL+$te?#yoc!$xn*Zya@cO=4ixLcFzjc;(QUGTKH+bV=$~1rKq^*BC@xa zgENzip>1*RO}{|6{^w3 z*9(Bh>Z)%Ufa=hFt`fI8iEAcRQXvQRQr(D?S6D#3Ad*flgrm@P#X`(;_E9%DX zJ(fNY{2+}nIP!27(*XL=TZX4$@2buVvFfz;d_?*k`-6q=#rsM9dR|q|x>mkP!Osj* zQFg7VtQWdjnftXZSq0aS8cCL-jE9BYlSK-dO0{y5I12@zCFmw!pJ6_DGasGB&)a!? z`leO!hfU$|odoH23;RU-t5uoR z%x}?4=Y=@CUL2nix)xH;ZzJa^UjeA&8i{WVTWmWtDYoYK{OmZ-Y6Mpc;j=@Ka1$_8 zDD>n+;;GJN@gz2DfO`a&a0W;eCwiG%fOU?Q7J0Z8ZW3N%L==hU_HVawkf^@>R{go2 zkeFdAk6yGWpQ)%sc5V1&JvR}Qn2H!lIQ8W@jE)z-)dgFl3eh}}9hfUc%{c9h7>|*@ zke0?fLxldb3;q}UH6NHBD)Ah&e3;dcYi&eA2I~jQ>ZHOlzhq9oEKe;}+R5aJ+X;v2e=qu0&t%eap~Wn`pvod&d$P7wB}z{#=YG1wEr%S37>65E@*O7N z=PBVSbw`X!FU(iH0Y4BH&=`2&|E9k7Qti1>>?q`fj$$EoAa%ZDgAg|{H?-S3H|mf~SpvD3?0c7-YX{$(`F3-msv#zze%I}5+k(nM zsz8oFlfZESbAe2Fr~L68&zzSzl$<$uSFMXR`xAgQ#d_|EEhIgArT4NExF!yfUtY0X zEZwhKI98@o?pRV|>0Dq~^ZF<%MdqradYw(3nXiV?MOjN(yGoPQd{vXY^1Q-ko#v~d zuU_8oN@F}ZpvdI>Kt znY|qxzii(?t|fE0&$@`g%j6ro?pJ-VvU;RFd=Js4+#OWle`iOMT_w&kE|+(V*G_6# z%1nAu>Xem))d5S7+J&m!w$b(+ca&prSG3!-W6kTLvDqi(rP32V&C9{(b5K=dyp4v9 zn+jeOk-s5(BZ{Tll8CH;-^`}1I4Qc^ol2PtzJvKKJ>bP zorCW)-=H+VSO4|NdLgf58H`N4o!_c+Q;6iyrb1qCAltg zCF{g>r4^^n36R-sZ)H|qNxo89m$K!s>b6>}dQLS)H9_@glTTAwuLzx->DGx$;JwJ}tNl`^Lu*Lql2)Krrq;zw zODU_G8SQxMcutF5aA8ngUL*$iQqeYL-U5o={4A$Q4O;Emqgh zo)kQFVuE`w=4fjv#h_xt?wKzIFp}DMlbSNuDLI$0hT6t{O9o^{K91~1X11eZ9Q7*n zj_FM^8L2<{=>6DkJ$$A#Eh())0#@2z`XATG+U?o_4KO;kN)iQA5huyE!3!Xo4X<2> zR?LsyztEp-aE4&z)R=YqyTMo8c+orH8&>Q!ZjZ;Eb+CD_OnMK`Zp`G&c=nul`Q;@w zMBYi>*W0|Uax**VlM6uGRsmQ2=((s|I;n&>@resDywL@`aFH6f+5dir`7p7!yp zX5i7Xd1F|?vu%KqFk)@0Yx~sdT@K}U{;|Oi=f!Dxn@{_!W3BUtKMcn_EmUv~GzgrS z4;#om@%n_c+MT_ijrh&%oSIk87s<)5kNt56k>?w-uF)B_78k>J^V}7pYD4YJo7{@3 zit(QC%u3s}XI`c6Nz`xVnPtuu2-NxD++fmjG%aEHWaHfoyQL7<`6sI$r1@(#w2bNU z+f4_8=XOz4+40SWV9M>iTtVizgS#s-O@Vv1A5`Xp$7%g6rChdZy#Y!z7nBX)yio@+ape;q>ZI}BlhH)Th58m^_sGK={uE1Z3oDuWJ&E>?FF539di6m{8&Ks zM#tx#_{@RnsAh@pPq)(h%kn~esU&BIm+hb3`xmp-^v6q@5WB;h9&?yaGXuV^t3}1J z<7G{1o8h#4s^dmi^8Av~wo!Usf|_p-+qZQ;F%PHNiLJ;l)PM8yK85~(W(BC+FW}wh z*L@isa`iMdHP8es2DA^brXbWWm3@f*#l(LxHUT7i35#(>YvBDrS0Qv2IXM0N0muJbh@?Q02#Wk{&$O-Xd)Vicm5OK2|v00FD!>bf8KG%1MO&J2C~3< z5nS<}ASgrz3YU=w*__evcEw>pP$g|S2+T$TWa5qXA_joy-2Mag{fH93Rs;RjGMqu4 zlY>AJ5QH283WGu96|5l;ar*g}=5JoodjX8MBfaVW;R*d4fF`}yC(>O&?t}afn{?qN zJm&ZRfBEm{g>?c#Ku{PE@_z?NL0%pv4{`$il)<4;`U~1WK%T#35QIFv>G``1rld&U zjlatv5IOp?{vkua=-tfUWl#wHiT{wnl>Q$*y5hg}p#QQ5L&*Q@xp2BO|GXCtQKSdj zFJFjWXjdH8>&KTBGuHt6{?XeaQ#_s?HT#i4-$*@ACp Date: Thu, 17 Oct 2019 17:00:02 +0300 Subject: [PATCH 03/32] Fix --- submodules/TelegramCore/TelegramCore/Network.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/TelegramCore/TelegramCore/Network.swift b/submodules/TelegramCore/TelegramCore/Network.swift index 8767d35495..b4b9e86b72 100644 --- a/submodules/TelegramCore/TelegramCore/Network.swift +++ b/submodules/TelegramCore/TelegramCore/Network.swift @@ -489,7 +489,7 @@ func initializedNetwork(arguments: NetworkInitializationArguments, supplementary context.keychain = keychain var wrappedAdditionalSource: MTSignal? #if os(iOS) - if #available(iOS 10.0, *) { + if #available(iOS 10.0, *), !supplementary { var cloudDataContextValue: CloudDataContext? if let value = cloudDataContext.with({ $0 }) { cloudDataContextValue = value From 2c5886b3eead4af25b109d43afe74b093fc2d189 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Sat, 19 Oct 2019 16:16:55 +0400 Subject: [PATCH 04/32] Maybe one line is ok --- .../Sources/Node/ChatListItem.swift | 40 +++++++++---------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/submodules/ChatListUI/Sources/Node/ChatListItem.swift b/submodules/ChatListUI/Sources/Node/ChatListItem.swift index 3804fa1e17..3238fc2dca 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListItem.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListItem.swift @@ -824,31 +824,12 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { } } - func foldLineBreaks(_ text: String, allowTwoLines: Bool) -> String { - var lines = text.split { $0.isNewline } - var startedBothLines = false - var result = "" - for line in lines { - if result.isEmpty { - result += line - } else { - if allowTwoLines && !startedBothLines { - result += "\n" + line - startedBothLines = true - } else { - result += " " + line - } - } - } - return result - } - let messageText: String if let currentChatListText = currentChatListText, currentChatListText.0 == text { messageText = currentChatListText.1 chatListText = currentChatListText } else { - messageText = foldLineBreaks(text, allowTwoLines: peerText == nil) + messageText = foldLineBreaks(text) chatListText = (text, messageText) } @@ -856,7 +837,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { hasDraft = true authorAttributedString = NSAttributedString(string: item.presentationData.strings.DialogList_Draft, font: textFont, textColor: theme.messageDraftTextColor) - attributedText = NSAttributedString(string: foldLineBreaks(embeddedState.text.string.replacingOccurrences(of: "\n\n", with: " "), allowTwoLines: false), font: textFont, textColor: theme.messageTextColor) + attributedText = NSAttributedString(string: foldLineBreaks(embeddedState.text.string.replacingOccurrences(of: "\n\n", with: " ")), font: textFont, textColor: theme.messageTextColor) } else if let message = message { let composedString: NSMutableAttributedString if let inlineAuthorPrefix = inlineAuthorPrefix { @@ -1838,3 +1819,20 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { } } } + +private func foldLineBreaks(_ text: String) -> String { + var lines = text.split { $0.isNewline } + var startedBothLines = false + var result = "" + for line in lines { + if line.isEmpty { + continue + } + if result.isEmpty { + result += line + } else { + result += " " + line + } + } + return result +} From 2cfe56b204f5c2d221bff2509e0d440e75e6d122 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Sat, 19 Oct 2019 16:17:36 +0400 Subject: [PATCH 05/32] Fix device type detection when launching in slide-over with iOS 13 --- submodules/Display/Display/DeviceMetrics.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/submodules/Display/Display/DeviceMetrics.swift b/submodules/Display/Display/DeviceMetrics.swift index 76ec247a9d..fcbb58162e 100644 --- a/submodules/Display/Display/DeviceMetrics.swift +++ b/submodules/Display/Display/DeviceMetrics.swift @@ -44,7 +44,10 @@ public enum DeviceMetrics: CaseIterable, Equatable { let additionalSize = CGSize(width: screenSize.width, height: screenSize.height + 20.0) for device in DeviceMetrics.allCases { if let _ = onScreenNavigationHeight, device.onScreenNavigationHeight(inLandscape: false) == nil { - continue + if case .tablet = device.type { + } else { + continue + } } let width = device.screenSize.width From 2efd77a27ef6d8807b003fcfc3fdd3879e8d2eb3 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Sat, 19 Oct 2019 16:18:13 +0400 Subject: [PATCH 06/32] Simplify slide-over keyboard handling --- .../Display/Display/WindowContent.swift | 37 ++++++++++++------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/submodules/Display/Display/WindowContent.swift b/submodules/Display/Display/WindowContent.swift index 2b815235b8..b3eb04cf1c 100644 --- a/submodules/Display/Display/WindowContent.swift +++ b/submodules/Display/Display/WindowContent.swift @@ -485,6 +485,7 @@ public class Window1 { let screenHeight: CGFloat var inPopover = false if keyboardFrame.width.isEqual(to: UIScreen.main.bounds.width) { + let screenSize = UIScreen.main.bounds.size var portraitScreenSize = UIScreen.main.bounds.size if portraitScreenSize.width > portraitScreenSize.height { portraitScreenSize = CGSize(width: portraitScreenSize.height, height: portraitScreenSize.width) @@ -493,23 +494,35 @@ public class Window1 { if portraitLayoutSize.width > portraitLayoutSize.height { portraitLayoutSize = CGSize(width: portraitLayoutSize.height, height: portraitLayoutSize.width) } - if abs(strongSelf.windowLayout.size.height - UIScreen.main.bounds.height) > 41.0 { - if abs(portraitLayoutSize.height - portraitScreenSize.height) > 41.0 || abs(portraitLayoutSize.width - portraitScreenSize.width) > 41.0 { - popoverDelta = 48.0 + + if strongSelf.windowLayout.size.height != screenSize.height { + let heightDelta = screenSize.height - strongSelf.windowLayout.size.height + + let heightDeltaValid = heightDelta > 0.0 && heightDelta < 100.0 + + if heightDeltaValid { inPopover = true + popoverDelta = heightDelta / 2.0 + } + } + + if #available(iOSApplicationExtension 13.0, iOS 13.0, *) { + screenHeight = UIScreen.main.bounds.height + } else { + screenHeight = strongSelf.windowLayout.size.height + } + + /*if abs(strongSelf.windowLayout.size.height - UIScreen.main.bounds.height) > 41.0 { + if abs(portraitLayoutSize.height - portraitScreenSize.height) > 41.0 || abs(portraitLayoutSize.width - portraitScreenSize.width) > 41.0 { screenHeight = strongSelf.windowLayout.size.height } else { screenHeight = UIScreen.main.bounds.height } } else if abs(strongSelf.windowLayout.size.height - UIScreen.main.bounds.height) > 39.0 { screenHeight = UIScreen.main.bounds.height - if abs(portraitLayoutSize.height - portraitScreenSize.height) > 39.0 || abs(portraitLayoutSize.width - portraitScreenSize.width) > 39.0 { - popoverDelta = 40.0 - inPopover = true - } } else { screenHeight = strongSelf.windowLayout.size.height - } + }*/ } else { screenHeight = UIScreen.main.bounds.width } @@ -519,11 +532,9 @@ public class Window1 { keyboardHeight = 0.0 } else { keyboardHeight = max(0.0, screenHeight - keyboardFrame.minY) - if inPopover { - if strongSelf.windowLayout.onScreenNavigationHeight != nil { - if !keyboardHeight.isZero { - keyboardHeight = max(0.0, keyboardHeight + popoverDelta / 2.0) - } + if inPopover && !keyboardHeight.isZero { + if #available(iOSApplicationExtension 13.0, iOS 13.0, *) { + keyboardHeight = max(0.0, keyboardHeight - popoverDelta) } else { keyboardHeight = max(0.0, keyboardHeight - popoverDelta) } From 692fa3ba43aa52f133d91b66c08884f571c8c09b Mon Sep 17 00:00:00 2001 From: Peter <> Date: Sat, 19 Oct 2019 16:18:37 +0400 Subject: [PATCH 07/32] End editing globally --- submodules/TelegramUI/TelegramUI/ChatControllerNode.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift index 100a1fd6dd..0b5b20f01e 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift @@ -1532,6 +1532,8 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { }) } self.searchNavigationNode?.deactivate() + + self.view.window?.endEditing(true) } private func scheduleLayoutTransitionRequest(_ transition: ContainedViewLayoutTransition) { From b5258b283a66d5e7697aa27fd71425069d97b5e7 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Sat, 19 Oct 2019 16:22:35 +0400 Subject: [PATCH 08/32] PermissionController: use common dismiss() handling --- submodules/Display/Display/ViewController.swift | 1 + .../Sources/PermissionController.swift | 9 +-------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/submodules/Display/Display/ViewController.swift b/submodules/Display/Display/ViewController.swift index 3d0aa3e717..cdaa03ea1d 100644 --- a/submodules/Display/Display/ViewController.swift +++ b/submodules/Display/Display/ViewController.swift @@ -455,6 +455,7 @@ public enum ViewControllerNavigationPresentation { } navigationController.filterController(self, animated: animated) } else { + self.presentingViewController?.dismiss(animated: false, completion: nil) assertionFailure() } } diff --git a/submodules/TelegramPermissionsUI/Sources/PermissionController.swift b/submodules/TelegramPermissionsUI/Sources/PermissionController.swift index 7620502820..9c4d55d746 100644 --- a/submodules/TelegramPermissionsUI/Sources/PermissionController.swift +++ b/submodules/TelegramPermissionsUI/Sources/PermissionController.swift @@ -8,7 +8,7 @@ import TelegramPresentationData import DeviceAccess import AccountContext -public final class PermissionController : ViewController { +public final class PermissionController: ViewController { private let context: AccountContext private let splitTest: PermissionUISplitTest? private var state: PermissionControllerContent? @@ -237,11 +237,4 @@ public final class PermissionController : ViewController { @objc private func nextPressed() { self.skip?() } - - override public func dismiss(completion: (() -> Void)? = nil) { - self.controllerNode.animateOut(completion: { [weak self] in - self?.presentingViewController?.dismiss(animated: false, completion: nil) - completion?() - }) - } } From 5b889d636759498ffe829d08e2c84f5fb839f41f Mon Sep 17 00:00:00 2001 From: Peter <> Date: Sat, 19 Oct 2019 16:56:08 +0400 Subject: [PATCH 09/32] Fix iPad Pro layout detection --- submodules/Display/Display/DeviceMetrics.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/submodules/Display/Display/DeviceMetrics.swift b/submodules/Display/Display/DeviceMetrics.swift index fcbb58162e..bc78143e2a 100644 --- a/submodules/Display/Display/DeviceMetrics.swift +++ b/submodules/Display/Display/DeviceMetrics.swift @@ -45,6 +45,10 @@ public enum DeviceMetrics: CaseIterable, Equatable { for device in DeviceMetrics.allCases { if let _ = onScreenNavigationHeight, device.onScreenNavigationHeight(inLandscape: false) == nil { if case .tablet = device.type { + if screenSize.height == 1024.0 && screenSize.width == 768.0 { + } else { + continue + } } else { continue } From de61740a737bad16c31c7c9e8d73f3622b4ffe6d Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sat, 19 Oct 2019 17:13:32 +0400 Subject: [PATCH 10/32] Various fixes --- Telegram-iOS/en.lproj/Localizable.strings | 6 + Wallet/Sources/AppDelegate.swift | 2 +- Watch/Extension/TGNotificationController.m | 5 + .../ChatItemGalleryFooterContentNode.swift | 6 +- submodules/QrCode/Sources/QrCode.swift | 48 +- .../TelegramCore/MessageUtils.swift | 2 +- .../Sources/PresentationStrings.swift | 5190 +++++++++-------- .../TelegramUI/ChatController.swift | 17 +- .../ChatControllerInteraction.swift | 7 +- .../TelegramUI/ChatControllerNode.swift | 13 + .../TelegramUI/ChatMessageDateHeader.swift | 8 +- .../ChatRecentActionsControllerNode.swift | 1 + .../ChatScheduleTimeController.swift | 2 +- .../ChatScheduleTimeControllerNode.swift | 25 +- .../OverlayPlayerControllerNode.swift | 1 + .../PeerMediaCollectionController.swift | 1 + .../Resources/Animations/anim_swipereply.json | 1 + .../Resources/PresentationStrings.mapping | Bin 135296 -> 135487 bytes .../StringForMessageTimestampStatus.swift | 3 + .../TelegramUI/WalletContextImpl.swift | 4 +- .../Sources/UndoOverlayController.swift | 1 + .../Sources/UndoOverlayControllerNode.swift | 12 +- .../WalletUI/Sources/WalletAmountItem.swift | 75 +- .../WalletUI/Sources/WalletContext.swift | 3 +- .../WalletUI/Sources/WalletQrScanScreen.swift | 4 +- .../Sources/WalletTransactionInfoScreen.swift | 1 + 26 files changed, 2775 insertions(+), 2663 deletions(-) create mode 100644 submodules/TelegramUI/TelegramUI/Resources/Animations/anim_swipereply.json diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index de1d1b0e52..5f718c4554 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -4980,3 +4980,9 @@ Any member of this group will be able to see messages in the channel."; "ClearCache.FreeSpaceDescription" = "If you want to save space on your device, you don't need to delete anything.\n\nYou can use cache settings to remove unnecessary media — and re-download files if you need them again."; "ClearCache.FreeSpace" = "Free Space"; "ClearCache.Success" = "**%@** freed on your phone!"; + +"Conversation.ScheduleMessage.SendWhenOnline" = "Send When Online"; +"ScheduledMessages.ScheduledOnline" = "Scheduled until online"; + +"Conversation.SwipeToReplyHintTitle" = "Swipe To Reply"; +"Conversation.SwipeToReplyHintText" = "Swipe left on any message to reply to it."; diff --git a/Wallet/Sources/AppDelegate.swift b/Wallet/Sources/AppDelegate.swift index 57d9cffa2e..cf24579590 100644 --- a/Wallet/Sources/AppDelegate.swift +++ b/Wallet/Sources/AppDelegate.swift @@ -333,7 +333,7 @@ private final class WalletContextImpl: NSObject, WalletContext, UIImagePickerCon } } - func pickImage(completion: @escaping (UIImage) -> Void) { + func pickImage(present: @escaping (ViewController) -> Void, completion: @escaping (UIImage) -> Void) { self.currentImagePickerCompletion = completion let pickerController = UIImagePickerController() diff --git a/Watch/Extension/TGNotificationController.m b/Watch/Extension/TGNotificationController.m index b775ddfd15..55e5fd8ab2 100644 --- a/Watch/Extension/TGNotificationController.m +++ b/Watch/Extension/TGNotificationController.m @@ -389,6 +389,11 @@ completionBlock(); } +- (NSArray *)suggestionsForResponseToActionWithIdentifier:(NSString *)identifier forNotification:(UNNotification *)notification inputLanguage:(NSString *)inputLanguage +{ + return [TGInputController suggestionsForText:nil]; +} + - (NSArray *)suggestionsForResponseToActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)localNotification inputLanguage:(NSString *)inputLanguage { return [TGInputController suggestionsForText:nil]; diff --git a/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift b/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift index 5e784e7d54..6c83086622 100644 --- a/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift +++ b/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift @@ -413,7 +413,9 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll self.requestLayout?(.immediate) } - self.deleteButton.isHidden = origin == nil + if origin == nil { + self.deleteButton.isHidden = true + } } func setMessage(_ message: Message) { @@ -830,7 +832,7 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll if !ask && items.count == 1 { let _ = deleteMessagesInteractively(postbox: strongSelf.context.account.postbox, messageIds: messages.map { $0.id }, type: .forEveryone).start() strongSelf.controllerInteraction?.dismissController() - } else { + } else if !items.isEmpty { actionSheet.setItemGroups([ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ ActionSheetButtonItem(title: strongSelf.strings.Common_Cancel, color: .accent, action: { [weak actionSheet] in actionSheet?.dismissAnimated() diff --git a/submodules/QrCode/Sources/QrCode.swift b/submodules/QrCode/Sources/QrCode.swift index a5b350c26a..6916f5c9cf 100644 --- a/submodules/QrCode/Sources/QrCode.swift +++ b/submodules/QrCode/Sources/QrCode.swift @@ -45,29 +45,29 @@ public func qrCode(string: String, color: UIColor, backgroundColor: UIColor? = n |> map { data, size, bytesPerRow in return { arguments in let context = DrawingContext(size: arguments.drawingSize, scale: arguments.scale ?? 0.0, clear: true) - + let side = floorToScreenPixels(arguments.drawingSize.width / CGFloat(size)) + let padding: CGFloat = floor((arguments.drawingSize.width - CGFloat(side * CGFloat(size))) / 2.0) + + let drawingRect = arguments.drawingRect + let fittedSize = arguments.imageSize.aspectFilled(arguments.boundingSize).fitted(arguments.imageSize) + let fittedRect = CGRect(origin: CGPoint(x: drawingRect.origin.x + (drawingRect.size.width - fittedSize.width) / 2.0, y: drawingRect.origin.y + (drawingRect.size.height - fittedSize.height) / 2.0), size: fittedSize) + + let codeScale: CGFloat = 1.10256 + let clipSide = fittedRect.width * 0.23124 + let clipRect = CGRect(x: fittedRect.midX - clipSide / 2.0, y: fittedRect.midY - clipSide / 2.0, width: clipSide, height: clipSide) + let cutout: (Int, Int)? if case .none = icon { cutout = nil } else { - switch size { - case 39: - cutout = (14, 24) - case 43: - cutout = (15, 27) - case 47: - cutout = (17, 29) - case 51: - cutout = (19, 31) - case 55: - cutout = (21, 33) - case 59: - cutout = (22, 36) - case 63: - cutout = (23, 39) - default: - cutout = (16, 26) + var cutoutSize = Int(ceil((clipSide + side * 2.0) / side)) + if size == 39 { + cutoutSize = 11 + } else if cutoutSize % 2 == 0 { + cutoutSize += 1 } + let start = (size - cutoutSize) / 2 + cutout = (start, start + cutoutSize - 1) } func valueAt(x: Int, y: Int) -> Bool { if x >= 0 && x < size && y >= 0 && y < size { @@ -87,9 +87,6 @@ public func qrCode(string: String, color: UIColor, backgroundColor: UIColor? = n } } - let side = floorToScreenPixels(arguments.drawingSize.width / CGFloat(size)) - let padding: CGFloat = floor((arguments.drawingSize.width - CGFloat(side * CGFloat(size))) / 2.0) - let squareSize = CGSize(width: side, height: side) let tmpContext = DrawingContext(size: CGSize(width: squareSize.width * 4.0, height: squareSize.height), scale: arguments.scale ?? 0.0, clear: true) tmpContext.withContext { c in @@ -233,14 +230,7 @@ public func qrCode(string: String, color: UIColor, backgroundColor: UIColor? = n c.translateBy(x: -padding, y: -padding) - let drawingRect = arguments.drawingRect - let fittedSize = arguments.imageSize.aspectFilled(arguments.boundingSize).fitted(arguments.imageSize) - let fittedRect = CGRect(origin: CGPoint(x: drawingRect.origin.x + (drawingRect.size.width - fittedSize.width) / 2.0, y: drawingRect.origin.y + (drawingRect.size.height - fittedSize.height) / 2.0), size: fittedSize) - - let codeScale: CGFloat = 43.0 / 39.0 - let clipSide = 56.0 * fittedRect.width / 267.0 * codeScale - let clipRect = CGRect(x: fittedRect.midX - clipSide / 2.0, y: fittedRect.midY - clipSide / 2.0, width: clipSide, height: clipSide) - + switch icon { case .proxy: let iconScale = fittedRect.width / 420.0 * codeScale diff --git a/submodules/TelegramCore/TelegramCore/MessageUtils.swift b/submodules/TelegramCore/TelegramCore/MessageUtils.swift index 3a354e6fab..19ee918d54 100644 --- a/submodules/TelegramCore/TelegramCore/MessageUtils.swift +++ b/submodules/TelegramCore/TelegramCore/MessageUtils.swift @@ -193,7 +193,7 @@ public extension Message { func effectivelyFailed(timestamp: Int32) -> Bool { if self.flags.contains(.Failed) { return true - } else if self.id.namespace == Namespaces.Message.ScheduledCloud { + } else if self.id.namespace == Namespaces.Message.ScheduledCloud && self.timestamp != 0x7FFFFFFE { return timestamp > self.timestamp + 60 } else { return false diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index f4a86e840e..f7fb44dc9d 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -1788,3241 +1788,3245 @@ public final class PresentationStrings: Equatable { return formatWithArgumentRanges(self._s[1483]!, self._r[1483]!, [_0]) } public var GroupInfo_Permissions_Removed: String { return self._s[1484]! } - public var Passport_Identity_GenderMale: String { return self._s[1485]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[1485]! } + public var Passport_Identity_GenderMale: String { return self._s[1486]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1486]!, self._r[1486]!, [_0]) + return formatWithArgumentRanges(self._s[1487]!, self._r[1487]!, [_0]) } - public var Notifications_PermissionsKeepDisabled: String { return self._s[1487]! } - public var Conversation_JumpToDate: String { return self._s[1488]! } - public var Contacts_GlobalSearch: String { return self._s[1489]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1490]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[1491]! } - public var Profile_MessageLifetime1d: String { return self._s[1492]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[1488]! } + public var Conversation_JumpToDate: String { return self._s[1489]! } + public var Contacts_GlobalSearch: String { return self._s[1490]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1491]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[1492]! } + public var Profile_MessageLifetime1d: String { return self._s[1493]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1493]!, self._r[1493]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1494]!, self._r[1494]!, [_1, _2]) } - public var StickerPack_BuiltinPackName: String { return self._s[1496]! } + public var StickerPack_BuiltinPackName: String { return self._s[1497]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1497]!, self._r[1497]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1498]!, self._r[1498]!, [_1, _2]) } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1498]! } - public var Passport_InfoTitle: String { return self._s[1500]! } - public var Notifications_PermissionsUnreachableText: String { return self._s[1501]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1499]! } + public var Passport_InfoTitle: String { return self._s[1501]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[1502]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1505]!, self._r[1505]!, [_0]) + return formatWithArgumentRanges(self._s[1506]!, self._r[1506]!, [_0]) } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1506]!, self._r[1506]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1507]!, self._r[1507]!, [_1, _2]) } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1507]! } - public var Profile_BotInfo: String { return self._s[1508]! } - public var Watch_Compose_CreateMessage: String { return self._s[1509]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1510]! } - public var Month_ShortNovember: String { return self._s[1511]! } - public var Conversation_ScamWarning: String { return self._s[1512]! } - public var Wallpaper_SetCustomBackground: String { return self._s[1513]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1514]! } - public var NotificationsSound_Chime: String { return self._s[1515]! } - public var Passport_Language_ko: String { return self._s[1517]! } - public var InviteText_URL: String { return self._s[1518]! } - public var TextFormat_Monospace: String { return self._s[1519]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1508]! } + public var Profile_BotInfo: String { return self._s[1509]! } + public var Watch_Compose_CreateMessage: String { return self._s[1510]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1511]! } + public var Month_ShortNovember: String { return self._s[1512]! } + public var Conversation_ScamWarning: String { return self._s[1513]! } + public var Wallpaper_SetCustomBackground: String { return self._s[1514]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1515]! } + public var NotificationsSound_Chime: String { return self._s[1516]! } + public var Passport_Language_ko: String { return self._s[1518]! } + public var InviteText_URL: String { return self._s[1519]! } + public var TextFormat_Monospace: String { return self._s[1520]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1520]!, self._r[1520]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1521]!, self._r[1521]!, [_1, _2, _3]) } - public var EditTheme_Edit_BottomInfo: String { return self._s[1521]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[1522]! } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1522]!, self._r[1522]!, [_0]) + return formatWithArgumentRanges(self._s[1523]!, self._r[1523]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1523]!, self._r[1523]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1524]!, self._r[1524]!, [_1, _2]) } - public var Wallet_Words_Title: String { return self._s[1524]! } - public var Wallet_Month_ShortMay: String { return self._s[1525]! } - public var EditTheme_CreateTitle: String { return self._s[1527]! } - public var Passport_InfoLearnMore: String { return self._s[1528]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[1529]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1530]! } - public var Your_card_has_expired: String { return self._s[1531]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[1532]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1533]! } - public var Conversation_Report: String { return self._s[1537]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1538]! } - public var Notification_MessageLifetime1m: String { return self._s[1539]! } - public var Privacy_ContactsTitle: String { return self._s[1540]! } - public var Conversation_ShareMyContactInfo: String { return self._s[1541]! } - public var Wallet_WordCheck_Title: String { return self._s[1542]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1543]! } - public var Channel_Members_Title: String { return self._s[1544]! } - public var Map_OpenInWaze: String { return self._s[1545]! } - public var Login_PhoneBannedError: String { return self._s[1546]! } + public var Wallet_Words_Title: String { return self._s[1525]! } + public var Wallet_Month_ShortMay: String { return self._s[1526]! } + public var EditTheme_CreateTitle: String { return self._s[1528]! } + public var Passport_InfoLearnMore: String { return self._s[1529]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[1530]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1531]! } + public var Your_card_has_expired: String { return self._s[1532]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[1533]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1534]! } + public var Conversation_Report: String { return self._s[1538]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1539]! } + public var Notification_MessageLifetime1m: String { return self._s[1540]! } + public var Privacy_ContactsTitle: String { return self._s[1541]! } + public var Conversation_ShareMyContactInfo: String { return self._s[1542]! } + public var Wallet_WordCheck_Title: String { return self._s[1543]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1544]! } + public var Channel_Members_Title: String { return self._s[1545]! } + public var Map_OpenInWaze: String { return self._s[1546]! } + public var Login_PhoneBannedError: String { return self._s[1547]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1547]!, self._r[1547]!, [_0]) + return formatWithArgumentRanges(self._s[1548]!, self._r[1548]!, [_0]) } - public var Group_Management_AddModeratorHelp: String { return self._s[1548]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[1549]! } - public var Common_OK: String { return self._s[1550]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1551]! } - public var Wallet_Words_NotDoneResponse: String { return self._s[1552]! } - public var Cache_Music: String { return self._s[1553]! } - public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1554]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1555]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1556]! } + public var Group_Management_AddModeratorHelp: String { return self._s[1549]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[1550]! } + public var Common_OK: String { return self._s[1551]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1552]! } + public var Wallet_Words_NotDoneResponse: String { return self._s[1553]! } + public var Cache_Music: String { return self._s[1554]! } + public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1555]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1556]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1557]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1557]!, self._r[1557]!, [_1]) + return formatWithArgumentRanges(self._s[1558]!, self._r[1558]!, [_1]) } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1558]!, self._r[1558]!, [_0]) - } - public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_0]) } - public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1560]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1562]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[1563]! } - public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1565]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1566]! } - public var State_ConnectingToProxyInfo: String { return self._s[1567]! } - public var Message_VideoMessage: String { return self._s[1569]! } - public var ChannelInfo_DeleteChannel: String { return self._s[1570]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1571]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[1572]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1573]! } - public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1574]!, self._r[1574]!, [_1, _2, _3]) + public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_0]) } - public var WallpaperPreview_SwipeBottomText: String { return self._s[1575]! } - public var Activity_RecordingAudio: String { return self._s[1576]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[1577]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1578]! } - public var Wallet_Info_Address: String { return self._s[1579]! } + public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1561]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1563]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[1564]! } + public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1566]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1567]! } + public var State_ConnectingToProxyInfo: String { return self._s[1568]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[1569]! } + public var Message_VideoMessage: String { return self._s[1571]! } + public var ChannelInfo_DeleteChannel: String { return self._s[1572]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1573]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[1574]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1575]! } + public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_1, _2, _3]) + } + public var WallpaperPreview_SwipeBottomText: String { return self._s[1577]! } + public var Activity_RecordingAudio: String { return self._s[1578]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[1579]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1580]! } + public var Wallet_Info_Address: String { return self._s[1581]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1581]!, self._r[1581]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1583]!, self._r[1583]!, [_0, _1]) } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1585]!, self._r[1585]!, [_0]) + return formatWithArgumentRanges(self._s[1587]!, self._r[1587]!, [_0]) } - public var Conversation_ApplyLocalization: String { return self._s[1586]! } - public var UserInfo_AddPhone: String { return self._s[1587]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1588]! } + public var Conversation_ApplyLocalization: String { return self._s[1588]! } + public var UserInfo_AddPhone: String { return self._s[1589]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1590]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1589]!, self._r[1589]!, [_0]) + return formatWithArgumentRanges(self._s[1591]!, self._r[1591]!, [_0]) } - public var Passport_Scans: String { return self._s[1591]! } - public var BlockedUsers_Unblock: String { return self._s[1592]! } + public var Passport_Scans: String { return self._s[1593]! } + public var BlockedUsers_Unblock: String { return self._s[1594]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1593]!, self._r[1593]!, [_1]) + return formatWithArgumentRanges(self._s[1595]!, self._r[1595]!, [_1]) } - public var Channel_Management_LabelCreator: String { return self._s[1594]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[1595]! } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1596]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1597]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1598]! } + public var Channel_Management_LabelCreator: String { return self._s[1596]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[1597]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1598]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1599]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1600]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1599]!, self._r[1599]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1601]!, self._r[1601]!, [_0, _1, _2]) } - public var Login_PhoneNumberHelp: String { return self._s[1600]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1601]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[1602]! } - public var ChannelIntro_CreateChannel: String { return self._s[1603]! } - public var Conversation_UnreadMessages: String { return self._s[1604]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1605]! } - public var Channel_AdminLog_EmptyText: String { return self._s[1606]! } - public var Theme_Context_Apply: String { return self._s[1607]! } - public var Notification_GroupActivated: String { return self._s[1608]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[1609]! } - public var Wallet_Intro_CreateWallet: String { return self._s[1610]! } + public var Login_PhoneNumberHelp: String { return self._s[1602]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1603]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[1604]! } + public var ChannelIntro_CreateChannel: String { return self._s[1605]! } + public var Conversation_UnreadMessages: String { return self._s[1606]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1607]! } + public var Channel_AdminLog_EmptyText: String { return self._s[1608]! } + public var Theme_Context_Apply: String { return self._s[1609]! } + public var Notification_GroupActivated: String { return self._s[1610]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[1611]! } + public var Wallet_Intro_CreateWallet: String { return self._s[1612]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1611]!, self._r[1611]!, [_0]) + return formatWithArgumentRanges(self._s[1613]!, self._r[1613]!, [_0]) } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1612]!, self._r[1612]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1614]!, self._r[1614]!, [_0, _1]) } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1614]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1616]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1615]!, self._r[1615]!, [_0]) + return formatWithArgumentRanges(self._s[1617]!, self._r[1617]!, [_0]) } - public var Undo_DeletedChannel: String { return self._s[1616]! } - public var CallFeedback_AddComment: String { return self._s[1617]! } + public var Undo_DeletedChannel: String { return self._s[1618]! } + public var CallFeedback_AddComment: String { return self._s[1619]! } public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1618]!, self._r[1618]!, [_0]) - } - public var Document_TargetConfirmationFormat: String { return self._s[1619]! } - public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1620]!, self._r[1620]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[1621]! } + public var Document_TargetConfirmationFormat: String { return self._s[1621]! } + public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1622]!, self._r[1622]!, [_0]) + } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[1623]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1622]!, self._r[1622]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[1624]!, self._r[1624]!, [_1, _2, _3, _4]) } - public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1623]! } - public var Theme_ErrorNotFound: String { return self._s[1624]! } - public var Contacts_SortByName: String { return self._s[1625]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1626]! } + public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1625]! } + public var Theme_ErrorNotFound: String { return self._s[1626]! } + public var Contacts_SortByName: String { return self._s[1627]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1628]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1628]!, self._r[1628]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1630]!, self._r[1630]!, [_1, _2, _3]) } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1629]! } - public var ScheduledMessages_EditTime: String { return self._s[1630]! } - public var Conversation_ClearSelfHistory: String { return self._s[1631]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1632]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[1633]! } - public var Stickers_SuggestNone: String { return self._s[1634]! } - public var ChatSettings_Cache: String { return self._s[1635]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1636]! } - public var Media_ShareThisPhoto: String { return self._s[1637]! } - public var Chat_SlowmodeTooltipPending: String { return self._s[1638]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1639]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1640]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1641]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1642]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1643]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1631]! } + public var ScheduledMessages_EditTime: String { return self._s[1632]! } + public var Conversation_ClearSelfHistory: String { return self._s[1633]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1634]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[1635]! } + public var Stickers_SuggestNone: String { return self._s[1636]! } + public var ChatSettings_Cache: String { return self._s[1637]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1638]! } + public var Media_ShareThisPhoto: String { return self._s[1639]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[1640]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1641]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1642]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1643]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1644]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1645]! } public func Wallet_SecureStorageReset_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1644]!, self._r[1644]!, [_0]) + return formatWithArgumentRanges(self._s[1646]!, self._r[1646]!, [_0]) } - public var Permissions_CellularDataTitle_v0: String { return self._s[1645]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1647]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1648]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[1649]! } - public var Map_OpenIn: String { return self._s[1650]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[1647]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1649]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1650]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[1651]! } + public var Map_OpenIn: String { return self._s[1652]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1653]!, self._r[1653]!, [_1]) + return formatWithArgumentRanges(self._s[1655]!, self._r[1655]!, [_1]) } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1654]!, self._r[1654]!, [_0]) + return formatWithArgumentRanges(self._s[1656]!, self._r[1656]!, [_0]) } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1655]! } - public var MessagePoll_LabelClosed: String { return self._s[1656]! } - public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1658]! } - public var Wallet_Send_SendAnyway: String { return self._s[1659]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1660]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[1661]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1662]! } - public var Login_SelectCountry_Title: String { return self._s[1663]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1664]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1657]! } + public var MessagePoll_LabelClosed: String { return self._s[1658]! } + public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1660]! } + public var Wallet_Send_SendAnyway: String { return self._s[1661]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1662]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[1663]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1664]! } + public var Login_SelectCountry_Title: String { return self._s[1665]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1666]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1665]!, self._r[1665]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1667]!, self._r[1667]!, [_1, _2]) } - public var Channel_AdminLog_ChangeInfo: String { return self._s[1666]! } - public var Watch_Suggestion_BRB: String { return self._s[1667]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1668]! } - public var Contacts_PermissionsTitle: String { return self._s[1669]! } - public var Conversation_RestrictedInline: String { return self._s[1670]! } - public var StickerPack_ViewPack: String { return self._s[1672]! } - public var Wallet_UnknownError: String { return self._s[1673]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[1668]! } + public var Watch_Suggestion_BRB: String { return self._s[1669]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1670]! } + public var Contacts_PermissionsTitle: String { return self._s[1671]! } + public var Conversation_RestrictedInline: String { return self._s[1672]! } + public var StickerPack_ViewPack: String { return self._s[1674]! } + public var Wallet_UnknownError: String { return self._s[1675]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1674]!, self._r[1674]!, [_0]) + return formatWithArgumentRanges(self._s[1676]!, self._r[1676]!, [_0]) } - public var Compose_NewChannel: String { return self._s[1676]! } - public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1679]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1681]! } - public var Channel_Info_Stickers: String { return self._s[1682]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[1683]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1684]! } - public var Passport_DeletePersonalDetails: String { return self._s[1685]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[1686]! } - public var Channel_DiscussionGroupInfo: String { return self._s[1687]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1688]! } - public var Conversation_SearchNoResults: String { return self._s[1690]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1691]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1692]! } - public var Login_Code: String { return self._s[1693]! } - public var EditTheme_Create_BottomInfo: String { return self._s[1694]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[1695]! } - public var Weekday_ShortThursday: String { return self._s[1696]! } - public var Resolve_ErrorNotFound: String { return self._s[1698]! } - public var LastSeen_Offline: String { return self._s[1699]! } - public var PeopleNearby_NoMembers: String { return self._s[1700]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[1701]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1702]! } - public var GroupInfo_Title: String { return self._s[1704]! } - public var NotificationsSound_Note: String { return self._s[1705]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1706]! } - public var Watch_Message_Poll: String { return self._s[1707]! } - public var Privacy_Calls: String { return self._s[1708]! } + public var Compose_NewChannel: String { return self._s[1678]! } + public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1681]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1683]! } + public var Channel_Info_Stickers: String { return self._s[1684]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[1685]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1686]! } + public var Passport_DeletePersonalDetails: String { return self._s[1687]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[1688]! } + public var Channel_DiscussionGroupInfo: String { return self._s[1689]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1690]! } + public var Conversation_SearchNoResults: String { return self._s[1692]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1693]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1694]! } + public var Login_Code: String { return self._s[1695]! } + public var EditTheme_Create_BottomInfo: String { return self._s[1696]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[1697]! } + public var Weekday_ShortThursday: String { return self._s[1698]! } + public var Resolve_ErrorNotFound: String { return self._s[1700]! } + public var LastSeen_Offline: String { return self._s[1701]! } + public var PeopleNearby_NoMembers: String { return self._s[1702]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[1703]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1704]! } + public var GroupInfo_Title: String { return self._s[1706]! } + public var NotificationsSound_Note: String { return self._s[1707]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1708]! } + public var Watch_Message_Poll: String { return self._s[1709]! } + public var Privacy_Calls: String { return self._s[1710]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1709]!, self._r[1709]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1711]!, self._r[1711]!, [_1, _2, _3]) } - public var Month_ShortAugust: String { return self._s[1710]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[1711]! } - public var Notifications_Reset: String { return self._s[1712]! } - public var Conversation_Pin: String { return self._s[1713]! } - public var Passport_Language_lv: String { return self._s[1714]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1715]! } - public var BlockedUsers_Info: String { return self._s[1716]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1718]! } - public var Watch_Conversation_Unblock: String { return self._s[1720]! } + public var Month_ShortAugust: String { return self._s[1712]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[1713]! } + public var Notifications_Reset: String { return self._s[1714]! } + public var Conversation_Pin: String { return self._s[1715]! } + public var Passport_Language_lv: String { return self._s[1716]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1717]! } + public var BlockedUsers_Info: String { return self._s[1718]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1720]! } + public var Watch_Conversation_Unblock: String { return self._s[1722]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1721]!, self._r[1721]!, [_0]) + return formatWithArgumentRanges(self._s[1723]!, self._r[1723]!, [_0]) } - public var CloudStorage_Title: String { return self._s[1722]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1723]! } + public var CloudStorage_Title: String { return self._s[1724]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1725]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1724]!, self._r[1724]!, [_0]) + return formatWithArgumentRanges(self._s[1726]!, self._r[1726]!, [_0]) } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1725]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1726]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1727]! } - public var Passport_Address_EditBankStatement: String { return self._s[1728]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1727]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1728]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1729]! } + public var Passport_Address_EditBankStatement: String { return self._s[1730]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1729]!, self._r[1729]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1731]!, self._r[1731]!, [_1, _2]) } - public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1730]! } - public var ShareMenu_Comment: String { return self._s[1731]! } - public var Permissions_ContactsTitle_v0: String { return self._s[1732]! } - public var Notifications_PermissionsTitle: String { return self._s[1733]! } - public var GroupPermission_NoSendLinks: String { return self._s[1734]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1735]! } - public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1736]! } - public var Settings_Support: String { return self._s[1737]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1738]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1739]! } - public var Privacy_Forwards_Preview: String { return self._s[1740]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[1741]! } - public var Watch_Stickers_StickerPacks: String { return self._s[1742]! } - public var Common_Select: String { return self._s[1744]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1745]! } - public var WallpaperSearch_ColorGray: String { return self._s[1748]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1749]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1750]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[1751]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1752]! } - public var Widget_AuthRequired: String { return self._s[1753]! } - public var Camera_FlashOn: String { return self._s[1754]! } - public var Conversation_ContextMenuLookUp: String { return self._s[1755]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[1756]! } - public var Watch_Suggestion_OK: String { return self._s[1757]! } + public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1732]! } + public var ShareMenu_Comment: String { return self._s[1733]! } + public var Permissions_ContactsTitle_v0: String { return self._s[1734]! } + public var Notifications_PermissionsTitle: String { return self._s[1735]! } + public var GroupPermission_NoSendLinks: String { return self._s[1736]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1737]! } + public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1738]! } + public var Settings_Support: String { return self._s[1739]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1740]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1741]! } + public var Privacy_Forwards_Preview: String { return self._s[1742]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[1743]! } + public var Watch_Stickers_StickerPacks: String { return self._s[1744]! } + public var Common_Select: String { return self._s[1746]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1747]! } + public var WallpaperSearch_ColorGray: String { return self._s[1750]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1751]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1752]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[1753]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1754]! } + public var Widget_AuthRequired: String { return self._s[1755]! } + public var Camera_FlashOn: String { return self._s[1756]! } + public var Conversation_ContextMenuLookUp: String { return self._s[1757]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[1758]! } + public var Watch_Suggestion_OK: String { return self._s[1759]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1759]!, self._r[1759]!, [_0]) - } - public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1761]!, self._r[1761]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[1762]! } - public var DialogList_AdLabel: String { return self._s[1763]! } - public var WatchRemote_NotificationText: String { return self._s[1764]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1765]! } - public var Conversation_ReportSpam: String { return self._s[1766]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1767]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[1769]! } - public var PhoneLabel_Title: String { return self._s[1770]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[1771]! } - public var Settings_ChangePhoneNumber: String { return self._s[1772]! } - public var Notifications_ExceptionsTitle: String { return self._s[1773]! } - public var Notifications_AlertTones: String { return self._s[1774]! } - public var Call_ReportIncludeLogDescription: String { return self._s[1775]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1776]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1777]! } - public var VoiceOver_Chat_Photo: String { return self._s[1779]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[1780]! } - public var ReportPeer_ReasonOther: String { return self._s[1781]! } - public var ChatList_Context_JoinChannel: String { return self._s[1782]! } - public var KeyCommand_ScrollDown: String { return self._s[1784]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[1785]! } + public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1763]!, self._r[1763]!, [_0]) + } + public var TextFormat_Strikethrough: String { return self._s[1764]! } + public var DialogList_AdLabel: String { return self._s[1765]! } + public var WatchRemote_NotificationText: String { return self._s[1766]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1767]! } + public var Conversation_ReportSpam: String { return self._s[1768]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1769]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[1771]! } + public var PhoneLabel_Title: String { return self._s[1772]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[1773]! } + public var Settings_ChangePhoneNumber: String { return self._s[1774]! } + public var Notifications_ExceptionsTitle: String { return self._s[1775]! } + public var Notifications_AlertTones: String { return self._s[1776]! } + public var Call_ReportIncludeLogDescription: String { return self._s[1777]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1778]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1779]! } + public var VoiceOver_Chat_Photo: String { return self._s[1781]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[1782]! } + public var ReportPeer_ReasonOther: String { return self._s[1783]! } + public var ChatList_Context_JoinChannel: String { return self._s[1784]! } + public var KeyCommand_ScrollDown: String { return self._s[1786]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[1787]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1786]!, self._r[1786]!, [_0]) + return formatWithArgumentRanges(self._s[1788]!, self._r[1788]!, [_0]) } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1787]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1788]! } - public var AuthSessions_LogOut: String { return self._s[1789]! } - public var Passport_Identity_TypeInternalPassport: String { return self._s[1790]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1791]! } - public var Passport_Phone_Title: String { return self._s[1792]! } - public var ContactList_Context_StartSecretChat: String { return self._s[1793]! } - public var Settings_PhoneNumber: String { return self._s[1794]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1789]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1790]! } + public var AuthSessions_LogOut: String { return self._s[1791]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[1792]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1793]! } + public var Passport_Phone_Title: String { return self._s[1794]! } + public var ContactList_Context_StartSecretChat: String { return self._s[1795]! } + public var Settings_PhoneNumber: String { return self._s[1796]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1795]!, self._r[1795]!, [_0]) + return formatWithArgumentRanges(self._s[1797]!, self._r[1797]!, [_0]) } - public var NotificationsSound_Alert: String { return self._s[1796]! } - public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1797]! } - public var WebSearch_SearchNoResults: String { return self._s[1798]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1800]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1801]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[1802]! } - public var PhotoEditor_CurvesTool: String { return self._s[1803]! } - public var Checkout_PaymentMethod: String { return self._s[1805]! } + public var NotificationsSound_Alert: String { return self._s[1798]! } + public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1799]! } + public var WebSearch_SearchNoResults: String { return self._s[1800]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1802]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1803]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[1804]! } + public var PhotoEditor_CurvesTool: String { return self._s[1805]! } + public var Checkout_PaymentMethod: String { return self._s[1807]! } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1806]!, self._r[1806]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1808]!, self._r[1808]!, [_1, _2]) } - public var Contacts_AccessDeniedError: String { return self._s[1807]! } - public var Camera_PhotoMode: String { return self._s[1810]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1811]! } - public var Passport_Address_AddUtilityBill: String { return self._s[1813]! } - public var CallSettings_OnMobile: String { return self._s[1814]! } - public var Tour_Text2: String { return self._s[1815]! } + public var Contacts_AccessDeniedError: String { return self._s[1809]! } + public var Camera_PhotoMode: String { return self._s[1812]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1813]! } + public var Passport_Address_AddUtilityBill: String { return self._s[1815]! } + public var CallSettings_OnMobile: String { return self._s[1816]! } + public var Tour_Text2: String { return self._s[1817]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1816]!, self._r[1816]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1818]!, self._r[1818]!, [_1, _2]) } - public var DialogList_EncryptionProcessing: String { return self._s[1818]! } - public var Permissions_Skip: String { return self._s[1819]! } - public var Wallet_Words_NotDoneOk: String { return self._s[1820]! } - public var SecretImage_Title: String { return self._s[1821]! } - public var Watch_MessageView_Title: String { return self._s[1822]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1823]! } - public var AttachmentMenu_Poll: String { return self._s[1824]! } + public var DialogList_EncryptionProcessing: String { return self._s[1820]! } + public var Permissions_Skip: String { return self._s[1821]! } + public var Wallet_Words_NotDoneOk: String { return self._s[1822]! } + public var SecretImage_Title: String { return self._s[1823]! } + public var Watch_MessageView_Title: String { return self._s[1824]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1825]! } + public var AttachmentMenu_Poll: String { return self._s[1826]! } public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1825]!, self._r[1825]!, [_0]) + return formatWithArgumentRanges(self._s[1827]!, self._r[1827]!, [_0]) } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1826]!, self._r[1826]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1828]!, self._r[1828]!, [_1, _2]) } - public var Notification_CallCanceled: String { return self._s[1827]! } - public var WallpaperPreview_Title: String { return self._s[1828]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1829]! } - public var Settings_ProxyConnecting: String { return self._s[1830]! } - public var Settings_CheckPhoneNumberText: String { return self._s[1832]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[1833]! } - public var Wallet_Intro_Title: String { return self._s[1834]! } - public var Profile_MessageLifetime5s: String { return self._s[1835]! } - public var Username_InvalidCharacters: String { return self._s[1836]! } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1837]! } - public var ScheduledMessages_ClearAll: String { return self._s[1838]! } - public var WallpaperPreview_CropBottomText: String { return self._s[1839]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[1840]! } - public var Settings_AddAccount: String { return self._s[1841]! } - public var Notification_CreatedChannel: String { return self._s[1844]! } + public var Notification_CallCanceled: String { return self._s[1829]! } + public var WallpaperPreview_Title: String { return self._s[1830]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1831]! } + public var Settings_ProxyConnecting: String { return self._s[1832]! } + public var Settings_CheckPhoneNumberText: String { return self._s[1834]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[1835]! } + public var Wallet_Intro_Title: String { return self._s[1836]! } + public var Profile_MessageLifetime5s: String { return self._s[1837]! } + public var Username_InvalidCharacters: String { return self._s[1838]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1839]! } + public var ScheduledMessages_ClearAll: String { return self._s[1840]! } + public var WallpaperPreview_CropBottomText: String { return self._s[1841]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[1842]! } + public var Settings_AddAccount: String { return self._s[1843]! } + public var Notification_CreatedChannel: String { return self._s[1846]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1845]!, self._r[1845]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1847]!, self._r[1847]!, [_1, _2, _3]) } - public var Passcode_AppLockedAlert: String { return self._s[1847]! } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1848]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[1849]! } - public var Contacts_TopSection: String { return self._s[1850]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1851]! } + public var Passcode_AppLockedAlert: String { return self._s[1849]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1850]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[1851]! } + public var Contacts_TopSection: String { return self._s[1852]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1853]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1852]!, self._r[1852]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1854]!, self._r[1854]!, [_0, _1]) } - public var Wallet_Info_Receive: String { return self._s[1853]! } - public var Wallet_Completed_ViewWallet: String { return self._s[1854]! } + public var Wallet_Info_Receive: String { return self._s[1855]! } + public var Wallet_Completed_ViewWallet: String { return self._s[1856]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1855]!, self._r[1855]!, [_0]) + return formatWithArgumentRanges(self._s[1857]!, self._r[1857]!, [_0]) } - public var ReportPeer_ReasonSpam: String { return self._s[1856]! } - public var UserInfo_TapToCall: String { return self._s[1857]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1859]! } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1860]! } - public var Common_Search: String { return self._s[1861]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1862]! } + public var ReportPeer_ReasonSpam: String { return self._s[1858]! } + public var UserInfo_TapToCall: String { return self._s[1859]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1861]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1862]! } + public var Common_Search: String { return self._s[1863]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1864]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1863]!, self._r[1863]!, [_0]) + return formatWithArgumentRanges(self._s[1865]!, self._r[1865]!, [_0]) } - public var Wallet_Month_ShortJuly: String { return self._s[1864]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1865]! } - public var Message_InvoiceLabel: String { return self._s[1866]! } - public var Conversation_InputTextPlaceholder: String { return self._s[1867]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1868]! } + public var Wallet_Month_ShortJuly: String { return self._s[1866]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1867]! } + public var Message_InvoiceLabel: String { return self._s[1868]! } + public var Conversation_InputTextPlaceholder: String { return self._s[1869]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1870]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1869]!, self._r[1869]!, [_0]) + return formatWithArgumentRanges(self._s[1871]!, self._r[1871]!, [_0]) } - public var Conversation_Info: String { return self._s[1870]! } - public var Login_InfoDeletePhoto: String { return self._s[1871]! } - public var Passport_Language_vi: String { return self._s[1873]! } - public var UserInfo_ScamUserWarning: String { return self._s[1874]! } - public var Conversation_Search: String { return self._s[1875]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1877]! } - public var ReportPeer_ReasonPornography: String { return self._s[1878]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1879]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1880]! } - public var Map_LiveLocationGroupDescription: String { return self._s[1881]! } - public var Channel_Setup_TypeHeader: String { return self._s[1882]! } - public var AuthSessions_LoggedIn: String { return self._s[1883]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1884]! } - public var Login_SmsRequestState3: String { return self._s[1885]! } - public var Passport_Address_EditUtilityBill: String { return self._s[1886]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1887]! } - public var Join_ChannelsTooMuch: String { return self._s[1888]! } - public var Channel_Edit_LinkItem: String { return self._s[1889]! } - public var Privacy_Calls_P2PNever: String { return self._s[1890]! } - public var Conversation_AddToReadingList: String { return self._s[1892]! } - public var Share_MultipleMessagesDisabled: String { return self._s[1893]! } - public var Message_Animation: String { return self._s[1894]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[1895]! } - public var Map_Unknown: String { return self._s[1896]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[1897]! } + public var Conversation_Info: String { return self._s[1872]! } + public var Login_InfoDeletePhoto: String { return self._s[1873]! } + public var Passport_Language_vi: String { return self._s[1875]! } + public var UserInfo_ScamUserWarning: String { return self._s[1876]! } + public var Conversation_Search: String { return self._s[1877]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1879]! } + public var ReportPeer_ReasonPornography: String { return self._s[1880]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1881]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1882]! } + public var Map_LiveLocationGroupDescription: String { return self._s[1883]! } + public var Channel_Setup_TypeHeader: String { return self._s[1884]! } + public var AuthSessions_LoggedIn: String { return self._s[1885]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1886]! } + public var Login_SmsRequestState3: String { return self._s[1887]! } + public var Passport_Address_EditUtilityBill: String { return self._s[1888]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1889]! } + public var Join_ChannelsTooMuch: String { return self._s[1890]! } + public var Channel_Edit_LinkItem: String { return self._s[1891]! } + public var Privacy_Calls_P2PNever: String { return self._s[1892]! } + public var Conversation_AddToReadingList: String { return self._s[1894]! } + public var Share_MultipleMessagesDisabled: String { return self._s[1895]! } + public var Message_Animation: String { return self._s[1896]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[1897]! } + public var Map_Unknown: String { return self._s[1898]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[1899]! } public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1898]!, self._r[1898]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1900]!, self._r[1900]!, [_1, _2]) } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1899]!, self._r[1899]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1901]!, self._r[1901]!, [_1, _2]) } - public var Call_StatusRequesting: String { return self._s[1900]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[1901]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1902]! } + public var Call_StatusRequesting: String { return self._s[1902]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[1903]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1904]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1903]!, self._r[1903]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1905]!, self._r[1905]!, [_1, _2]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1904]!, self._r[1904]!, [_0]) + return formatWithArgumentRanges(self._s[1906]!, self._r[1906]!, [_0]) } - public var Update_Skip: String { return self._s[1905]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[1906]! } - public var Message_PinnedPollMessage: String { return self._s[1907]! } - public var BlockedUsers_Title: String { return self._s[1908]! } + public var Update_Skip: String { return self._s[1907]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[1908]! } + public var Message_PinnedPollMessage: String { return self._s[1909]! } + public var BlockedUsers_Title: String { return self._s[1910]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1909]!, self._r[1909]!, [_1]) + return formatWithArgumentRanges(self._s[1911]!, self._r[1911]!, [_1]) } - public var Username_CheckingUsername: String { return self._s[1910]! } - public var NotificationsSound_Bell: String { return self._s[1911]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[1912]! } - public var Weekday_Monday: String { return self._s[1913]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[1914]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1915]! } - public var ChatSettings_Groups: String { return self._s[1916]! } + public var Username_CheckingUsername: String { return self._s[1912]! } + public var NotificationsSound_Bell: String { return self._s[1913]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[1914]! } + public var Weekday_Monday: String { return self._s[1915]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[1916]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1917]! } + public var ChatSettings_Groups: String { return self._s[1918]! } public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1917]!, self._r[1917]!, [_0]) + return formatWithArgumentRanges(self._s[1919]!, self._r[1919]!, [_0]) } - public var Your_card_was_declined: String { return self._s[1918]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1920]! } - public var Wallet_Month_ShortApril: String { return self._s[1921]! } - public var ChatList_Unmute: String { return self._s[1922]! } - public var PhotoEditor_CurvesAll: String { return self._s[1923]! } - public var Weekday_ShortTuesday: String { return self._s[1924]! } - public var DialogList_Read: String { return self._s[1925]! } - public var Appearance_AppIconClassic: String { return self._s[1926]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1927]! } - public var Passport_Identity_Gender: String { return self._s[1928]! } + public var Your_card_was_declined: String { return self._s[1920]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1922]! } + public var Wallet_Month_ShortApril: String { return self._s[1923]! } + public var ChatList_Unmute: String { return self._s[1924]! } + public var PhotoEditor_CurvesAll: String { return self._s[1925]! } + public var Weekday_ShortTuesday: String { return self._s[1926]! } + public var DialogList_Read: String { return self._s[1927]! } + public var Appearance_AppIconClassic: String { return self._s[1928]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1929]! } + public var Passport_Identity_Gender: String { return self._s[1930]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1929]!, self._r[1929]!, [_0]) + return formatWithArgumentRanges(self._s[1931]!, self._r[1931]!, [_0]) } - public var Target_SelectGroup: String { return self._s[1930]! } + public var Target_SelectGroup: String { return self._s[1932]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1932]!, self._r[1932]!, [_0]) + return formatWithArgumentRanges(self._s[1934]!, self._r[1934]!, [_0]) } - public var Passport_Language_en: String { return self._s[1933]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[1934]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[1935]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[1936]! } - public var ScheduledMessages_SendNow: String { return self._s[1937]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[1939]! } - public var Login_InfoHelp: String { return self._s[1940]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1941]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[1942]! } + public var Passport_Language_en: String { return self._s[1935]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[1936]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[1937]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[1938]! } + public var ScheduledMessages_SendNow: String { return self._s[1939]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[1941]! } + public var Login_InfoHelp: String { return self._s[1942]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1943]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[1944]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1943]!, self._r[1943]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1945]!, self._r[1945]!, [_1, _2]) } - public var SocksProxySetup_AddProxy: String { return self._s[1946]! } - public var CreatePoll_Title: String { return self._s[1947]! } - public var Conversation_ViewTheme: String { return self._s[1948]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[1949]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[1950]! } - public var UserInfo_GroupsInCommon: String { return self._s[1951]! } - public var Call_AudioRouteHide: String { return self._s[1952]! } + public var SocksProxySetup_AddProxy: String { return self._s[1948]! } + public var CreatePoll_Title: String { return self._s[1949]! } + public var Conversation_ViewTheme: String { return self._s[1950]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[1951]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[1952]! } + public var UserInfo_GroupsInCommon: String { return self._s[1953]! } + public var Call_AudioRouteHide: String { return self._s[1954]! } public func Wallet_Info_TransactionDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1954]!, self._r[1954]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1956]!, self._r[1956]!, [_1, _2]) } - public var ContactInfo_PhoneLabelMobile: String { return self._s[1955]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[1957]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1956]!, self._r[1956]!, [_0]) + return formatWithArgumentRanges(self._s[1958]!, self._r[1958]!, [_0]) } - public var TextFormat_Bold: String { return self._s[1957]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[1958]! } - public var Notifications_Title: String { return self._s[1959]! } - public var Group_Username_InvalidTooShort: String { return self._s[1960]! } - public var Channel_ErrorAddTooMuch: String { return self._s[1961]! } + public var TextFormat_Bold: String { return self._s[1959]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[1960]! } + public var Notifications_Title: String { return self._s[1961]! } + public var Group_Username_InvalidTooShort: String { return self._s[1962]! } + public var Channel_ErrorAddTooMuch: String { return self._s[1963]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1962]!, self._r[1962]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1964]!, self._r[1964]!, ["\(_0)"]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[1964]! } - public var Stickers_SuggestAdded: String { return self._s[1965]! } - public var Login_CountryCode: String { return self._s[1966]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[1967]! } - public var Map_GetDirections: String { return self._s[1968]! } - public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[1969]! } - public var Login_PhoneFloodError: String { return self._s[1970]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[1966]! } + public var Stickers_SuggestAdded: String { return self._s[1967]! } + public var Login_CountryCode: String { return self._s[1968]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[1969]! } + public var Map_GetDirections: String { return self._s[1970]! } + public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[1971]! } + public var Login_PhoneFloodError: String { return self._s[1972]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1971]!, self._r[1971]!, [_0]) + return formatWithArgumentRanges(self._s[1973]!, self._r[1973]!, [_0]) } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1972]!, self._r[1972]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1974]!, self._r[1974]!, [_1, _2, _3]) } - public var Settings_SetUsername: String { return self._s[1974]! } - public var Group_Location_ChangeLocation: String { return self._s[1975]! } - public var Notification_GroupInviterSelf: String { return self._s[1976]! } - public var InstantPage_TapToOpenLink: String { return self._s[1977]! } + public var Settings_SetUsername: String { return self._s[1976]! } + public var Group_Location_ChangeLocation: String { return self._s[1977]! } + public var Notification_GroupInviterSelf: String { return self._s[1978]! } + public var InstantPage_TapToOpenLink: String { return self._s[1979]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1978]!, self._r[1978]!, [_0]) + return formatWithArgumentRanges(self._s[1980]!, self._r[1980]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[1979]! } - public var SecretChat_Title: String { return self._s[1980]! } - public var Group_UpgradeNoticeText1: String { return self._s[1981]! } - public var AuthSessions_Title: String { return self._s[1982]! } + public var Watch_Suggestion_TalkLater: String { return self._s[1981]! } + public var SecretChat_Title: String { return self._s[1982]! } + public var Group_UpgradeNoticeText1: String { return self._s[1983]! } + public var AuthSessions_Title: String { return self._s[1984]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1983]!, self._r[1983]!, [_0]) + return formatWithArgumentRanges(self._s[1985]!, self._r[1985]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[1984]! } - public var Channel_About_Title: String { return self._s[1985]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[1986]! } + public var PhotoEditor_CropAuto: String { return self._s[1986]! } + public var Channel_About_Title: String { return self._s[1987]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[1988]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1988]!, self._r[1988]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1990]!, self._r[1990]!, ["\(_0)"]) } - public var VoiceOver_MessageContextReport: String { return self._s[1989]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1991]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[1992]! } + public var VoiceOver_MessageContextReport: String { return self._s[1991]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1993]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[1994]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1993]!, self._r[1993]!, [_1]) + return formatWithArgumentRanges(self._s[1995]!, self._r[1995]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1995]!, self._r[1995]!, [_0]) + return formatWithArgumentRanges(self._s[1997]!, self._r[1997]!, [_0]) } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1996]!, self._r[1996]!, [_0]) + return formatWithArgumentRanges(self._s[1998]!, self._r[1998]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[1997]! } - public var Presence_online: String { return self._s[2000]! } - public var PasscodeSettings_Title: String { return self._s[2001]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2002]! } - public var Web_OpenExternal: String { return self._s[2003]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[2005]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2006]! } - public var LocalGroup_Title: String { return self._s[2007]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[1999]! } + public var Presence_online: String { return self._s[2002]! } + public var PasscodeSettings_Title: String { return self._s[2003]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2004]! } + public var Web_OpenExternal: String { return self._s[2005]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[2007]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2008]! } + public var LocalGroup_Title: String { return self._s[2009]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2008]!, self._r[2008]!, [_0]) + return formatWithArgumentRanges(self._s[2010]!, self._r[2010]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2009]! } - public var Map_YouAreHere: String { return self._s[2010]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2011]! } + public var Map_YouAreHere: String { return self._s[2012]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2011]!, self._r[2011]!, [_0]) + return formatWithArgumentRanges(self._s[2013]!, self._r[2013]!, [_0]) } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_0]) + return formatWithArgumentRanges(self._s[2014]!, self._r[2014]!, [_0]) } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2013]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2014]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2015]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2016]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2015]!, self._r[2015]!, [_0]) + return formatWithArgumentRanges(self._s[2017]!, self._r[2017]!, [_0]) } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2016]!, self._r[2016]!, [_0]) + return formatWithArgumentRanges(self._s[2018]!, self._r[2018]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[2017]! } - public var Bot_Start: String { return self._s[2018]! } + public var SocksProxySetup_Username: String { return self._s[2019]! } + public var Bot_Start: String { return self._s[2020]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2019]!, self._r[2019]!, [_0]) + return formatWithArgumentRanges(self._s[2021]!, self._r[2021]!, [_0]) } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2020]!, self._r[2020]!, [_0]) + return formatWithArgumentRanges(self._s[2022]!, self._r[2022]!, [_0]) } - public var Contacts_SortByPresence: String { return self._s[2021]! } - public var AccentColor_Title: String { return self._s[2023]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2024]! } + public var Contacts_SortByPresence: String { return self._s[2023]! } + public var AccentColor_Title: String { return self._s[2025]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2026]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2025]!, self._r[2025]!, [_1, _2]) - } - public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2026]!, self._r[2026]!, [_0]) - } - public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2027]!, self._r[2027]!, [_1, _2]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[2028]! } - public var Login_InfoAvatarPhoto: String { return self._s[2029]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2030]! } - public var Tour_Title4: String { return self._s[2031]! } - public var Passport_Identity_Translation: String { return self._s[2032]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2033]! } - public var Login_TermsOfServiceLabel: String { return self._s[2035]! } - public var Passport_Language_it: String { return self._s[2036]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2037]! } - public var Passport_Identity_SelfieHelp: String { return self._s[2038]! } - public var Conversation_ClearAll: String { return self._s[2040]! } - public var Wallet_Send_UninitializedText: String { return self._s[2042]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[2043]! } - public var TwoStepAuth_FloodError: String { return self._s[2044]! } + public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2028]!, self._r[2028]!, [_0]) + } + public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2029]!, self._r[2029]!, [_1, _2]) + } + public var Passport_Email_EnterOtherEmail: String { return self._s[2030]! } + public var Login_InfoAvatarPhoto: String { return self._s[2031]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2032]! } + public var Tour_Title4: String { return self._s[2033]! } + public var Passport_Identity_Translation: String { return self._s[2034]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2035]! } + public var Login_TermsOfServiceLabel: String { return self._s[2037]! } + public var Passport_Language_it: String { return self._s[2038]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2039]! } + public var Passport_Identity_SelfieHelp: String { return self._s[2040]! } + public var Conversation_ClearAll: String { return self._s[2042]! } + public var Wallet_Send_UninitializedText: String { return self._s[2044]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[2045]! } + public var TwoStepAuth_FloodError: String { return self._s[2046]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2045]!, self._r[2045]!, [_1]) + return formatWithArgumentRanges(self._s[2047]!, self._r[2047]!, [_1]) } - public var Paint_Delete: String { return self._s[2046]! } + public var Paint_Delete: String { return self._s[2048]! } public func Wallet_Sent_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2047]!, self._r[2047]!, [_0]) + return formatWithArgumentRanges(self._s[2049]!, self._r[2049]!, [_0]) } - public var Privacy_AddNewPeer: String { return self._s[2048]! } + public var Privacy_AddNewPeer: String { return self._s[2050]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2049]!, self._r[2049]!, [_1]) + return formatWithArgumentRanges(self._s[2051]!, self._r[2051]!, [_1]) } - public var LogoutOptions_SetPasscodeText: String { return self._s[2050]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[2052]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2051]!, self._r[2051]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2053]!, self._r[2053]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[2052]! } + public var Message_PinnedAudioMessage: String { return self._s[2054]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2053]!, self._r[2053]!, [_0]) + return formatWithArgumentRanges(self._s[2055]!, self._r[2055]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[2054]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2055]! } - public var Wallet_Month_GenNovember: String { return self._s[2056]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[2057]! } - public var Conversation_MessageEditedLabel: String { return self._s[2058]! } + public var Notification_Mute1hMin: String { return self._s[2056]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2057]! } + public var Wallet_Month_GenNovember: String { return self._s[2058]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[2059]! } + public var Conversation_MessageEditedLabel: String { return self._s[2060]! } public func ClearCache_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2059]!, self._r[2059]!, [_0]) + return formatWithArgumentRanges(self._s[2061]!, self._r[2061]!, [_0]) } - public var Notification_Exceptions_AlwaysOff: String { return self._s[2060]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2061]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[2062]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2063]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2062]!, self._r[2062]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2064]!, self._r[2064]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[2063]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[2065]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2064]!, self._r[2064]!, [_1]) + return formatWithArgumentRanges(self._s[2066]!, self._r[2066]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[2065]! } - public var Month_GenOctober: String { return self._s[2066]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2067]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2068]! } - public var MediaPicker_TimerTooltip: String { return self._s[2070]! } - public var SharedMedia_TitleAll: String { return self._s[2071]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2074]! } - public var Conversation_RestrictedMedia: String { return self._s[2075]! } - public var AccessDenied_PhotosRestricted: String { return self._s[2076]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2078]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2079]! } + public var AccessDenied_LocationTracking: String { return self._s[2067]! } + public var Month_GenOctober: String { return self._s[2068]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2069]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2070]! } + public var MediaPicker_TimerTooltip: String { return self._s[2072]! } + public var SharedMedia_TitleAll: String { return self._s[2073]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2076]! } + public var Conversation_RestrictedMedia: String { return self._s[2077]! } + public var AccessDenied_PhotosRestricted: String { return self._s[2078]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2080]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2081]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2080]!, self._r[2080]!, [_0]) + return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[2083]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2085]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2086]! } + public var Conversation_SavedMessages: String { return self._s[2085]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2087]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2088]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_0]) - } - public var VoiceOver_Chat_YourMessage: String { return self._s[2089]! } - public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2090]!, self._r[2090]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[2091]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2092]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2091]! } + public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2092]!, self._r[2092]!, [_0]) + } + public var ReportPeer_AlertSuccess: String { return self._s[2093]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2094]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2093]!, self._r[2093]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2095]!, self._r[2095]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[2094]! } - public var PhotoEditor_FadeTool: String { return self._s[2095]! } - public var Privacy_ContactsReset: String { return self._s[2096]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2096]! } + public var PhotoEditor_FadeTool: String { return self._s[2097]! } + public var Privacy_ContactsReset: String { return self._s[2098]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2098]!, self._r[2098]!, [_0]) + return formatWithArgumentRanges(self._s[2100]!, self._r[2100]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[2099]! } - public var ChatList_Mute: String { return self._s[2100]! } + public var Message_PinnedVideoMessage: String { return self._s[2101]! } + public var ChatList_Mute: String { return self._s[2102]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2101]!, self._r[2101]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2103]!, self._r[2103]!, [_1, _2, _3]) } - public var Permissions_CellularDataText_v0: String { return self._s[2102]! } - public var ShareMenu_SelectChats: String { return self._s[2105]! } - public var ChatList_Context_Unarchive: String { return self._s[2106]! } - public var MusicPlayer_VoiceNote: String { return self._s[2107]! } - public var Conversation_RestrictedText: String { return self._s[2108]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2109]! } - public var Wallet_Month_GenApril: String { return self._s[2110]! } - public var Wallet_Month_ShortMarch: String { return self._s[2111]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2112]! } - public var Cache_Videos: String { return self._s[2113]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2114]! } - public var Wallet_Month_GenFebruary: String { return self._s[2115]! } - public var FeatureDisabled_Oops: String { return self._s[2117]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2118]! } + public var Permissions_CellularDataText_v0: String { return self._s[2104]! } + public var ShareMenu_SelectChats: String { return self._s[2107]! } + public var ChatList_Context_Unarchive: String { return self._s[2108]! } + public var MusicPlayer_VoiceNote: String { return self._s[2109]! } + public var Conversation_RestrictedText: String { return self._s[2110]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2111]! } + public var Wallet_Month_GenApril: String { return self._s[2112]! } + public var Wallet_Month_ShortMarch: String { return self._s[2113]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2114]! } + public var Cache_Videos: String { return self._s[2115]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2116]! } + public var Wallet_Month_GenFebruary: String { return self._s[2117]! } + public var FeatureDisabled_Oops: String { return self._s[2119]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2120]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2119]!, self._r[2119]!, [_0]) + return formatWithArgumentRanges(self._s[2121]!, self._r[2121]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2120]! } - public var GroupPermission_NoSendPolls: String { return self._s[2121]! } - public var Wallet_Qr_ScanCode: String { return self._s[2122]! } - public var Message_VideoExpired: String { return self._s[2124]! } - public var Notifications_Badge: String { return self._s[2125]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2126]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2127]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2128]! } - public var Username_InvalidTooShort: String { return self._s[2129]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2130]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2131]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2132]! } + public var Stickers_GroupStickersHelp: String { return self._s[2122]! } + public var GroupPermission_NoSendPolls: String { return self._s[2123]! } + public var Wallet_Qr_ScanCode: String { return self._s[2124]! } + public var Message_VideoExpired: String { return self._s[2126]! } + public var Notifications_Badge: String { return self._s[2127]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2128]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2129]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2130]! } + public var Username_InvalidTooShort: String { return self._s[2131]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2132]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2133]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2134]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2133]!, self._r[2133]!, [_1]) + return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2134]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2135]! } - public var SharedMedia_CategoryDocs: String { return self._s[2138]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2136]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2137]! } + public var SharedMedia_CategoryDocs: String { return self._s[2140]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2139]!, self._r[2139]!, [_1]) + return formatWithArgumentRanges(self._s[2141]!, self._r[2141]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2140]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2142]! } + public var Wallet_Send_UninitializedTitle: String { return self._s[2142]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2144]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2143]!, self._r[2143]!, [_1]) + return formatWithArgumentRanges(self._s[2145]!, self._r[2145]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2144]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2146]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2145]!, self._r[2145]!, [_0]) + return formatWithArgumentRanges(self._s[2147]!, self._r[2147]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2146]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2147]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2148]! } - public var Channel_UpdatePhotoItem: String { return self._s[2149]! } - public var GroupInfo_LeftStatus: String { return self._s[2150]! } - public var Watch_MessageView_Forward: String { return self._s[2152]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2153]! } - public var Cache_ClearEmpty: String { return self._s[2155]! } - public var Localization_LanguageName: String { return self._s[2156]! } - public var WebSearch_GIFs: String { return self._s[2157]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2158]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2159]! } - public var Common_Back: String { return self._s[2160]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2161]! } - public var Wallet_Send_Send: String { return self._s[2162]! } + public var ChatSettings_PrivateChats: String { return self._s[2148]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2149]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2150]! } + public var Channel_UpdatePhotoItem: String { return self._s[2151]! } + public var GroupInfo_LeftStatus: String { return self._s[2152]! } + public var Watch_MessageView_Forward: String { return self._s[2154]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2155]! } + public var Cache_ClearEmpty: String { return self._s[2157]! } + public var Localization_LanguageName: String { return self._s[2158]! } + public var WebSearch_GIFs: String { return self._s[2159]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2160]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2161]! } + public var Common_Back: String { return self._s[2162]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2163]! } + public var Wallet_Send_Send: String { return self._s[2164]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2163]!, self._r[2163]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2165]!, self._r[2165]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2164]! } - public var Wallet_Month_GenJune: String { return self._s[2165]! } - public var Passport_Email_Help: String { return self._s[2166]! } - public var Watch_Conversation_Reply: String { return self._s[2168]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2170]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2171]! } - public var Channel_BanUser_Unban: String { return self._s[2173]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2174]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2175]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2177]! } - public var Wallet_Send_AddressHeader: String { return self._s[2178]! } - public var Passport_Identity_Name: String { return self._s[2179]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2166]! } + public var Wallet_Month_GenJune: String { return self._s[2167]! } + public var Passport_Email_Help: String { return self._s[2168]! } + public var Watch_Conversation_Reply: String { return self._s[2170]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2172]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2173]! } + public var Channel_BanUser_Unban: String { return self._s[2175]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2176]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2177]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2179]! } + public var Wallet_Send_AddressHeader: String { return self._s[2180]! } + public var Passport_Identity_Name: String { return self._s[2181]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2180]!, self._r[2180]!, [_0]) + return formatWithArgumentRanges(self._s[2182]!, self._r[2182]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2181]! } - public var Conversation_BlockUser: String { return self._s[2182]! } - public var Month_GenJanuary: String { return self._s[2183]! } - public var ChatSettings_TextSize: String { return self._s[2184]! } - public var Notification_PassportValuePhone: String { return self._s[2185]! } - public var Passport_Language_ne: String { return self._s[2186]! } - public var Notification_CallBack: String { return self._s[2187]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2188]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2189]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2183]! } + public var Conversation_BlockUser: String { return self._s[2184]! } + public var Month_GenJanuary: String { return self._s[2185]! } + public var ChatSettings_TextSize: String { return self._s[2186]! } + public var Notification_PassportValuePhone: String { return self._s[2187]! } + public var Passport_Language_ne: String { return self._s[2188]! } + public var Notification_CallBack: String { return self._s[2189]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2190]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2191]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2190]!, self._r[2190]!, [_0]) + return formatWithArgumentRanges(self._s[2192]!, self._r[2192]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2191]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2192]! } - public var Stickers_FrequentlyUsed: String { return self._s[2193]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2194]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2196]! } + public var Channel_Info_Management: String { return self._s[2193]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2194]! } + public var Stickers_FrequentlyUsed: String { return self._s[2195]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2196]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2198]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2197]!, self._r[2197]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2199]!, self._r[2199]!, [_1, "\(_2)"]) } - public var Passport_Address_EditResidentialAddress: String { return self._s[2198]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2199]! } - public var CreatePoll_TextHeader: String { return self._s[2200]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2200]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2201]! } + public var CreatePoll_TextHeader: String { return self._s[2202]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2201]!, self._r[2201]!, [_0]) + return formatWithArgumentRanges(self._s[2203]!, self._r[2203]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[2202]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2203]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2205]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2206]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2207]! } + public var PhotoEditor_QualityMedium: String { return self._s[2204]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2205]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2207]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2208]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2209]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2208]!, self._r[2208]!, [_0]) + return formatWithArgumentRanges(self._s[2210]!, self._r[2210]!, [_0]) } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2209]!, self._r[2209]!, [_1]) + return formatWithArgumentRanges(self._s[2211]!, self._r[2211]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2210]! } - public var Conversation_LinkDialogOpen: String { return self._s[2212]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2213]! } - public var Settings_Username: String { return self._s[2215]! } - public var Conversation_Block: String { return self._s[2217]! } - public var Wallpaper_Wallpaper: String { return self._s[2218]! } - public var SocksProxySetup_UseProxy: String { return self._s[2220]! } - public var Wallet_Send_Confirmation: String { return self._s[2221]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2222]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2223]! } - public var MessageTimer_Forever: String { return self._s[2224]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2225]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2226]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2227]! } - public var Passport_Language_da: String { return self._s[2228]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2229]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2212]! } + public var Conversation_LinkDialogOpen: String { return self._s[2214]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2215]! } + public var Settings_Username: String { return self._s[2217]! } + public var Conversation_Block: String { return self._s[2219]! } + public var Wallpaper_Wallpaper: String { return self._s[2220]! } + public var SocksProxySetup_UseProxy: String { return self._s[2222]! } + public var Wallet_Send_Confirmation: String { return self._s[2223]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2224]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2225]! } + public var MessageTimer_Forever: String { return self._s[2226]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2227]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2228]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2229]! } + public var Passport_Language_da: String { return self._s[2230]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2231]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2230]!, self._r[2230]!, [_0]) + return formatWithArgumentRanges(self._s[2232]!, self._r[2232]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[2231]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2233]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2233]!, self._r[2233]!, [_0]) + return formatWithArgumentRanges(self._s[2235]!, self._r[2235]!, [_0]) } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2235]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2236]! } - public var Conversation_PinnedPoll: String { return self._s[2237]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2238]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2237]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2238]! } + public var Conversation_PinnedPoll: String { return self._s[2239]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2240]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2239]!, self._r[2239]!, [_1]) + return formatWithArgumentRanges(self._s[2241]!, self._r[2241]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2240]! } - public var Cache_ByPeerHeader: String { return self._s[2241]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2242]! } + public var Cache_ByPeerHeader: String { return self._s[2243]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2242]!, self._r[2242]!, [_0]) + return formatWithArgumentRanges(self._s[2244]!, self._r[2244]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2243]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2246]! } - public var Wallet_Completed_Title: String { return self._s[2247]! } - public var Notification_PinnedMessage: String { return self._s[2248]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2250]! } - public var Contacts_SortBy: String { return self._s[2251]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2245]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2248]! } + public var Wallet_Completed_Title: String { return self._s[2249]! } + public var Notification_PinnedMessage: String { return self._s[2250]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2252]! } + public var Contacts_SortBy: String { return self._s[2253]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2252]!, self._r[2252]!, [_1]) + return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_1]) } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2256]!, self._r[2256]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2255]! } - public var Watch_UserInfo_Service: String { return self._s[2256]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2258]! } - public var Conversation_Unpin: String { return self._s[2260]! } - public var CancelResetAccount_Title: String { return self._s[2261]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2262]! } + public var Call_EncryptionKey_Title: String { return self._s[2257]! } + public var Watch_UserInfo_Service: String { return self._s[2258]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2260]! } + public var Conversation_Unpin: String { return self._s[2262]! } + public var CancelResetAccount_Title: String { return self._s[2263]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2264]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2264]!, self._r[2264]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2266]!, self._r[2266]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2265]! } - public var CallSettings_Title: String { return self._s[2266]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2267]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2269]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2270]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2267]! } + public var CallSettings_Title: String { return self._s[2268]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2269]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2271]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2272]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2273]!, self._r[2273]!, [_1, _2]) } - public var Passport_Identity_DocumentDetails: String { return self._s[2272]! } - public var LoginPassword_PasswordHelp: String { return self._s[2273]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2274]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2275]! } - public var Checkout_TotalPaidAmount: String { return self._s[2276]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2274]! } + public var LoginPassword_PasswordHelp: String { return self._s[2275]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2276]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2277]! } + public var Checkout_TotalPaidAmount: String { return self._s[2278]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2277]!, self._r[2277]!, [_0]) + return formatWithArgumentRanges(self._s[2279]!, self._r[2279]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[2278]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2280]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2281]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2280]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2282]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2283]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2282]!, self._r[2282]!, [_1]) + return formatWithArgumentRanges(self._s[2284]!, self._r[2284]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2283]! } - public var Contacts_InviteFriends: String { return self._s[2285]! } - public var Map_ChooseLocationTitle: String { return self._s[2286]! } - public var Conversation_StopPoll: String { return self._s[2288]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2285]! } + public var Contacts_InviteFriends: String { return self._s[2287]! } + public var Map_ChooseLocationTitle: String { return self._s[2288]! } + public var Conversation_StopPoll: String { return self._s[2290]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2289]!, self._r[2289]!, [_0]) + return formatWithArgumentRanges(self._s[2291]!, self._r[2291]!, [_0]) } - public var Call_Camera: String { return self._s[2290]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2291]! } - public var Calls_RatingFeedback: String { return self._s[2292]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2293]! } - public var Wallet_Alert_OK: String { return self._s[2294]! } - public var NotificationsSound_Pulse: String { return self._s[2295]! } - public var Watch_LastSeen_Lately: String { return self._s[2296]! } - public var ReportGroupLocation_Report: String { return self._s[2299]! } - public var Widget_NoUsers: String { return self._s[2300]! } - public var Conversation_UnvotePoll: String { return self._s[2301]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2303]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2304]! } - public var NotificationsSound_Circles: String { return self._s[2305]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2308]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2309]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2310]! } - public var Proxy_TooltipUnavailable: String { return self._s[2311]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2313]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2315]! } - public var Conversation_FileDropbox: String { return self._s[2316]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2317]! } - public var Tour_Text3: String { return self._s[2319]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2321]! } - public var GroupPermission_NoSendMessages: String { return self._s[2322]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2323]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2324]! } + public var Call_Camera: String { return self._s[2292]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2293]! } + public var Calls_RatingFeedback: String { return self._s[2294]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2295]! } + public var Wallet_Alert_OK: String { return self._s[2296]! } + public var NotificationsSound_Pulse: String { return self._s[2297]! } + public var Watch_LastSeen_Lately: String { return self._s[2298]! } + public var ReportGroupLocation_Report: String { return self._s[2301]! } + public var Widget_NoUsers: String { return self._s[2302]! } + public var Conversation_UnvotePoll: String { return self._s[2303]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2305]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2306]! } + public var NotificationsSound_Circles: String { return self._s[2307]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2310]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2311]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2312]! } + public var Proxy_TooltipUnavailable: String { return self._s[2313]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2315]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2317]! } + public var Conversation_FileDropbox: String { return self._s[2318]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2319]! } + public var Tour_Text3: String { return self._s[2321]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2323]! } + public var GroupPermission_NoSendMessages: String { return self._s[2324]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2325]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2326]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2326]!, self._r[2326]!, [_0]) + return formatWithArgumentRanges(self._s[2328]!, self._r[2328]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2327]! } - public var Checkout_ShippingOption_Title: String { return self._s[2328]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2329]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2329]! } + public var Checkout_ShippingOption_Title: String { return self._s[2330]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2331]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2330]!, self._r[2330]!, [_0]) + return formatWithArgumentRanges(self._s[2332]!, self._r[2332]!, [_0]) } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2331]!, self._r[2331]!, [_0]) + return formatWithArgumentRanges(self._s[2333]!, self._r[2333]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2332]! } - public var EditTheme_FileReadError: String { return self._s[2333]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2334]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2335]! } - public var AutoDownloadSettings_Photos: String { return self._s[2337]! } - public var Appearance_PreviewIncomingText: String { return self._s[2338]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2339]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2340]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2341]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2342]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2343]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2344]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2345]! } - public var Notification_SecretChatScreenshot: String { return self._s[2346]! } - public var AccessDenied_Wallpapers: String { return self._s[2347]! } - public var ChatList_Context_Mute: String { return self._s[2349]! } - public var Passport_Address_City: String { return self._s[2350]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2351]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2352]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2353]! } - public var AccessDenied_LocationDisabled: String { return self._s[2354]! } - public var Group_Location_Title: String { return self._s[2355]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2357]! } - public var GroupInfo_Sound: String { return self._s[2358]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2359]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2360]! } - public var Contacts_Title: String { return self._s[2361]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2362]! } - public var Passport_Language_fr: String { return self._s[2363]! } - public var Notifications_ResetAllNotifications: String { return self._s[2364]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2367]! } - public var Checkout_NewCard_Title: String { return self._s[2368]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2369]! } - public var Conversation_ForwardChats: String { return self._s[2370]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2372]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2373]! } - public var Settings_FAQ: String { return self._s[2375]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2376]! } - public var Conversation_ContextMenuForward: String { return self._s[2377]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2380]! } - public var PrivacyPolicy_Title: String { return self._s[2383]! } - public var Notifications_TextTone: String { return self._s[2384]! } - public var Profile_CreateNewContact: String { return self._s[2385]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2386]! } - public var Call_Speaker: String { return self._s[2388]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2389]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2391]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2392]! } + public var Channel_Management_LabelAdministrator: String { return self._s[2334]! } + public var EditTheme_FileReadError: String { return self._s[2335]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2336]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2337]! } + public var AutoDownloadSettings_Photos: String { return self._s[2339]! } + public var Appearance_PreviewIncomingText: String { return self._s[2340]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2341]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2342]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2343]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2344]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2345]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2346]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2347]! } + public var Notification_SecretChatScreenshot: String { return self._s[2348]! } + public var AccessDenied_Wallpapers: String { return self._s[2349]! } + public var ChatList_Context_Mute: String { return self._s[2351]! } + public var Passport_Address_City: String { return self._s[2352]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2353]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2354]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2355]! } + public var AccessDenied_LocationDisabled: String { return self._s[2356]! } + public var Group_Location_Title: String { return self._s[2357]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2359]! } + public var GroupInfo_Sound: String { return self._s[2360]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2361]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2362]! } + public var Contacts_Title: String { return self._s[2363]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2364]! } + public var Passport_Language_fr: String { return self._s[2365]! } + public var Notifications_ResetAllNotifications: String { return self._s[2366]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2369]! } + public var Checkout_NewCard_Title: String { return self._s[2370]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2371]! } + public var Conversation_ForwardChats: String { return self._s[2372]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2374]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2375]! } + public var Settings_FAQ: String { return self._s[2377]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2378]! } + public var Conversation_ContextMenuForward: String { return self._s[2379]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2382]! } + public var PrivacyPolicy_Title: String { return self._s[2385]! } + public var Notifications_TextTone: String { return self._s[2386]! } + public var Profile_CreateNewContact: String { return self._s[2387]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2388]! } + public var Call_Speaker: String { return self._s[2390]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2391]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2393]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2394]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2393]!, self._r[2393]!, [_0]) + return formatWithArgumentRanges(self._s[2395]!, self._r[2395]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2394]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2395]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2396]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2397]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2398]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2399]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2400]! } - public var Bot_Unblock: String { return self._s[2401]! } - public var TextFormat_Italic: String { return self._s[2402]! } - public var WallpaperSearch_ColorPink: String { return self._s[2403]! } - public var Settings_About_Help: String { return self._s[2404]! } - public var SearchImages_Title: String { return self._s[2405]! } - public var Weekday_Wednesday: String { return self._s[2406]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2407]! } - public var ExplicitContent_AlertTitle: String { return self._s[2408]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2396]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2397]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2398]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2399]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2400]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2401]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2402]! } + public var Bot_Unblock: String { return self._s[2403]! } + public var TextFormat_Italic: String { return self._s[2404]! } + public var WallpaperSearch_ColorPink: String { return self._s[2405]! } + public var Settings_About_Help: String { return self._s[2406]! } + public var SearchImages_Title: String { return self._s[2407]! } + public var Weekday_Wednesday: String { return self._s[2408]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2409]! } + public var ExplicitContent_AlertTitle: String { return self._s[2410]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2409]!, self._r[2409]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2411]!, self._r[2411]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2410]! } - public var Weekday_Thursday: String { return self._s[2411]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2412]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2413]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2412]! } + public var Weekday_Thursday: String { return self._s[2413]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2414]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2415]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2414]!, self._r[2414]!, [_0]) + return formatWithArgumentRanges(self._s[2416]!, self._r[2416]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2415]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2416]! } - public var Passport_RequestedInformation: String { return self._s[2417]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2418]! } - public var Conversation_EncryptionProcessing: String { return self._s[2420]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2421]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2423]! } - public var Channel_Setup_Title: String { return self._s[2424]! } - public var Conversation_SearchPlaceholder: String { return self._s[2425]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2426]! } - public var Checkout_ErrorGeneric: String { return self._s[2427]! } - public var Passport_Language_hu: String { return self._s[2428]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2429]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2417]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2418]! } + public var Passport_RequestedInformation: String { return self._s[2419]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2420]! } + public var Conversation_EncryptionProcessing: String { return self._s[2422]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2423]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2425]! } + public var Channel_Setup_Title: String { return self._s[2426]! } + public var Conversation_SearchPlaceholder: String { return self._s[2427]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2428]! } + public var Checkout_ErrorGeneric: String { return self._s[2429]! } + public var Passport_Language_hu: String { return self._s[2430]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2431]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2431]!, self._r[2431]!, [_0]) + return formatWithArgumentRanges(self._s[2433]!, self._r[2433]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2434]!, self._r[2434]!, [_1]) + return formatWithArgumentRanges(self._s[2436]!, self._r[2436]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2435]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2437]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2436]!, self._r[2436]!, [_0]) + return formatWithArgumentRanges(self._s[2438]!, self._r[2438]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2437]! } - public var Group_Location_Info: String { return self._s[2438]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2439]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2440]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2439]! } + public var Group_Location_Info: String { return self._s[2440]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2441]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2442]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2441]!, self._r[2441]!, [_0]) + return formatWithArgumentRanges(self._s[2443]!, self._r[2443]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2442]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2443]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2444]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2445]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2444]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2445]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2446]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2447]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2446]!, self._r[2446]!, [_0]) + return formatWithArgumentRanges(self._s[2448]!, self._r[2448]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2447]! } - public var Message_PinnedAnimationMessage: String { return self._s[2449]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2451]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2452]! } - public var Wallet_Info_TransactionTo: String { return self._s[2454]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2455]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2456]! } - public var Embed_PlayingInPIP: String { return self._s[2457]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2458]! } + public var Passport_Language_cs: String { return self._s[2449]! } + public var Message_PinnedAnimationMessage: String { return self._s[2451]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2453]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2454]! } + public var Wallet_Info_TransactionTo: String { return self._s[2456]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2457]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2458]! } + public var Embed_PlayingInPIP: String { return self._s[2459]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2460]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2459]!, self._r[2459]!, [_0]) + return formatWithArgumentRanges(self._s[2461]!, self._r[2461]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2460]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2462]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2461]!, self._r[2461]!, [_1]) + return formatWithArgumentRanges(self._s[2463]!, self._r[2463]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2462]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2463]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2464]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2465]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2466]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2467]! } + public var Notification_PaymentSent: String { return self._s[2464]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2465]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2466]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2467]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2468]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2469]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_1]) - } - public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_1]) - } - public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2472]!, self._r[2472]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2474]! } - public var PasscodeSettings_HelpTop: String { return self._s[2475]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2476]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2477]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2478]! } - public var EditTheme_ShortLink: String { return self._s[2479]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2480]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2481]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2482]! } - public var Call_Accept: String { return self._s[2484]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2485]! } - public var Month_GenMarch: String { return self._s[2487]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2488]! } - public var LoginPassword_Title: String { return self._s[2489]! } - public var Call_End: String { return self._s[2490]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2491]! } - public var VoiceOver_Chat_Contact: String { return self._s[2492]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2493]! } - public var CallSettings_Always: String { return self._s[2494]! } - public var CallFeedback_Success: String { return self._s[2495]! } - public var TwoStepAuth_SetupHint: String { return self._s[2496]! } + public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2473]!, self._r[2473]!, [_1]) + } + public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2474]!, self._r[2474]!, [_1]) + } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2476]! } + public var PasscodeSettings_HelpTop: String { return self._s[2477]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2478]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2479]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2480]! } + public var EditTheme_ShortLink: String { return self._s[2481]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2482]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2483]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2484]! } + public var Call_Accept: String { return self._s[2486]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2487]! } + public var Month_GenMarch: String { return self._s[2489]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2490]! } + public var LoginPassword_Title: String { return self._s[2491]! } + public var Call_End: String { return self._s[2492]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2493]! } + public var VoiceOver_Chat_Contact: String { return self._s[2494]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2495]! } + public var CallSettings_Always: String { return self._s[2496]! } + public var CallFeedback_Success: String { return self._s[2497]! } + public var TwoStepAuth_SetupHint: String { return self._s[2498]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2497]!, self._r[2497]!, [_1]) + return formatWithArgumentRanges(self._s[2499]!, self._r[2499]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2498]! } - public var Login_PhoneTitle: String { return self._s[2499]! } - public var Passport_FieldPhoneHelp: String { return self._s[2500]! } - public var Weekday_ShortSunday: String { return self._s[2501]! } - public var Passport_InfoFAQ_URL: String { return self._s[2502]! } - public var ContactInfo_Job: String { return self._s[2504]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2505]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2506]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2507]! } - public var Invite_ChannelsTooMuch: String { return self._s[2508]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2509]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2510]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2511]! } - public var Wallet_Receive_AmountText: String { return self._s[2512]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2513]! } - public var CallFeedback_ReasonNoise: String { return self._s[2514]! } - public var Appearance_AppIconDefault: String { return self._s[2516]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2517]! } - public var MediaPicker_AddCaption: String { return self._s[2518]! } - public var CallSettings_TabIconDescription: String { return self._s[2519]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2500]! } + public var Login_PhoneTitle: String { return self._s[2501]! } + public var Passport_FieldPhoneHelp: String { return self._s[2502]! } + public var Weekday_ShortSunday: String { return self._s[2503]! } + public var Passport_InfoFAQ_URL: String { return self._s[2504]! } + public var ContactInfo_Job: String { return self._s[2506]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2507]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2508]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2509]! } + public var Invite_ChannelsTooMuch: String { return self._s[2510]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2511]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2512]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2513]! } + public var Wallet_Receive_AmountText: String { return self._s[2514]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2515]! } + public var CallFeedback_ReasonNoise: String { return self._s[2516]! } + public var Appearance_AppIconDefault: String { return self._s[2518]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2519]! } + public var MediaPicker_AddCaption: String { return self._s[2520]! } + public var CallSettings_TabIconDescription: String { return self._s[2521]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2520]!, self._r[2520]!, [_0]) + return formatWithArgumentRanges(self._s[2522]!, self._r[2522]!, [_0]) } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2521]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2522]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2523]! } - public var DialogList_SearchSectionRecent: String { return self._s[2524]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2525]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2528]! } - public var LastSeen_WithinAWeek: String { return self._s[2529]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2530]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2532]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2533]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2523]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2524]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2525]! } + public var DialogList_SearchSectionRecent: String { return self._s[2526]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2527]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2530]! } + public var LastSeen_WithinAWeek: String { return self._s[2531]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2532]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2534]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2535]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2534]!, self._r[2534]!, [_0]) + return formatWithArgumentRanges(self._s[2536]!, self._r[2536]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2535]! } - public var Conversation_StatusLeftGroup: String { return self._s[2536]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2537]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2539]! } - public var GroupPermission_AddSuccess: String { return self._s[2540]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2542]! } - public var Conversation_ContextMenuCopy: String { return self._s[2543]! } - public var AccessDenied_CallMicrophone: String { return self._s[2544]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2537]! } + public var Conversation_StatusLeftGroup: String { return self._s[2538]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2539]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2541]! } + public var GroupPermission_AddSuccess: String { return self._s[2542]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2544]! } + public var Conversation_ContextMenuCopy: String { return self._s[2545]! } + public var AccessDenied_CallMicrophone: String { return self._s[2546]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2545]!, self._r[2545]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2547]!, self._r[2547]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2546]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2547]! } - public var Checkout_PaymentMethod_New: String { return self._s[2548]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2549]! } - public var PhotoEditor_QualityTool: String { return self._s[2550]! } - public var Login_SendCodeViaSms: String { return self._s[2551]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2552]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2553]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2554]! } - public var Login_EmailNotConfiguredError: String { return self._s[2555]! } - public var SocksProxySetup_Status: String { return self._s[2556]! } - public var PrivacyPolicy_Accept: String { return self._s[2557]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2558]! } - public var Appearance_AppIconClassicX: String { return self._s[2559]! } + public var Login_InvalidFirstNameError: String { return self._s[2548]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2549]! } + public var Checkout_PaymentMethod_New: String { return self._s[2550]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2551]! } + public var PhotoEditor_QualityTool: String { return self._s[2552]! } + public var Login_SendCodeViaSms: String { return self._s[2553]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2554]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2555]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2556]! } + public var Login_EmailNotConfiguredError: String { return self._s[2557]! } + public var SocksProxySetup_Status: String { return self._s[2558]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2559]! } + public var PrivacyPolicy_Accept: String { return self._s[2560]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2561]! } + public var Appearance_AppIconClassicX: String { return self._s[2562]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2560]!, self._r[2560]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2563]!, self._r[2563]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2561]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2563]! } - public var AutoNightTheme_Automatic: String { return self._s[2564]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2565]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2566]! } - public var Cache_Help: String { return self._s[2567]! } - public var Group_ErrorAccessDenied: String { return self._s[2568]! } - public var Passport_Language_fa: String { return self._s[2569]! } - public var Wallet_Intro_Text: String { return self._s[2570]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2571]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2572]! } - public var PrivacySettings_LastSeen: String { return self._s[2573]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2564]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2566]! } + public var AutoNightTheme_Automatic: String { return self._s[2567]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2568]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2569]! } + public var Cache_Help: String { return self._s[2570]! } + public var Group_ErrorAccessDenied: String { return self._s[2571]! } + public var Passport_Language_fa: String { return self._s[2572]! } + public var Wallet_Intro_Text: String { return self._s[2573]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2574]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2575]! } + public var PrivacySettings_LastSeen: String { return self._s[2576]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2574]!, self._r[2574]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2577]!, self._r[2577]!, [_0, _1]) } - public var Preview_SaveGif: String { return self._s[2578]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2579]! } - public var Profile_About: String { return self._s[2580]! } - public var Channel_About_Placeholder: String { return self._s[2581]! } - public var Login_InfoTitle: String { return self._s[2582]! } + public var Preview_SaveGif: String { return self._s[2581]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2582]! } + public var Profile_About: String { return self._s[2583]! } + public var Channel_About_Placeholder: String { return self._s[2584]! } + public var Login_InfoTitle: String { return self._s[2585]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_0]) + return formatWithArgumentRanges(self._s[2586]!, self._r[2586]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2584]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2586]! } - public var ContactInfo_Title: String { return self._s[2587]! } - public var Media_ShareThisVideo: String { return self._s[2588]! } - public var Weekday_ShortFriday: String { return self._s[2589]! } - public var AccessDenied_Contacts: String { return self._s[2591]! } - public var Notification_CallIncomingShort: String { return self._s[2592]! } - public var Group_Setup_TypePublic: String { return self._s[2593]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2594]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2595]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2598]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2599]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2600]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2601]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2602]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2587]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2589]! } + public var ContactInfo_Title: String { return self._s[2590]! } + public var Media_ShareThisVideo: String { return self._s[2591]! } + public var Weekday_ShortFriday: String { return self._s[2592]! } + public var AccessDenied_Contacts: String { return self._s[2594]! } + public var Notification_CallIncomingShort: String { return self._s[2595]! } + public var Group_Setup_TypePublic: String { return self._s[2596]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2597]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2598]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2601]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2602]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2603]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2604]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2605]! } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2603]!, self._r[2603]!, [_0]) + return formatWithArgumentRanges(self._s[2606]!, self._r[2606]!, [_0]) } - public var DialogList_Typing: String { return self._s[2604]! } - public var CallFeedback_IncludeLogs: String { return self._s[2606]! } - public var Checkout_Phone: String { return self._s[2608]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2611]! } - public var Privacy_Calls_Integration: String { return self._s[2612]! } - public var Notifications_PermissionsAllow: String { return self._s[2613]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2617]! } - public var Settings_ChatSettings: String { return self._s[2618]! } + public var DialogList_Typing: String { return self._s[2607]! } + public var CallFeedback_IncludeLogs: String { return self._s[2609]! } + public var Checkout_Phone: String { return self._s[2611]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2614]! } + public var Privacy_Calls_Integration: String { return self._s[2615]! } + public var Notifications_PermissionsAllow: String { return self._s[2616]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2620]! } + public var Settings_ChatSettings: String { return self._s[2621]! } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2622]!, self._r[2622]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2621]! } + public var GroupRemoved_DeleteUser: String { return self._s[2624]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2622]!, self._r[2622]!, [_0]) + return formatWithArgumentRanges(self._s[2625]!, self._r[2625]!, [_0]) } - public var Wallet_TransactionInfo_FeeInfoURL: String { return self._s[2623]! } + public var Wallet_TransactionInfo_FeeInfoURL: String { return self._s[2626]! } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2624]!, self._r[2624]!, [_1]) + return formatWithArgumentRanges(self._s[2627]!, self._r[2627]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[2625]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2626]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2628]! } - public var Conversation_Unblock: String { return self._s[2629]! } - public var PrivacySettings_DataSettings: String { return self._s[2630]! } - public var Group_PublicLink_Info: String { return self._s[2631]! } + public var Login_ContinueWithLocalization: String { return self._s[2628]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2629]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2631]! } + public var Conversation_Unblock: String { return self._s[2632]! } + public var PrivacySettings_DataSettings: String { return self._s[2633]! } + public var Group_PublicLink_Info: String { return self._s[2634]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2632]!, self._r[2632]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2635]!, self._r[2635]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2633]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2636]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2634]!, self._r[2634]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2637]!, self._r[2637]!, [_0, _1]) } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2636]! } - public var PrivacySettings_Passcode: String { return self._s[2638]! } - public var Call_Mute: String { return self._s[2639]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2640]! } - public var Passport_Language_dz: String { return self._s[2641]! } - public var Wallet_Receive_AmountHeader: String { return self._s[2642]! } - public var Passport_Language_tk: String { return self._s[2643]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2639]! } + public var PrivacySettings_Passcode: String { return self._s[2641]! } + public var Call_Mute: String { return self._s[2642]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2643]! } + public var Passport_Language_dz: String { return self._s[2644]! } + public var Wallet_Receive_AmountHeader: String { return self._s[2645]! } + public var Passport_Language_tk: String { return self._s[2646]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2644]!, self._r[2644]!, [_0]) + return formatWithArgumentRanges(self._s[2647]!, self._r[2647]!, [_0]) } - public var Settings_Search: String { return self._s[2645]! } - public var Wallet_Month_ShortFebruary: String { return self._s[2646]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2647]! } - public var Conversation_ContextMenuReply: String { return self._s[2648]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2649]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2650]! } - public var Tour_Title1: String { return self._s[2651]! } - public var Wallet_Alert_Cancel: String { return self._s[2652]! } - public var Conversation_ClearGroupHistory: String { return self._s[2654]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2655]! } - public var WallpaperPreview_Motion: String { return self._s[2656]! } + public var Settings_Search: String { return self._s[2648]! } + public var Wallet_Month_ShortFebruary: String { return self._s[2649]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2650]! } + public var Conversation_ContextMenuReply: String { return self._s[2651]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2652]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2653]! } + public var Tour_Title1: String { return self._s[2654]! } + public var Wallet_Alert_Cancel: String { return self._s[2655]! } + public var Conversation_ClearGroupHistory: String { return self._s[2657]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2658]! } + public var WallpaperPreview_Motion: String { return self._s[2659]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2657]!, self._r[2657]!, [_0]) + return formatWithArgumentRanges(self._s[2660]!, self._r[2660]!, [_0]) } - public var Call_RateCall: String { return self._s[2658]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2659]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2660]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2661]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2663]! } + public var Call_RateCall: String { return self._s[2661]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2662]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2663]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2664]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2666]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2665]!, self._r[2665]!, [_0]) + return formatWithArgumentRanges(self._s[2668]!, self._r[2668]!, [_0]) } - public var Compose_Create: String { return self._s[2666]! } - public var Contacts_InviteToTelegram: String { return self._s[2667]! } - public var GroupInfo_Notifications: String { return self._s[2668]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2670]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2671]! } - public var Month_GenApril: String { return self._s[2672]! } - public var Appearance_AutoNightTheme: String { return self._s[2673]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2675]! } - public var Login_CodeSentSms: String { return self._s[2677]! } + public var Compose_Create: String { return self._s[2669]! } + public var Contacts_InviteToTelegram: String { return self._s[2670]! } + public var GroupInfo_Notifications: String { return self._s[2671]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2673]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2674]! } + public var Month_GenApril: String { return self._s[2675]! } + public var Appearance_AutoNightTheme: String { return self._s[2676]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2678]! } + public var Login_CodeSentSms: String { return self._s[2680]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2678]!, self._r[2678]!, [_0]) + return formatWithArgumentRanges(self._s[2681]!, self._r[2681]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[2679]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2680]! } - public var Passport_Language_hr: String { return self._s[2681]! } - public var Common_ActionNotAllowedError: String { return self._s[2682]! } + public var EmptyGroupInfo_Line3: String { return self._s[2682]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2683]! } + public var Passport_Language_hr: String { return self._s[2684]! } + public var Common_ActionNotAllowedError: String { return self._s[2685]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2683]!, self._r[2683]!, [_0]) + return formatWithArgumentRanges(self._s[2686]!, self._r[2686]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2684]! } - public var Wallet_Info_TransactionFrom: String { return self._s[2685]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2686]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2687]! } - public var Privacy_SecretChatsTitle: String { return self._s[2688]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2690]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2691]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2692]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2693]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2694]! } - public var Preview_DeleteGif: String { return self._s[2695]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2696]! } - public var Group_ErrorNotMutualContact: String { return self._s[2697]! } - public var Notification_MessageLifetime5s: String { return self._s[2698]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2687]! } + public var Wallet_Info_TransactionFrom: String { return self._s[2688]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2689]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2690]! } + public var Privacy_SecretChatsTitle: String { return self._s[2691]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2693]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2694]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2695]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2696]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2697]! } + public var Preview_DeleteGif: String { return self._s[2698]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2699]! } + public var Group_ErrorNotMutualContact: String { return self._s[2700]! } + public var Notification_MessageLifetime5s: String { return self._s[2701]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2699]!, self._r[2699]!, [_0]) + return formatWithArgumentRanges(self._s[2702]!, self._r[2702]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[2700]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2702]! } - public var ReportSpam_DeleteThisChat: String { return self._s[2703]! } - public var Passport_Address_AddBankStatement: String { return self._s[2704]! } - public var Notification_CallIncoming: String { return self._s[2705]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[2706]! } - public var Compose_NewGroupTitle: String { return self._s[2707]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2709]! } - public var Passport_Address_Postcode: String { return self._s[2711]! } + public var VoiceOver_Chat_Video: String { return self._s[2703]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2705]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2706]! } + public var Passport_Address_AddBankStatement: String { return self._s[2707]! } + public var Notification_CallIncoming: String { return self._s[2708]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[2709]! } + public var Compose_NewGroupTitle: String { return self._s[2710]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2712]! } + public var Passport_Address_Postcode: String { return self._s[2714]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2712]!, self._r[2712]!, [_0]) + return formatWithArgumentRanges(self._s[2715]!, self._r[2715]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2713]! } - public var Wallet_Month_ShortOctober: String { return self._s[2714]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2715]! } - public var WallpaperColors_Title: String { return self._s[2716]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2717]! } - public var VoiceOver_MessageContextForward: String { return self._s[2718]! } - public var GroupPermission_Duration: String { return self._s[2719]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2716]! } + public var Wallet_Month_ShortOctober: String { return self._s[2717]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2718]! } + public var WallpaperColors_Title: String { return self._s[2719]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2720]! } + public var VoiceOver_MessageContextForward: String { return self._s[2721]! } + public var GroupPermission_Duration: String { return self._s[2722]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2720]!, self._r[2720]!, [_0]) + return formatWithArgumentRanges(self._s[2723]!, self._r[2723]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2721]! } - public var Username_Placeholder: String { return self._s[2722]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2723]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2724]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2725]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2724]! } + public var Username_Placeholder: String { return self._s[2725]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2726]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2727]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2728]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2727]!, self._r[2727]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2730]!, self._r[2730]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[2728]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2729]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2730]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2731]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2732]! } - public var Conversation_ContextMenuMore: String { return self._s[2733]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2734]! } - public var CallSettings_TabIcon: String { return self._s[2735]! } - public var KeyCommand_Find: String { return self._s[2736]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2737]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2738]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2739]! } - public var Message_PinnedGame: String { return self._s[2740]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2741]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2743]! } - public var Login_CallRequestState2: String { return self._s[2745]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2747]! } + public var Passport_PasswordDescription: String { return self._s[2731]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2732]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2733]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2734]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2735]! } + public var Conversation_ContextMenuMore: String { return self._s[2736]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2737]! } + public var CallSettings_TabIcon: String { return self._s[2738]! } + public var KeyCommand_Find: String { return self._s[2739]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2740]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2741]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2742]! } + public var Message_PinnedGame: String { return self._s[2743]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2744]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2746]! } + public var Login_CallRequestState2: String { return self._s[2748]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2750]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2748]!, self._r[2748]!, [_0]) + return formatWithArgumentRanges(self._s[2751]!, self._r[2751]!, [_0]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2750]!, self._r[2750]!, [_0]) - } - public var WallpaperPreview_Blurred: String { return self._s[2751]! } - public var Conversation_InstantPagePreview: String { return self._s[2752]! } - public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2753]!, self._r[2753]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2756]! } - public var WallpaperSearch_ColorRed: String { return self._s[2757]! } - public var GroupPermission_NoPinMessages: String { return self._s[2758]! } - public var Passport_Language_es: String { return self._s[2759]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2761]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2762]! } + public var WallpaperPreview_Blurred: String { return self._s[2754]! } + public var Conversation_InstantPagePreview: String { return self._s[2755]! } + public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2756]!, self._r[2756]!, [_0]) + } + public var SecretTimer_VideoDescription: String { return self._s[2759]! } + public var WallpaperSearch_ColorRed: String { return self._s[2760]! } + public var GroupPermission_NoPinMessages: String { return self._s[2761]! } + public var Passport_Language_es: String { return self._s[2762]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2764]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2765]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2763]!, self._r[2763]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2766]!, self._r[2766]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2764]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2765]! } - public var Watch_UserInfo_Unmute: String { return self._s[2766]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2767]! } - public var AccessDenied_CameraRestricted: String { return self._s[2769]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2767]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2768]! } + public var Watch_UserInfo_Unmute: String { return self._s[2769]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2770]! } + public var AccessDenied_CameraRestricted: String { return self._s[2772]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2770]!, self._r[2770]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2773]!, self._r[2773]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2772]! } - public var Settings_CopyUsername: String { return self._s[2773]! } - public var Contacts_SearchLabel: String { return self._s[2774]! } - public var Map_OpenInYandexNavigator: String { return self._s[2776]! } - public var PasscodeSettings_EncryptData: String { return self._s[2777]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2778]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2779]! } - public var DialogList_AdNoticeAlert: String { return self._s[2780]! } - public var Wallet_Month_GenMay: String { return self._s[2782]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2783]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2784]! } - public var Localization_LanguageCustom: String { return self._s[2785]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2786]! } - public var CallFeedback_Title: String { return self._s[2787]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2790]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2791]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[2792]! } - public var Conversation_InfoGroup: String { return self._s[2793]! } - public var Compose_NewMessage: String { return self._s[2794]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2795]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2796]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2797]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2798]! } + public var ChatList_ReadAll: String { return self._s[2775]! } + public var Settings_CopyUsername: String { return self._s[2776]! } + public var Contacts_SearchLabel: String { return self._s[2777]! } + public var Map_OpenInYandexNavigator: String { return self._s[2779]! } + public var PasscodeSettings_EncryptData: String { return self._s[2780]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2781]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2782]! } + public var DialogList_AdNoticeAlert: String { return self._s[2783]! } + public var Wallet_Month_GenMay: String { return self._s[2785]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2786]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2787]! } + public var Localization_LanguageCustom: String { return self._s[2788]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2789]! } + public var CallFeedback_Title: String { return self._s[2790]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2793]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2794]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[2795]! } + public var Conversation_InfoGroup: String { return self._s[2796]! } + public var Compose_NewMessage: String { return self._s[2797]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2798]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2799]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2800]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2801]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2799]!, self._r[2799]!, [_0]) + return formatWithArgumentRanges(self._s[2802]!, self._r[2802]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2800]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2801]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2802]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2803]! } - public var Channel_BlackList_Title: String { return self._s[2804]! } - public var UserInfo_PhoneCall: String { return self._s[2805]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2807]! } - public var Wallet_Month_ShortJanuary: String { return self._s[2808]! } - public var State_connecting: String { return self._s[2809]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2810]! } - public var Wallet_Month_GenMarch: String { return self._s[2811]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2812]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2803]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2804]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2805]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2806]! } + public var Channel_BlackList_Title: String { return self._s[2807]! } + public var UserInfo_PhoneCall: String { return self._s[2808]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2810]! } + public var Wallet_Month_ShortJanuary: String { return self._s[2811]! } + public var State_connecting: String { return self._s[2812]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2813]! } + public var Wallet_Month_GenMarch: String { return self._s[2814]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2815]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2813]!, self._r[2813]!, [_0]) + return formatWithArgumentRanges(self._s[2816]!, self._r[2816]!, [_0]) } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2814]!, self._r[2814]!, [_0]) + return formatWithArgumentRanges(self._s[2817]!, self._r[2817]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2815]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2816]! } - public var Passport_Identity_EditPassport: String { return self._s[2817]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2819]! } - public var Localization_EnglishLanguageName: String { return self._s[2820]! } - public var Share_AuthDescription: String { return self._s[2821]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2822]! } - public var Passport_Identity_Surname: String { return self._s[2823]! } - public var Compose_TokenListPlaceholder: String { return self._s[2824]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[2825]! } - public var Settings_AboutEmpty: String { return self._s[2826]! } - public var Conversation_Unmute: String { return self._s[2827]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[2829]! } - public var Wallet_Sending_Text: String { return self._s[2830]! } + public var Notifications_GroupNotifications: String { return self._s[2818]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2819]! } + public var Passport_Identity_EditPassport: String { return self._s[2820]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2822]! } + public var Localization_EnglishLanguageName: String { return self._s[2823]! } + public var Share_AuthDescription: String { return self._s[2824]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2825]! } + public var Passport_Identity_Surname: String { return self._s[2826]! } + public var Compose_TokenListPlaceholder: String { return self._s[2827]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[2828]! } + public var Settings_AboutEmpty: String { return self._s[2829]! } + public var Conversation_Unmute: String { return self._s[2830]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[2832]! } + public var Wallet_Sending_Text: String { return self._s[2833]! } public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2831]!, self._r[2831]!, [_1]) + return formatWithArgumentRanges(self._s[2834]!, self._r[2834]!, [_1]) } - public var Login_CodeSentCall: String { return self._s[2832]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2834]! } - public var ChatSettings_Appearance: String { return self._s[2835]! } - public var Appearance_PickAccentColor: String { return self._s[2836]! } + public var Login_CodeSentCall: String { return self._s[2835]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2837]! } + public var ChatSettings_Appearance: String { return self._s[2838]! } + public var Appearance_PickAccentColor: String { return self._s[2839]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2837]!, self._r[2837]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2840]!, self._r[2840]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2838]!, self._r[2838]!, [_1]) + return formatWithArgumentRanges(self._s[2841]!, self._r[2841]!, [_1]) } - public var Notification_CallMissed: String { return self._s[2839]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[2840]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2841]! } - public var Wallet_Month_GenOctober: String { return self._s[2843]! } - public var ChatAdmins_AdminLabel: String { return self._s[2844]! } - public var KeyCommand_JumpToNextChat: String { return self._s[2845]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[2847]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[2848]! } - public var Month_GenJune: String { return self._s[2849]! } - public var Watch_Location_Current: String { return self._s[2850]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[2851]! } - public var Conversation_TitleMute: String { return self._s[2852]! } + public var Notification_CallMissed: String { return self._s[2842]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[2843]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2844]! } + public var Wallet_Month_GenOctober: String { return self._s[2846]! } + public var ChatAdmins_AdminLabel: String { return self._s[2847]! } + public var KeyCommand_JumpToNextChat: String { return self._s[2848]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[2850]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[2851]! } + public var Month_GenJune: String { return self._s[2852]! } + public var Watch_Location_Current: String { return self._s[2853]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[2854]! } + public var Conversation_TitleMute: String { return self._s[2855]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2853]!, self._r[2853]!, [_1]) + return formatWithArgumentRanges(self._s[2856]!, self._r[2856]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[2854]! } + public var GroupInfo_DeleteAndExit: String { return self._s[2857]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2855]!, self._r[2855]!, [_0]) + return formatWithArgumentRanges(self._s[2858]!, self._r[2858]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[2856]! } - public var Chat_SlowmodeSendError: String { return self._s[2857]! } - public var MaskStickerSettings_Info: String { return self._s[2858]! } - public var EditTheme_Expand_TopInfo: String { return self._s[2859]! } + public var Call_ReportPlaceholder: String { return self._s[2859]! } + public var Chat_SlowmodeSendError: String { return self._s[2860]! } + public var MaskStickerSettings_Info: String { return self._s[2861]! } + public var EditTheme_Expand_TopInfo: String { return self._s[2862]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2860]!, self._r[2860]!, [_0]) + return formatWithArgumentRanges(self._s[2863]!, self._r[2863]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[2861]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[2863]! } - public var Contacts_ShareTelegram: String { return self._s[2864]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[2865]! } - public var Channel_ErrorAccessDenied: String { return self._s[2866]! } - public var UserInfo_ScamBotWarning: String { return self._s[2868]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[2869]! } - public var Call_ConnectionErrorTitle: String { return self._s[2870]! } - public var UserInfo_NotificationsEnable: String { return self._s[2871]! } - public var ArchivedChats_IntroText1: String { return self._s[2872]! } - public var Tour_Text4: String { return self._s[2875]! } - public var WallpaperSearch_Recent: String { return self._s[2876]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[2877]! } - public var Profile_MessageLifetime2s: String { return self._s[2879]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[2880]! } - public var Notification_MessageLifetime2s: String { return self._s[2881]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[2864]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[2866]! } + public var Contacts_ShareTelegram: String { return self._s[2867]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[2868]! } + public var Channel_ErrorAccessDenied: String { return self._s[2869]! } + public var UserInfo_ScamBotWarning: String { return self._s[2871]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[2872]! } + public var Call_ConnectionErrorTitle: String { return self._s[2873]! } + public var UserInfo_NotificationsEnable: String { return self._s[2874]! } + public var ArchivedChats_IntroText1: String { return self._s[2875]! } + public var Tour_Text4: String { return self._s[2878]! } + public var WallpaperSearch_Recent: String { return self._s[2879]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[2880]! } + public var Profile_MessageLifetime2s: String { return self._s[2882]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[2883]! } + public var Notification_MessageLifetime2s: String { return self._s[2884]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2885]!, self._r[2885]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[2883]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[2884]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[2885]! } + public var Cache_ClearCache: String { return self._s[2886]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[2887]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[2888]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2889]!, self._r[2889]!, [_0]) + return formatWithArgumentRanges(self._s[2892]!, self._r[2892]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2891]!, self._r[2891]!, [_0]) + return formatWithArgumentRanges(self._s[2894]!, self._r[2894]!, [_0]) } - public var LocalGroup_Text: String { return self._s[2892]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[2893]! } - public var SocksProxySetup_TypeSocks: String { return self._s[2894]! } - public var ChatList_UnarchiveAction: String { return self._s[2895]! } - public var AutoNightTheme_Title: String { return self._s[2896]! } - public var InstantPage_FeedbackButton: String { return self._s[2897]! } - public var Passport_FieldAddress: String { return self._s[2898]! } + public var LocalGroup_Text: String { return self._s[2895]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[2896]! } + public var SocksProxySetup_TypeSocks: String { return self._s[2897]! } + public var ChatList_UnarchiveAction: String { return self._s[2898]! } + public var AutoNightTheme_Title: String { return self._s[2899]! } + public var InstantPage_FeedbackButton: String { return self._s[2900]! } + public var Passport_FieldAddress: String { return self._s[2901]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2899]!, self._r[2899]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2902]!, self._r[2902]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[2900]! } + public var Month_ShortMarch: String { return self._s[2903]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2901]!, self._r[2901]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2904]!, self._r[2904]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[2902]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[2903]! } - public var Passport_FloodError: String { return self._s[2904]! } - public var SecretGif_Title: String { return self._s[2905]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2906]! } - public var ChatList_Context_UnhideArchive: String { return self._s[2907]! } - public var Passport_Language_th: String { return self._s[2909]! } - public var Passport_Address_Address: String { return self._s[2910]! } - public var Login_InvalidLastNameError: String { return self._s[2911]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[2912]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[2913]! } - public var ChatList_Context_Archive: String { return self._s[2914]! } - public var SettingsSearch_FAQ: String { return self._s[2915]! } - public var ShareMenu_Send: String { return self._s[2916]! } - public var WallpaperSearch_ColorYellow: String { return self._s[2918]! } - public var Month_GenNovember: String { return self._s[2920]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[2922]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[2905]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[2906]! } + public var Passport_FloodError: String { return self._s[2907]! } + public var SecretGif_Title: String { return self._s[2908]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2909]! } + public var ChatList_Context_UnhideArchive: String { return self._s[2910]! } + public var Passport_Language_th: String { return self._s[2912]! } + public var Passport_Address_Address: String { return self._s[2913]! } + public var Login_InvalidLastNameError: String { return self._s[2914]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[2915]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[2916]! } + public var ChatList_Context_Archive: String { return self._s[2917]! } + public var SettingsSearch_FAQ: String { return self._s[2918]! } + public var ShareMenu_Send: String { return self._s[2919]! } + public var WallpaperSearch_ColorYellow: String { return self._s[2921]! } + public var Month_GenNovember: String { return self._s[2923]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[2925]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2926]!, self._r[2926]!, [_1, _2]) } - public var Checkout_Email: String { return self._s[2924]! } - public var NotificationsSound_Tritone: String { return self._s[2925]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[2927]! } - public var Wallet_ContextMenuCopy: String { return self._s[2929]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[2927]! } + public var Checkout_Email: String { return self._s[2928]! } + public var NotificationsSound_Tritone: String { return self._s[2929]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[2931]! } + public var Wallet_ContextMenuCopy: String { return self._s[2933]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2931]!, self._r[2931]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2935]!, self._r[2935]!, [_1, _2, _3]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2932]!, self._r[2932]!, [_1]) + return formatWithArgumentRanges(self._s[2936]!, self._r[2936]!, [_1]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[2933]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[2937]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2934]!, self._r[2934]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[2938]!, self._r[2938]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[2935]! } - public var Notification_Exceptions_Add: String { return self._s[2936]! } - public var DialogList_You: String { return self._s[2937]! } - public var MediaPicker_Send: String { return self._s[2940]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2941]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[2942]! } - public var Call_AudioRouteSpeaker: String { return self._s[2943]! } - public var Watch_UserInfo_Title: String { return self._s[2944]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[2945]! } - public var Appearance_AccentColor: String { return self._s[2947]! } + public var ChatList_UndoArchiveTitle: String { return self._s[2939]! } + public var Notification_Exceptions_Add: String { return self._s[2940]! } + public var DialogList_You: String { return self._s[2941]! } + public var MediaPicker_Send: String { return self._s[2944]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2945]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[2946]! } + public var Call_AudioRouteSpeaker: String { return self._s[2947]! } + public var Watch_UserInfo_Title: String { return self._s[2948]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[2949]! } + public var Appearance_AccentColor: String { return self._s[2951]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2948]!, self._r[2948]!, [_0]) + return formatWithArgumentRanges(self._s[2952]!, self._r[2952]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2949]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2953]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2950]!, self._r[2950]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2954]!, self._r[2954]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[2951]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[2952]! } - public var Notification_CallOutgoing: String { return self._s[2953]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[2954]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[2955]! } - public var Call_RecordingDisabledMessage: String { return self._s[2956]! } - public var Message_Game: String { return self._s[2957]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[2958]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[2959]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[2960]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[2961]! } - public var Date_DialogDateFormat: String { return self._s[2962]! } - public var WallpaperColors_SetCustomColor: String { return self._s[2963]! } - public var Notifications_InAppNotifications: String { return self._s[2964]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[2955]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[2956]! } + public var Notification_CallOutgoing: String { return self._s[2957]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[2958]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[2959]! } + public var Call_RecordingDisabledMessage: String { return self._s[2960]! } + public var Message_Game: String { return self._s[2961]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[2962]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[2963]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[2964]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[2965]! } + public var Date_DialogDateFormat: String { return self._s[2966]! } + public var WallpaperColors_SetCustomColor: String { return self._s[2967]! } + public var Notifications_InAppNotifications: String { return self._s[2968]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2965]!, self._r[2965]!, [_0]) + return formatWithArgumentRanges(self._s[2969]!, self._r[2969]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2966]!, self._r[2966]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2970]!, self._r[2970]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[2967]! } + public var NewContact_Title: String { return self._s[2971]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2968]!, self._r[2968]!, [_0]) + return formatWithArgumentRanges(self._s[2972]!, self._r[2972]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[2969]! } + public var Conversation_ViewContactDetails: String { return self._s[2973]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2971]!, self._r[2971]!, [_1]) + return formatWithArgumentRanges(self._s[2975]!, self._r[2975]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[2972]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[2973]! } - public var PrivacySettings_Title: String { return self._s[2974]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[2977]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[2978]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[2979]! } - public var Contacts_PhoneNumber: String { return self._s[2980]! } - public var Map_ShowPlaces: String { return self._s[2982]! } - public var ChatAdmins_Title: String { return self._s[2983]! } - public var InstantPage_Reference: String { return self._s[2985]! } - public var Wallet_Info_Updating: String { return self._s[2986]! } - public var ReportGroupLocation_Text: String { return self._s[2987]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[2976]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[2977]! } + public var PrivacySettings_Title: String { return self._s[2978]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[2981]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[2982]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[2983]! } + public var Contacts_PhoneNumber: String { return self._s[2984]! } + public var Map_ShowPlaces: String { return self._s[2986]! } + public var ChatAdmins_Title: String { return self._s[2987]! } + public var InstantPage_Reference: String { return self._s[2989]! } + public var Wallet_Info_Updating: String { return self._s[2990]! } + public var ReportGroupLocation_Text: String { return self._s[2991]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2988]!, self._r[2988]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2992]!, self._r[2992]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[2989]! } - public var Wallet_Intro_TermsUrl: String { return self._s[2990]! } - public var Watch_UserInfo_Block: String { return self._s[2991]! } - public var ChatSettings_Stickers: String { return self._s[2992]! } - public var ChatSettings_DownloadInBackground: String { return self._s[2993]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[2994]! } + public var Camera_FlashOff: String { return self._s[2993]! } + public var Wallet_Intro_TermsUrl: String { return self._s[2994]! } + public var Watch_UserInfo_Block: String { return self._s[2995]! } + public var ChatSettings_Stickers: String { return self._s[2996]! } + public var ChatSettings_DownloadInBackground: String { return self._s[2997]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[2998]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2995]!, self._r[2995]!, [_0]) + return formatWithArgumentRanges(self._s[2999]!, self._r[2999]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[2996]! } - public var Login_CheckOtherSessionMessages: String { return self._s[2997]! } - public var AutoDownloadSettings_Cellular: String { return self._s[2998]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[2999]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3000]! } - public var VoiceOver_MessageContextShare: String { return self._s[3001]! } + public var Settings_ViewPhoto: String { return self._s[3000]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3001]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3002]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3003]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3004]! } + public var VoiceOver_MessageContextShare: String { return self._s[3005]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3003]!, self._r[3003]!, [_0]) + return formatWithArgumentRanges(self._s[3007]!, self._r[3007]!, [_0]) } - public var Privacy_DeleteDrafts: String { return self._s[3004]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3005]! } + public var Privacy_DeleteDrafts: String { return self._s[3008]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3009]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3006]!, self._r[3006]!, [_0]) + return formatWithArgumentRanges(self._s[3010]!, self._r[3010]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3007]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3008]! } - public var DialogList_SavedMessages: String { return self._s[3009]! } - public var GroupInfo_UpgradeButton: String { return self._s[3010]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3012]! } - public var DialogList_Pin: String { return self._s[3013]! } + public var DialogList_SavedMessagesHelp: String { return self._s[3011]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3012]! } + public var DialogList_SavedMessages: String { return self._s[3013]! } + public var GroupInfo_UpgradeButton: String { return self._s[3014]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3016]! } + public var DialogList_Pin: String { return self._s[3017]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3014]!, self._r[3014]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3018]!, self._r[3018]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3015]!, self._r[3015]!, [_0]) + return formatWithArgumentRanges(self._s[3019]!, self._r[3019]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3016]! } - public var UserInfo_NotificationsDisable: String { return self._s[3017]! } - public var Paint_Outlined: String { return self._s[3018]! } - public var Activity_PlayingGame: String { return self._s[3019]! } - public var SearchImages_NoImagesFound: String { return self._s[3020]! } - public var SocksProxySetup_ProxyType: String { return self._s[3021]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3023]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3024]! } - public var Settings_AppLanguage: String { return self._s[3025]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3026]! } - public var Common_ChoosePhoto: String { return self._s[3027]! } - public var CallFeedback_ReasonEcho: String { return self._s[3028]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3020]! } + public var UserInfo_NotificationsDisable: String { return self._s[3021]! } + public var Paint_Outlined: String { return self._s[3022]! } + public var Activity_PlayingGame: String { return self._s[3023]! } + public var SearchImages_NoImagesFound: String { return self._s[3024]! } + public var SocksProxySetup_ProxyType: String { return self._s[3025]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3027]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3028]! } + public var Settings_AppLanguage: String { return self._s[3029]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3030]! } + public var Common_ChoosePhoto: String { return self._s[3031]! } + public var CallFeedback_ReasonEcho: String { return self._s[3032]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3029]!, self._r[3029]!, [_1]) + return formatWithArgumentRanges(self._s[3033]!, self._r[3033]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3030]! } - public var Activity_UploadingVideo: String { return self._s[3031]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3032]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3033]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3034]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3035]! } - public var PUSH_SENDER_YOU: String { return self._s[3036]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3037]! } - public var Checkout_PayWithTouchId: String { return self._s[3038]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3039]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3034]! } + public var Activity_UploadingVideo: String { return self._s[3035]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3036]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3037]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3038]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3039]! } + public var PUSH_SENDER_YOU: String { return self._s[3040]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3041]! } + public var Checkout_PayWithTouchId: String { return self._s[3042]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3043]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3041]!, self._r[3041]!, [_1]) + return formatWithArgumentRanges(self._s[3045]!, self._r[3045]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3042]! } + public var Notifications_ExceptionsNone: String { return self._s[3046]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3043]!, self._r[3043]!, [_0]) + return formatWithArgumentRanges(self._s[3047]!, self._r[3047]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3044]!, self._r[3044]!, [_1]) + return formatWithArgumentRanges(self._s[3048]!, self._r[3048]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3046]! } - public var Passport_Address_Region: String { return self._s[3049]! } - public var ChatList_DeleteChat: String { return self._s[3050]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3051]! } - public var PhotoEditor_TiltShift: String { return self._s[3052]! } - public var Settings_FAQ_URL: String { return self._s[3053]! } - public var Passport_Language_sl: String { return self._s[3054]! } - public var Settings_PrivacySettings: String { return self._s[3056]! } - public var SharedMedia_TitleLink: String { return self._s[3057]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3058]! } - public var Settings_SetProfilePhoto: String { return self._s[3059]! } - public var Channel_About_Help: String { return self._s[3060]! } - public var Contacts_PermissionsEnable: String { return self._s[3061]! } - public var Wallet_Sending_Title: String { return self._s[3062]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3063]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3064]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3066]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3067]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3068]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3069]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3070]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3072]! } - public var Map_OpenInYandexMaps: String { return self._s[3074]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3075]! } - public var VoiceOver_MessageContextReply: String { return self._s[3076]! } - public var PhotoEditor_SaturationTool: String { return self._s[3077]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3050]! } + public var Passport_Address_Region: String { return self._s[3053]! } + public var ChatList_DeleteChat: String { return self._s[3054]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3055]! } + public var PhotoEditor_TiltShift: String { return self._s[3056]! } + public var Settings_FAQ_URL: String { return self._s[3057]! } + public var Passport_Language_sl: String { return self._s[3058]! } + public var Settings_PrivacySettings: String { return self._s[3060]! } + public var SharedMedia_TitleLink: String { return self._s[3061]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3062]! } + public var Settings_SetProfilePhoto: String { return self._s[3063]! } + public var Channel_About_Help: String { return self._s[3064]! } + public var Contacts_PermissionsEnable: String { return self._s[3065]! } + public var Wallet_Sending_Title: String { return self._s[3066]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3067]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3068]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3070]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3071]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3072]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3073]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3074]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3076]! } + public var Map_OpenInYandexMaps: String { return self._s[3078]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3079]! } + public var VoiceOver_MessageContextReply: String { return self._s[3080]! } + public var PhotoEditor_SaturationTool: String { return self._s[3081]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3078]!, self._r[3078]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3082]!, self._r[3082]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3079]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3080]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3081]! } - public var Appearance_TextSize: String { return self._s[3082]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3083]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3084]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3085]! } + public var Appearance_TextSize: String { return self._s[3086]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3087]!, self._r[3087]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3084]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3086]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3088]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3090]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3087]!, self._r[3087]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3091]!, self._r[3091]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3088]!, self._r[3088]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3092]!, self._r[3092]!, [_1, _2, _3]) } - public var GroupInfo_PublicLinkAdd: String { return self._s[3089]! } - public var Passport_PassportInformation: String { return self._s[3092]! } - public var Theme_Unsupported: String { return self._s[3093]! } - public var WatchRemote_AlertTitle: String { return self._s[3094]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3095]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3097]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3093]! } + public var Passport_PassportInformation: String { return self._s[3096]! } + public var Theme_Unsupported: String { return self._s[3097]! } + public var WatchRemote_AlertTitle: String { return self._s[3098]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3099]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3101]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3098]!, self._r[3098]!, [_0]) + return formatWithArgumentRanges(self._s[3102]!, self._r[3102]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3099]!, self._r[3099]!, [_1]) + return formatWithArgumentRanges(self._s[3103]!, self._r[3103]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3100]! } - public var Wallet_Navigation_Done: String { return self._s[3102]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3103]! } - public var AccessDenied_CameraDisabled: String { return self._s[3104]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3104]! } + public var Wallet_Navigation_Done: String { return self._s[3106]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3107]! } + public var AccessDenied_CameraDisabled: String { return self._s[3108]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3105]!, self._r[3105]!, [_0]) + return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_0]) } - public var PhotoEditor_ContrastTool: String { return self._s[3108]! } + public var PhotoEditor_ContrastTool: String { return self._s[3112]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_1]) + return formatWithArgumentRanges(self._s[3113]!, self._r[3113]!, [_1]) } - public var DialogList_Draft: String { return self._s[3110]! } - public var Privacy_TopPeersDelete: String { return self._s[3112]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3113]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3114]! } - public var WebSearch_RecentSectionClear: String { return self._s[3115]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3116]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3118]! } - public var Common_Done: String { return self._s[3120]! } - public var AuthSessions_EmptyText: String { return self._s[3121]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3122]! } - public var Tour_Title5: String { return self._s[3123]! } - public var Wallet_Settings_Title: String { return self._s[3124]! } + public var DialogList_Draft: String { return self._s[3114]! } + public var Privacy_TopPeersDelete: String { return self._s[3116]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3117]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3118]! } + public var WebSearch_RecentSectionClear: String { return self._s[3119]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3120]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3122]! } + public var Common_Done: String { return self._s[3124]! } + public var AuthSessions_EmptyText: String { return self._s[3125]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3126]! } + public var Tour_Title5: String { return self._s[3127]! } + public var Wallet_Settings_Title: String { return self._s[3128]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3125]!, self._r[3125]!, [_0]) + return formatWithArgumentRanges(self._s[3129]!, self._r[3129]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3126]! } - public var Conversation_LinkDialogSave: String { return self._s[3127]! } - public var GroupInfo_ActionRestrict: String { return self._s[3128]! } - public var Checkout_Title: String { return self._s[3129]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3131]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3133]! } - public var Notification_RenamedGroup: String { return self._s[3134]! } - public var PeopleNearby_Groups: String { return self._s[3135]! } - public var Checkout_PayWithFaceId: String { return self._s[3136]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3137]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3139]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3140]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3141]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3130]! } + public var Conversation_LinkDialogSave: String { return self._s[3131]! } + public var GroupInfo_ActionRestrict: String { return self._s[3132]! } + public var Checkout_Title: String { return self._s[3133]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3135]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3137]! } + public var Notification_RenamedGroup: String { return self._s[3138]! } + public var PeopleNearby_Groups: String { return self._s[3139]! } + public var Checkout_PayWithFaceId: String { return self._s[3140]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3141]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3143]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3144]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3145]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3142]!, self._r[3142]!, [_0]) + return formatWithArgumentRanges(self._s[3146]!, self._r[3146]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3144]! } + public var Profile_AddToExisting: String { return self._s[3148]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3149]!, self._r[3149]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3147]! } - public var Permissions_PrivacyPolicy: String { return self._s[3148]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3149]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3150]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3152]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3154]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3155]! } + public var Cache_Files: String { return self._s[3151]! } + public var Permissions_PrivacyPolicy: String { return self._s[3152]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3153]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3154]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3156]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3158]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3159]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3156]!, self._r[3156]!, [_0]) + return formatWithArgumentRanges(self._s[3160]!, self._r[3160]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3157]! } - public var VoiceOver_AttachMedia: String { return self._s[3159]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3160]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3161]! } + public var VoiceOver_AttachMedia: String { return self._s[3163]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3164]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3161]!, self._r[3161]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3165]!, self._r[3165]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3162]! } - public var Conversation_SetReminder_Title: String { return self._s[3163]! } - public var Passport_FieldAddressHelp: String { return self._s[3164]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3165]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3166]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3166]! } + public var Conversation_SetReminder_Title: String { return self._s[3167]! } + public var Passport_FieldAddressHelp: String { return self._s[3168]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3169]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3170]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3167]!, self._r[3167]!, [_0]) + return formatWithArgumentRanges(self._s[3171]!, self._r[3171]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3168]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3169]! } - public var Login_UnknownError: String { return self._s[3170]! } - public var Group_UpgradeNoticeText2: String { return self._s[3173]! } - public var Watch_Compose_AddContact: String { return self._s[3174]! } - public var Web_Error: String { return self._s[3175]! } - public var Gif_Search: String { return self._s[3176]! } - public var Profile_MessageLifetime1h: String { return self._s[3177]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3178]! } - public var Channel_Username_CheckingUsername: String { return self._s[3179]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3180]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3181]! } - public var Channel_AboutItem: String { return self._s[3182]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3184]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3185]! } - public var GroupInfo_SharedMedia: String { return self._s[3186]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3172]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3173]! } + public var Login_UnknownError: String { return self._s[3174]! } + public var Group_UpgradeNoticeText2: String { return self._s[3177]! } + public var Watch_Compose_AddContact: String { return self._s[3178]! } + public var Web_Error: String { return self._s[3179]! } + public var Gif_Search: String { return self._s[3180]! } + public var Profile_MessageLifetime1h: String { return self._s[3181]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3182]! } + public var Channel_Username_CheckingUsername: String { return self._s[3183]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3184]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3185]! } + public var Channel_AboutItem: String { return self._s[3186]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3188]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3189]! } + public var GroupInfo_SharedMedia: String { return self._s[3190]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3187]!, self._r[3187]!, [_1]) + return formatWithArgumentRanges(self._s[3191]!, self._r[3191]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[3188]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3192]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3189]!, self._r[3189]!, [_1]) + return formatWithArgumentRanges(self._s[3193]!, self._r[3193]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3190]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3191]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3192]! } - public var CreatePoll_AddOption: String { return self._s[3193]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3194]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3195]! } - public var Channel_Management_AddModerator: String { return self._s[3196]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3197]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3198]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3199]! } - public var NotificationsSound_Hello: String { return self._s[3201]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3202]! } - public var Channel_Stickers_Placeholder: String { return self._s[3204]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3194]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3195]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3196]! } + public var CreatePoll_AddOption: String { return self._s[3197]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3198]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3199]! } + public var Channel_Management_AddModerator: String { return self._s[3200]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3201]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3202]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3203]! } + public var NotificationsSound_Hello: String { return self._s[3205]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3206]! } + public var Channel_Stickers_Placeholder: String { return self._s[3208]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3205]!, self._r[3205]!, [_0]) + return formatWithArgumentRanges(self._s[3209]!, self._r[3209]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3206]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3207]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3208]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3209]! } - public var AutoDownloadSettings_Channels: String { return self._s[3210]! } - public var Passport_Language_mn: String { return self._s[3211]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3214]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3215]! } - public var Passport_Language_ja: String { return self._s[3217]! } - public var Settings_About_Title: String { return self._s[3218]! } - public var Settings_NotificationsAndSounds: String { return self._s[3219]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3220]! } - public var Settings_BlockedUsers: String { return self._s[3221]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3210]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3211]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3212]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3213]! } + public var AutoDownloadSettings_Channels: String { return self._s[3214]! } + public var Passport_Language_mn: String { return self._s[3215]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3218]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3219]! } + public var Passport_Language_ja: String { return self._s[3221]! } + public var Settings_About_Title: String { return self._s[3222]! } + public var Settings_NotificationsAndSounds: String { return self._s[3223]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3224]! } + public var Settings_BlockedUsers: String { return self._s[3225]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_0]) + return formatWithArgumentRanges(self._s[3226]!, self._r[3226]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3223]! } - public var Wallet_Weekday_Today: String { return self._s[3224]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3225]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3226]! } - public var Channel_Username_Title: String { return self._s[3227]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3227]! } + public var Wallet_Weekday_Today: String { return self._s[3228]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3229]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3230]! } + public var Channel_Username_Title: String { return self._s[3231]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_0]) + return formatWithArgumentRanges(self._s[3232]!, self._r[3232]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3230]! } - public var AppleWatch_Title: String { return self._s[3231]! } - public var Activity_RecordingVideoMessage: String { return self._s[3232]! } + public var AttachmentMenu_File: String { return self._s[3234]! } + public var AppleWatch_Title: String { return self._s[3235]! } + public var Activity_RecordingVideoMessage: String { return self._s[3236]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3237]!, self._r[3237]!, [_1, _2]) } - public var Weekday_Saturday: String { return self._s[3234]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3235]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3236]! } - public var Common_Next: String { return self._s[3238]! } - public var Channel_Stickers_YourStickers: String { return self._s[3240]! } - public var Message_Theme: String { return self._s[3241]! } - public var Call_AudioRouteHeadphones: String { return self._s[3242]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3244]! } - public var Watch_Contacts_NoResults: String { return self._s[3246]! } - public var PhotoEditor_TintTool: String { return self._s[3249]! } - public var LoginPassword_ResetAccount: String { return self._s[3251]! } - public var Settings_SavedMessages: String { return self._s[3252]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3253]! } - public var Bot_GenericSupportStatus: String { return self._s[3254]! } - public var StickerPack_Add: String { return self._s[3255]! } - public var Checkout_TotalAmount: String { return self._s[3256]! } - public var Your_cards_number_is_invalid: String { return self._s[3257]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3258]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3259]! } + public var Weekday_Saturday: String { return self._s[3238]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3239]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3240]! } + public var Common_Next: String { return self._s[3242]! } + public var Channel_Stickers_YourStickers: String { return self._s[3244]! } + public var Message_Theme: String { return self._s[3245]! } + public var Call_AudioRouteHeadphones: String { return self._s[3246]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3248]! } + public var Watch_Contacts_NoResults: String { return self._s[3250]! } + public var PhotoEditor_TintTool: String { return self._s[3253]! } + public var LoginPassword_ResetAccount: String { return self._s[3255]! } + public var Settings_SavedMessages: String { return self._s[3256]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3257]! } + public var Bot_GenericSupportStatus: String { return self._s[3258]! } + public var StickerPack_Add: String { return self._s[3259]! } + public var Checkout_TotalAmount: String { return self._s[3260]! } + public var Your_cards_number_is_invalid: String { return self._s[3261]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3262]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3263]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3260]!, self._r[3260]!, [_0]) + return formatWithArgumentRanges(self._s[3264]!, self._r[3264]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3261]!, self._r[3261]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3265]!, self._r[3265]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3262]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3266]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3264]!, self._r[3264]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3268]!, self._r[3268]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3265]!, self._r[3265]!, [_0]) + return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3266]! } - public var StickerPack_Share: String { return self._s[3267]! } - public var Passport_DeleteAddress: String { return self._s[3268]! } - public var Settings_Passport: String { return self._s[3269]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3270]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3271]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3272]! } - public var Contacts_PermissionsText: String { return self._s[3273]! } - public var Group_Setup_HistoryVisible: String { return self._s[3274]! } - public var Wallet_Month_ShortDecember: String { return self._s[3276]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3277]! } - public var SocksProxySetup_Title: String { return self._s[3278]! } - public var Notification_Mute1h: String { return self._s[3279]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3270]! } + public var StickerPack_Share: String { return self._s[3271]! } + public var Passport_DeleteAddress: String { return self._s[3272]! } + public var Settings_Passport: String { return self._s[3273]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3274]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3275]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3276]! } + public var Contacts_PermissionsText: String { return self._s[3277]! } + public var Group_Setup_HistoryVisible: String { return self._s[3278]! } + public var Wallet_Month_ShortDecember: String { return self._s[3280]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3281]! } + public var SocksProxySetup_Title: String { return self._s[3282]! } + public var Notification_Mute1h: String { return self._s[3283]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3280]!, self._r[3280]!, [_0]) + return formatWithArgumentRanges(self._s[3284]!, self._r[3284]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3281]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3285]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3282]!, self._r[3282]!, [_1]) + return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3283]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3286]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3288]! } - public var DialogList_NoMessagesText: String { return self._s[3289]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3290]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3291]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3293]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3294]! } - public var Common_TakePhotoOrVideo: String { return self._s[3295]! } - public var Wallet_Words_Text: String { return self._s[3296]! } - public var Call_StatusBusy: String { return self._s[3297]! } - public var Conversation_PinnedMessage: String { return self._s[3298]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3299]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3300]! } - public var Undo_ChatCleared: String { return self._s[3301]! } - public var AppleWatch_ReplyPresets: String { return self._s[3302]! } - public var Passport_DiscardMessageDescription: String { return self._s[3304]! } - public var Login_NetworkError: String { return self._s[3305]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3287]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3290]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3292]! } + public var DialogList_NoMessagesText: String { return self._s[3293]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3294]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3295]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3297]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3298]! } + public var Common_TakePhotoOrVideo: String { return self._s[3299]! } + public var Wallet_Words_Text: String { return self._s[3300]! } + public var Call_StatusBusy: String { return self._s[3301]! } + public var Conversation_PinnedMessage: String { return self._s[3302]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3303]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3304]! } + public var Undo_ChatCleared: String { return self._s[3305]! } + public var AppleWatch_ReplyPresets: String { return self._s[3306]! } + public var Passport_DiscardMessageDescription: String { return self._s[3308]! } + public var Login_NetworkError: String { return self._s[3309]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3306]!, self._r[3306]!, [_0]) + return formatWithArgumentRanges(self._s[3310]!, self._r[3310]!, [_0]) } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3307]!, self._r[3307]!, [_0]) + return formatWithArgumentRanges(self._s[3311]!, self._r[3311]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3308]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3310]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3311]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3312]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3314]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3315]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3313]!, self._r[3313]!, [_0]) + return formatWithArgumentRanges(self._s[3317]!, self._r[3317]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3314]! } - public var VoiceOver_Chat_Music: String { return self._s[3315]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3316]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3318]! } - public var ConversationMedia_Title: String { return self._s[3319]! } - public var EncryptionKey_Title: String { return self._s[3321]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3322]! } - public var Notification_Exceptions_AddException: String { return self._s[3323]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3324]! } - public var Profile_MessageLifetime1m: String { return self._s[3325]! } + public var Call_ConnectionErrorMessage: String { return self._s[3318]! } + public var VoiceOver_Chat_Music: String { return self._s[3319]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3320]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3322]! } + public var ConversationMedia_Title: String { return self._s[3323]! } + public var EncryptionKey_Title: String { return self._s[3325]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3326]! } + public var Notification_Exceptions_AddException: String { return self._s[3327]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3328]! } + public var Profile_MessageLifetime1m: String { return self._s[3329]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3326]!, self._r[3326]!, [_1]) + return formatWithArgumentRanges(self._s[3330]!, self._r[3330]!, [_1]) } - public var Month_GenMay: String { return self._s[3327]! } + public var Month_GenMay: String { return self._s[3331]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3328]!, self._r[3328]!, [_0]) + return formatWithArgumentRanges(self._s[3332]!, self._r[3332]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3329]! } - public var Wallet_Send_AddressInfo: String { return self._s[3330]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3331]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3332]! } + public var PeopleNearby_Users: String { return self._s[3333]! } + public var Wallet_Send_AddressInfo: String { return self._s[3334]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3335]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3336]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3334]!, self._r[3334]!, [_0]) + return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3335]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3336]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3337]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3338]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3339]! } - public var Channel_JoinChannel: String { return self._s[3341]! } - public var Appearance_Animations: String { return self._s[3344]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3339]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3340]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3341]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3342]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3343]! } + public var Channel_JoinChannel: String { return self._s[3345]! } + public var Appearance_Animations: String { return self._s[3348]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3349]!, self._r[3349]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3347]! } - public var Appearance_ShareTheme: String { return self._s[3348]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3350]! } - public var Passport_Address_Street: String { return self._s[3351]! } - public var Conversation_AddContact: String { return self._s[3352]! } - public var Login_PhonePlaceholder: String { return self._s[3353]! } - public var Channel_Members_InviteLink: String { return self._s[3355]! } - public var Bot_Stop: String { return self._s[3356]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3358]! } - public var Notification_PassportValueAddress: String { return self._s[3359]! } - public var Month_ShortJuly: String { return self._s[3360]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3361]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3362]! } - public var Passport_Identity_ReverseSide: String { return self._s[3363]! } - public var Watch_Stickers_Recents: String { return self._s[3366]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3368]! } - public var Map_SendThisLocation: String { return self._s[3369]! } + public var Stickers_GroupStickers: String { return self._s[3351]! } + public var Appearance_ShareTheme: String { return self._s[3352]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3354]! } + public var Passport_Address_Street: String { return self._s[3355]! } + public var Conversation_AddContact: String { return self._s[3356]! } + public var Login_PhonePlaceholder: String { return self._s[3357]! } + public var Channel_Members_InviteLink: String { return self._s[3359]! } + public var Bot_Stop: String { return self._s[3360]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3362]! } + public var Notification_PassportValueAddress: String { return self._s[3363]! } + public var Month_ShortJuly: String { return self._s[3364]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3365]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3366]! } + public var Passport_Identity_ReverseSide: String { return self._s[3367]! } + public var Watch_Stickers_Recents: String { return self._s[3370]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3372]! } + public var Map_SendThisLocation: String { return self._s[3373]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3370]!, self._r[3370]!, [_0]) - } - public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3371]!, self._r[3371]!, [_0]) - } - public var ConvertToSupergroup_Note: String { return self._s[3372]! } - public var Wallet_Intro_NotNow: String { return self._s[3373]! } - public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3374]!, self._r[3374]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3375]! } + public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3375]!, self._r[3375]!, [_0]) + } + public var ConvertToSupergroup_Note: String { return self._s[3376]! } + public var Wallet_Intro_NotNow: String { return self._s[3377]! } + public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3378]!, self._r[3378]!, [_0]) + } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3379]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3376]!, self._r[3376]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3380]!, self._r[3380]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3378]! } - public var Wallpaper_SearchShort: String { return self._s[3379]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3381]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3382]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3383]! } + public var Login_CallRequestState3: String { return self._s[3382]! } + public var Wallpaper_SearchShort: String { return self._s[3383]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3385]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3386]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3387]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3384]!, self._r[3384]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3388]!, self._r[3388]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3385]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3389]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3389]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3393]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3390]!, self._r[3390]!, [_0]) + return formatWithArgumentRanges(self._s[3394]!, self._r[3394]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3391]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3392]! } + public var Passport_CorrectErrors: String { return self._s[3395]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3396]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3393]!, self._r[3393]!, [_0]) + return formatWithArgumentRanges(self._s[3397]!, self._r[3397]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3394]! } - public var Channel_DiscussionGroup: String { return self._s[3395]! } + public var Map_SendMyCurrentLocation: String { return self._s[3398]! } + public var Channel_DiscussionGroup: String { return self._s[3399]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3396]!, self._r[3396]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3400]!, self._r[3400]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3397]! } - public var Permissions_NotificationsText_v0: String { return self._s[3398]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3399]! } - public var Appearance_AppIcon: String { return self._s[3400]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3401]! } - public var LoginPassword_FloodError: String { return self._s[3402]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3404]! } + public var SharedMedia_SearchNoResults: String { return self._s[3401]! } + public var Permissions_NotificationsText_v0: String { return self._s[3402]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3403]! } + public var Appearance_AppIcon: String { return self._s[3404]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3405]! } + public var LoginPassword_FloodError: String { return self._s[3406]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3408]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3405]!, self._r[3405]!, [_0]) - } - public var Passport_Language_bn: String { return self._s[3406]! } - public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3407]!, self._r[3407]!, [_0]) - } - public var ChatList_Context_Pin: String { return self._s[3408]! } - public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3409]!, self._r[3409]!, [_0]) } + public var Passport_Language_bn: String { return self._s[3410]! } + public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3411]!, self._r[3411]!, [_0]) + } + public var ChatList_Context_Pin: String { return self._s[3412]! } + public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3413]!, self._r[3413]!, [_0]) + } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3410]!, self._r[3410]!, [_0]) + return formatWithArgumentRanges(self._s[3414]!, self._r[3414]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3411]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3415]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3417]! } - public var Wallet_Month_GenDecember: String { return self._s[3418]! } - public var Contacts_PermissionsAllow: String { return self._s[3419]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3420]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3421]! } - public var WallpaperPreview_Pattern: String { return self._s[3422]! } - public var Paint_Duplicate: String { return self._s[3423]! } - public var Passport_Address_Country: String { return self._s[3424]! } - public var Notification_RenamedChannel: String { return self._s[3426]! } - public var ChatList_Context_Unmute: String { return self._s[3427]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3428]! } - public var Group_MessagePhotoUpdated: String { return self._s[3429]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3430]! } - public var Conversation_ContextMenuBan: String { return self._s[3431]! } - public var TwoStepAuth_EmailSent: String { return self._s[3432]! } - public var MessagePoll_NoVotes: String { return self._s[3433]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3434]! } - public var Passport_Language_is: String { return self._s[3435]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3437]! } - public var Tour_Text5: String { return self._s[3438]! } + public var Wallet_Navigation_Close: String { return self._s[3415]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3419]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3421]! } + public var Wallet_Month_GenDecember: String { return self._s[3422]! } + public var Contacts_PermissionsAllow: String { return self._s[3423]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3424]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3425]! } + public var WallpaperPreview_Pattern: String { return self._s[3426]! } + public var Paint_Duplicate: String { return self._s[3427]! } + public var Passport_Address_Country: String { return self._s[3428]! } + public var Notification_RenamedChannel: String { return self._s[3430]! } + public var ChatList_Context_Unmute: String { return self._s[3431]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3432]! } + public var Group_MessagePhotoUpdated: String { return self._s[3433]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3434]! } + public var Conversation_ContextMenuBan: String { return self._s[3435]! } + public var TwoStepAuth_EmailSent: String { return self._s[3436]! } + public var MessagePoll_NoVotes: String { return self._s[3437]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3438]! } + public var Passport_Language_is: String { return self._s[3439]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3441]! } + public var Tour_Text5: String { return self._s[3442]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3440]!, self._r[3440]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3444]!, self._r[3444]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3441]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3442]! } + public var Undo_SecretChatDeleted: String { return self._s[3445]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3446]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3443]!, self._r[3443]!, [_0]) + return formatWithArgumentRanges(self._s[3447]!, self._r[3447]!, [_0]) } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3444]! } - public var Paint_Edit: String { return self._s[3446]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3448]! } - public var Undo_DeletedGroup: String { return self._s[3450]! } - public var LoginPassword_ForgotPassword: String { return self._s[3451]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3452]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3453]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3448]! } + public var Paint_Edit: String { return self._s[3450]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3452]! } + public var Undo_DeletedGroup: String { return self._s[3454]! } + public var LoginPassword_ForgotPassword: String { return self._s[3455]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3456]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3457]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3454]!, self._r[3454]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3458]!, self._r[3458]!, [_0, _1]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3455]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3456]! } - public var Passport_Language_uz: String { return self._s[3457]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3458]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3459]! } - public var Map_StopLiveLocation: String { return self._s[3461]! } - public var VoiceOver_MessageContextSend: String { return self._s[3463]! } - public var PasscodeSettings_Help: String { return self._s[3464]! } - public var NotificationsSound_Input: String { return self._s[3465]! } - public var Share_Title: String { return self._s[3468]! } - public var LogoutOptions_Title: String { return self._s[3469]! } - public var Wallet_Send_AddressText: String { return self._s[3470]! } - public var Login_TermsOfServiceAgree: String { return self._s[3471]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3472]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3473]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3474]! } - public var EnterPasscode_EnterTitle: String { return self._s[3475]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3459]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3460]! } + public var Passport_Language_uz: String { return self._s[3461]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3462]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3463]! } + public var Map_StopLiveLocation: String { return self._s[3465]! } + public var VoiceOver_MessageContextSend: String { return self._s[3467]! } + public var PasscodeSettings_Help: String { return self._s[3468]! } + public var NotificationsSound_Input: String { return self._s[3469]! } + public var Share_Title: String { return self._s[3472]! } + public var LogoutOptions_Title: String { return self._s[3473]! } + public var Wallet_Send_AddressText: String { return self._s[3474]! } + public var Login_TermsOfServiceAgree: String { return self._s[3475]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3476]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3477]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3478]! } + public var EnterPasscode_EnterTitle: String { return self._s[3479]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3476]!, self._r[3476]!, [_0]) + return formatWithArgumentRanges(self._s[3480]!, self._r[3480]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3477]! } - public var Conversation_AddToContacts: String { return self._s[3478]! } + public var Settings_CopyPhoneNumber: String { return self._s[3481]! } + public var Conversation_AddToContacts: String { return self._s[3482]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3479]!, self._r[3479]!, [_0]) + return formatWithArgumentRanges(self._s[3483]!, self._r[3483]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[3480]! } + public var NotificationsSound_Keys: String { return self._s[3484]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_0]) + return formatWithArgumentRanges(self._s[3485]!, self._r[3485]!, [_0]) } - public var Notification_MessageLifetime1w: String { return self._s[3482]! } - public var Message_Video: String { return self._s[3483]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3484]! } + public var Notification_MessageLifetime1w: String { return self._s[3486]! } + public var Message_Video: String { return self._s[3487]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3488]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3485]!, self._r[3485]!, [_1]) + return formatWithArgumentRanges(self._s[3489]!, self._r[3489]!, [_1]) } - public var Wallet_Receive_AmountInfo: String { return self._s[3488]! } + public var Wallet_Receive_AmountInfo: String { return self._s[3492]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3489]!, self._r[3489]!, [_0]) + return formatWithArgumentRanges(self._s[3493]!, self._r[3493]!, [_0]) } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3490]!, self._r[3490]!, [_0]) + return formatWithArgumentRanges(self._s[3494]!, self._r[3494]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3491]! } + public var Passport_Language_mk: String { return self._s[3495]! } public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3492]!, self._r[3492]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3496]!, self._r[3496]!, [_1, _2, _3]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3493]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3495]! } - public var PrivacyPolicy_Decline: String { return self._s[3496]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3497]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3498]! } - public var Permissions_SiriAllow_v0: String { return self._s[3500]! } - public var Wallet_Month_ShortAugust: String { return self._s[3501]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3502]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3497]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3499]! } + public var PrivacyPolicy_Decline: String { return self._s[3500]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3501]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3502]! } + public var Permissions_SiriAllow_v0: String { return self._s[3504]! } + public var Wallet_Month_ShortAugust: String { return self._s[3505]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3506]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3503]!, self._r[3503]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3507]!, self._r[3507]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3504]!, self._r[3504]!, [_0]) + return formatWithArgumentRanges(self._s[3508]!, self._r[3508]!, [_0]) } - public var Paint_Regular: String { return self._s[3505]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3506]! } - public var SocksProxySetup_ShareLink: String { return self._s[3507]! } - public var Wallet_Qr_Title: String { return self._s[3508]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3509]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3511]! } - public var GroupInfo_InviteByLink: String { return self._s[3512]! } - public var MessageTimer_Custom: String { return self._s[3513]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3514]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3516]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3517]! } - public var VoiceOver_Chat_Selected: String { return self._s[3518]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3519]! } - public var Channel_Username_InvalidTaken: String { return self._s[3520]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3521]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3522]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3523]! } - public var Settings_ChatBackground: String { return self._s[3524]! } - public var Channel_Subscribers_Title: String { return self._s[3525]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3526]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3527]! } - public var Watch_ConnectionDescription: String { return self._s[3528]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3532]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3533]! } - public var EditProfile_Title: String { return self._s[3534]! } - public var NotificationsSound_Bamboo: String { return self._s[3536]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3538]! } - public var Login_SmsRequestState2: String { return self._s[3539]! } - public var Passport_Language_ar: String { return self._s[3540]! } + public var Paint_Regular: String { return self._s[3509]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3510]! } + public var SocksProxySetup_ShareLink: String { return self._s[3511]! } + public var Wallet_Qr_Title: String { return self._s[3512]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3513]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3515]! } + public var GroupInfo_InviteByLink: String { return self._s[3516]! } + public var MessageTimer_Custom: String { return self._s[3517]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3518]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3520]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3521]! } + public var VoiceOver_Chat_Selected: String { return self._s[3522]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3523]! } + public var Channel_Username_InvalidTaken: String { return self._s[3524]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3525]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3526]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3527]! } + public var Settings_ChatBackground: String { return self._s[3528]! } + public var Channel_Subscribers_Title: String { return self._s[3529]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3530]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3531]! } + public var Watch_ConnectionDescription: String { return self._s[3532]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3536]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3537]! } + public var EditProfile_Title: String { return self._s[3538]! } + public var NotificationsSound_Bamboo: String { return self._s[3540]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3542]! } + public var Login_SmsRequestState2: String { return self._s[3543]! } + public var Passport_Language_ar: String { return self._s[3544]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_0]) + return formatWithArgumentRanges(self._s[3545]!, self._r[3545]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3542]! } - public var Wallet_Created_Text: String { return self._s[3543]! } - public var Conversation_MessageDialogEdit: String { return self._s[3544]! } - public var Wallet_Created_Proceed: String { return self._s[3545]! } - public var Wallet_Words_Done: String { return self._s[3546]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3547]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3546]! } + public var Wallet_Created_Text: String { return self._s[3547]! } + public var Conversation_MessageDialogEdit: String { return self._s[3548]! } + public var Wallet_Created_Proceed: String { return self._s[3549]! } + public var Wallet_Words_Done: String { return self._s[3550]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3551]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3548]!, self._r[3548]!, [_1]) + return formatWithArgumentRanges(self._s[3552]!, self._r[3552]!, [_1]) } - public var Common_Close: String { return self._s[3549]! } - public var GroupInfo_PublicLink: String { return self._s[3550]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3551]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3552]! } + public var Common_Close: String { return self._s[3553]! } + public var GroupInfo_PublicLink: String { return self._s[3554]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3555]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3556]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3556]!, self._r[3556]!, [_0]) + return formatWithArgumentRanges(self._s[3560]!, self._r[3560]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3557]! } + public var UserInfo_About_Placeholder: String { return self._s[3561]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3558]!, self._r[3558]!, [_0]) - } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3559]! } - public var Channel_Info_Banned: String { return self._s[3561]! } - public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3562]!, self._r[3562]!, [_0]) } - public var Appearance_Other: String { return self._s[3563]! } - public var Passport_Language_my: String { return self._s[3564]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3565]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3563]! } + public var Channel_Info_Banned: String { return self._s[3565]! } + public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3566]!, self._r[3566]!, [_0]) + } + public var Appearance_Other: String { return self._s[3567]! } + public var Passport_Language_my: String { return self._s[3568]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3569]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3566]!, self._r[3566]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3570]!, self._r[3570]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3567]! } - public var Preview_CopyAddress: String { return self._s[3568]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3571]! } + public var Preview_CopyAddress: String { return self._s[3572]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3569]!, self._r[3569]!, [_0]) + return formatWithArgumentRanges(self._s[3573]!, self._r[3573]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3570]! } - public var UserInfo_BotSettings: String { return self._s[3571]! } - public var LiveLocation_MenuStopAll: String { return self._s[3573]! } - public var Passport_PasswordCreate: String { return self._s[3574]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3575]! } - public var Message_PinnedLocationMessage: String { return self._s[3576]! } - public var Map_Satellite: String { return self._s[3577]! } - public var Watch_Message_Unsupported: String { return self._s[3578]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3579]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3580]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3574]! } + public var UserInfo_BotSettings: String { return self._s[3575]! } + public var LiveLocation_MenuStopAll: String { return self._s[3577]! } + public var Passport_PasswordCreate: String { return self._s[3578]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3579]! } + public var Message_PinnedLocationMessage: String { return self._s[3580]! } + public var Map_Satellite: String { return self._s[3581]! } + public var Watch_Message_Unsupported: String { return self._s[3582]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3583]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3584]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3581]!, self._r[3581]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3585]!, self._r[3585]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3582]!, self._r[3582]!, [_0]) + return formatWithArgumentRanges(self._s[3586]!, self._r[3586]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[3583]! } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3584]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3585]! } - public var NotificationsSound_None: String { return self._s[3586]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3587]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3589]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3590]! } + public var Wallet_WordImport_Continue: String { return self._s[3587]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3588]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3589]! } + public var NotificationsSound_None: String { return self._s[3590]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3591]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3593]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3594]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3591]!, self._r[3591]!, [_1]) + return formatWithArgumentRanges(self._s[3595]!, self._r[3595]!, [_1]) } - public var Cache_Indexing: String { return self._s[3592]! } - public var DialogList_RecentTitlePeople: String { return self._s[3594]! } - public var DialogList_EncryptionRejected: String { return self._s[3595]! } - public var GroupInfo_Administrators: String { return self._s[3596]! } - public var Passport_ScanPassportHelp: String { return self._s[3597]! } - public var Application_Name: String { return self._s[3598]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3599]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3601]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3602]! } + public var Cache_Indexing: String { return self._s[3596]! } + public var DialogList_RecentTitlePeople: String { return self._s[3598]! } + public var DialogList_EncryptionRejected: String { return self._s[3599]! } + public var GroupInfo_Administrators: String { return self._s[3600]! } + public var Passport_ScanPassportHelp: String { return self._s[3601]! } + public var Application_Name: String { return self._s[3602]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3603]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3605]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3606]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3603]!, self._r[3603]!, [_0]) + return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, [_0]) } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3604]!, self._r[3604]!, [_0]) + return formatWithArgumentRanges(self._s[3608]!, self._r[3608]!, [_0]) } public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3605]!, self._r[3605]!, [_0]) + return formatWithArgumentRanges(self._s[3609]!, self._r[3609]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3606]! } - public var Privacy_ChatsTitle: String { return self._s[3607]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3608]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3609]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3610]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3611]! } - public var Group_LinkedChannel: String { return self._s[3612]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3613]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3614]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3615]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3616]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3618]! } - public var Channel_Setup_TypePublic: String { return self._s[3620]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3610]! } + public var Privacy_ChatsTitle: String { return self._s[3611]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3612]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3613]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3614]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3615]! } + public var Group_LinkedChannel: String { return self._s[3616]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3617]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3618]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3619]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3620]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3622]! } + public var Channel_Setup_TypePublic: String { return self._s[3624]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3621]!, self._r[3621]!, [_0]) + return formatWithArgumentRanges(self._s[3625]!, self._r[3625]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3623]! } - public var Map_OpenInMaps: String { return self._s[3625]! } + public var Channel_TypeSetup_Title: String { return self._s[3627]! } + public var Map_OpenInMaps: String { return self._s[3629]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3626]!, self._r[3626]!, [_1]) + return formatWithArgumentRanges(self._s[3630]!, self._r[3630]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3628]! } + public var NotificationsSound_Tremolo: String { return self._s[3632]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3629]!, self._r[3629]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3633]!, self._r[3633]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3630]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3631]! } - public var Passport_PasswordHelp: String { return self._s[3632]! } - public var Login_CodeExpiredError: String { return self._s[3633]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3634]! } - public var Conversation_TitleUnmute: String { return self._s[3635]! } - public var Passport_Identity_ScansHelp: String { return self._s[3636]! } - public var Passport_Language_lo: String { return self._s[3637]! } - public var Camera_FlashAuto: String { return self._s[3638]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3639]! } - public var Common_Cancel: String { return self._s[3640]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3641]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3642]! } - public var Appearance_TintAllColors: String { return self._s[3643]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3634]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3635]! } + public var Passport_PasswordHelp: String { return self._s[3636]! } + public var Login_CodeExpiredError: String { return self._s[3637]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3638]! } + public var Conversation_TitleUnmute: String { return self._s[3639]! } + public var Passport_Identity_ScansHelp: String { return self._s[3640]! } + public var Passport_Language_lo: String { return self._s[3641]! } + public var Camera_FlashAuto: String { return self._s[3642]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3643]! } + public var Common_Cancel: String { return self._s[3644]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3645]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3646]! } + public var Appearance_TintAllColors: String { return self._s[3647]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3644]!, self._r[3644]!, [_1]) + return formatWithArgumentRanges(self._s[3648]!, self._r[3648]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3645]! } - public var ChatSettings_Title: String { return self._s[3647]! } - public var Passport_PasswordReset: String { return self._s[3648]! } - public var SocksProxySetup_TypeNone: String { return self._s[3649]! } - public var EditTheme_Title: String { return self._s[3651]! } - public var PhoneNumberHelp_Help: String { return self._s[3652]! } - public var Checkout_EnterPassword: String { return self._s[3653]! } - public var Share_AuthTitle: String { return self._s[3655]! } - public var Activity_UploadingDocument: String { return self._s[3656]! } - public var State_Connecting: String { return self._s[3657]! } - public var Profile_MessageLifetime1w: String { return self._s[3658]! } - public var Conversation_ContextMenuReport: String { return self._s[3659]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3660]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3661]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3649]! } + public var ChatSettings_Title: String { return self._s[3651]! } + public var Passport_PasswordReset: String { return self._s[3652]! } + public var SocksProxySetup_TypeNone: String { return self._s[3653]! } + public var EditTheme_Title: String { return self._s[3655]! } + public var PhoneNumberHelp_Help: String { return self._s[3656]! } + public var Checkout_EnterPassword: String { return self._s[3657]! } + public var Share_AuthTitle: String { return self._s[3659]! } + public var Activity_UploadingDocument: String { return self._s[3660]! } + public var State_Connecting: String { return self._s[3661]! } + public var Profile_MessageLifetime1w: String { return self._s[3662]! } + public var Conversation_ContextMenuReport: String { return self._s[3663]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3664]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3665]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3662]!, self._r[3662]!, [_0]) + return formatWithArgumentRanges(self._s[3666]!, self._r[3666]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3663]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3664]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3665]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3666]! } - public var PhotoEditor_Set: String { return self._s[3667]! } - public var EmptyGroupInfo_Title: String { return self._s[3668]! } - public var Login_PadPhoneHelp: String { return self._s[3669]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3671]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3673]! } - public var NotificationsSound_Complete: String { return self._s[3674]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3675]! } - public var Group_Info_AdminLog: String { return self._s[3676]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3677]! } + public var AuthSessions_Terminate: String { return self._s[3667]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3668]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3669]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3670]! } + public var PhotoEditor_Set: String { return self._s[3671]! } + public var EmptyGroupInfo_Title: String { return self._s[3672]! } + public var Login_PadPhoneHelp: String { return self._s[3673]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3675]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3677]! } + public var NotificationsSound_Complete: String { return self._s[3678]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3679]! } + public var Group_Info_AdminLog: String { return self._s[3680]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3681]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3678]!, self._r[3678]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3682]!, self._r[3682]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3679]! } - public var Conversation_Admin: String { return self._s[3681]! } - public var Conversation_GifTooltip: String { return self._s[3682]! } - public var Passport_NotLoggedInMessage: String { return self._s[3683]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3683]! } + public var Conversation_Admin: String { return self._s[3685]! } + public var Conversation_GifTooltip: String { return self._s[3686]! } + public var Passport_NotLoggedInMessage: String { return self._s[3687]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3685]!, self._r[3685]!, [_0]) + return formatWithArgumentRanges(self._s[3689]!, self._r[3689]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3686]! } - public var SharedMedia_EmptyTitle: String { return self._s[3688]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3690]! } - public var Username_Help: String { return self._s[3691]! } - public var DialogList_LanguageTooltip: String { return self._s[3693]! } - public var Map_LoadError: String { return self._s[3694]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3695]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3696]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3697]! } - public var Notification_Exceptions_NewException: String { return self._s[3698]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3699]! } - public var WatchRemote_AlertText: String { return self._s[3700]! } + public var Profile_MessageLifetimeForever: String { return self._s[3690]! } + public var SharedMedia_EmptyTitle: String { return self._s[3692]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3694]! } + public var Username_Help: String { return self._s[3695]! } + public var DialogList_LanguageTooltip: String { return self._s[3697]! } + public var Map_LoadError: String { return self._s[3698]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3699]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3700]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3701]! } + public var Notification_Exceptions_NewException: String { return self._s[3702]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3703]! } + public var WatchRemote_AlertText: String { return self._s[3704]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3705]!, self._r[3705]!, [_1, _2]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[3705]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[3709]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_0]) + return formatWithArgumentRanges(self._s[3710]!, self._r[3710]!, [_0]) } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3707]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3708]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3711]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3712]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3709]!, self._r[3709]!, [_0]) + return formatWithArgumentRanges(self._s[3713]!, self._r[3713]!, [_0]) } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3710]!, self._r[3710]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3714]!, self._r[3714]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3711]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3712]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3714]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3715]! } - public var ChatList_UndoArchiveText1: String { return self._s[3716]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3717]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3718]! } - public var Cache_ClearNone: String { return self._s[3719]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3720]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3721]! } + public var Group_AdminLog_EmptyText: String { return self._s[3715]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3716]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3718]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3719]! } + public var ChatList_UndoArchiveText1: String { return self._s[3720]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3721]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3722]! } + public var Cache_ClearNone: String { return self._s[3723]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3724]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3725]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3722]!, self._r[3722]!, [_0]) + return formatWithArgumentRanges(self._s[3726]!, self._r[3726]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[3723]! } + public var Passport_Identity_Country: String { return self._s[3727]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3724]!, self._r[3724]!, [_0]) + return formatWithArgumentRanges(self._s[3728]!, self._r[3728]!, [_0]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3725]!, self._r[3725]!, [_0]) + return formatWithArgumentRanges(self._s[3729]!, self._r[3729]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3726]! } - public var AccessDenied_Settings: String { return self._s[3727]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3728]! } - public var Month_ShortMay: String { return self._s[3729]! } - public var Compose_NewGroup: String { return self._s[3731]! } - public var Group_Setup_TypePrivate: String { return self._s[3733]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3735]! } - public var Appearance_ThemeDayClassic: String { return self._s[3736]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3737]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3738]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3739]! } - public var Conversation_typing: String { return self._s[3741]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3742]! } - public var Paint_Masks: String { return self._s[3743]! } - public var Contacts_DeselectAll: String { return self._s[3744]! } + public var Exceptions_AddToExceptions: String { return self._s[3730]! } + public var AccessDenied_Settings: String { return self._s[3731]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3732]! } + public var Month_ShortMay: String { return self._s[3733]! } + public var Compose_NewGroup: String { return self._s[3735]! } + public var Group_Setup_TypePrivate: String { return self._s[3737]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3739]! } + public var Appearance_ThemeDayClassic: String { return self._s[3740]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3741]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3742]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3743]! } + public var Conversation_typing: String { return self._s[3745]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3746]! } + public var Paint_Masks: String { return self._s[3747]! } + public var Contacts_DeselectAll: String { return self._s[3748]! } public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3745]!, self._r[3745]!, [_0]) + return formatWithArgumentRanges(self._s[3749]!, self._r[3749]!, [_0]) } - public var Username_InvalidTaken: String { return self._s[3746]! } - public var Call_StatusNoAnswer: String { return self._s[3747]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3748]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3749]! } - public var Passport_Identity_Selfie: String { return self._s[3750]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3751]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3752]! } - public var Conversation_ClearSecretHistory: String { return self._s[3753]! } - public var PeopleNearby_Description: String { return self._s[3755]! } - public var NetworkUsageSettings_Title: String { return self._s[3756]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3758]! } + public var Username_InvalidTaken: String { return self._s[3750]! } + public var Call_StatusNoAnswer: String { return self._s[3751]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3752]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3753]! } + public var Passport_Identity_Selfie: String { return self._s[3754]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3755]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3756]! } + public var Conversation_ClearSecretHistory: String { return self._s[3757]! } + public var PeopleNearby_Description: String { return self._s[3759]! } + public var NetworkUsageSettings_Title: String { return self._s[3760]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3762]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3760]!, self._r[3760]!, [_0]) + return formatWithArgumentRanges(self._s[3764]!, self._r[3764]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3761]!, self._r[3761]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3765]!, self._r[3765]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3763]! } - public var VoiceOver_Navigation_Search: String { return self._s[3764]! } - public var Map_LiveLocationTitle: String { return self._s[3765]! } - public var Login_InfoAvatarAdd: String { return self._s[3766]! } - public var Passport_Identity_FilesView: String { return self._s[3767]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3768]! } - public var Privacy_Calls_NeverAllow: String { return self._s[3769]! } - public var VoiceOver_Chat_File: String { return self._s[3770]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3771]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[3767]! } + public var VoiceOver_Navigation_Search: String { return self._s[3768]! } + public var Map_LiveLocationTitle: String { return self._s[3769]! } + public var Login_InfoAvatarAdd: String { return self._s[3770]! } + public var Passport_Identity_FilesView: String { return self._s[3771]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3772]! } + public var Privacy_Calls_NeverAllow: String { return self._s[3773]! } + public var VoiceOver_Chat_File: String { return self._s[3774]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3775]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_0]) + return formatWithArgumentRanges(self._s[3776]!, self._r[3776]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[3773]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[3774]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3775]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[3777]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[3778]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3779]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3776]!, self._r[3776]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3780]!, self._r[3780]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3777]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[3778]! } - public var Tour_Title2: String { return self._s[3779]! } - public var Wallet_Sent_ViewWallet: String { return self._s[3780]! } - public var Conversation_FileOpenIn: String { return self._s[3781]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3782]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[3783]! } - public var Wallpaper_Set: String { return self._s[3784]! } - public var Passport_Identity_Translations: String { return self._s[3786]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3781]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[3782]! } + public var Tour_Title2: String { return self._s[3783]! } + public var Wallet_Sent_ViewWallet: String { return self._s[3784]! } + public var Conversation_FileOpenIn: String { return self._s[3785]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3786]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[3787]! } + public var Wallpaper_Set: String { return self._s[3788]! } + public var Passport_Identity_Translations: String { return self._s[3790]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3787]!, self._r[3787]!, [_0]) + return formatWithArgumentRanges(self._s[3791]!, self._r[3791]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[3788]! } + public var Channel_LeaveChannel: String { return self._s[3792]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_1]) + return formatWithArgumentRanges(self._s[3793]!, self._r[3793]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3791]! } - public var PhotoEditor_HighlightsTint: String { return self._s[3792]! } - public var Passport_Email_Delete: String { return self._s[3793]! } - public var Conversation_Mute: String { return self._s[3795]! } - public var Channel_AddBotAsAdmin: String { return self._s[3796]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3798]! } - public var Channel_Management_LabelOwner: String { return self._s[3800]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3795]! } + public var PhotoEditor_HighlightsTint: String { return self._s[3796]! } + public var Passport_Email_Delete: String { return self._s[3797]! } + public var Conversation_Mute: String { return self._s[3799]! } + public var Channel_AddBotAsAdmin: String { return self._s[3800]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3802]! } + public var Channel_Management_LabelOwner: String { return self._s[3804]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3805]!, self._r[3805]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[3802]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[3803]! } - public var Common_No: String { return self._s[3804]! } - public var Weekday_Sunday: String { return self._s[3805]! } - public var Notification_Reply: String { return self._s[3806]! } - public var Conversation_ViewMessage: String { return self._s[3807]! } + public var Calls_CallTabDescription: String { return self._s[3806]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[3807]! } + public var Common_No: String { return self._s[3808]! } + public var Weekday_Sunday: String { return self._s[3809]! } + public var Notification_Reply: String { return self._s[3810]! } + public var Conversation_ViewMessage: String { return self._s[3811]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0]) + return formatWithArgumentRanges(self._s[3812]!, self._r[3812]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3809]!, self._r[3809]!, [_0]) + return formatWithArgumentRanges(self._s[3813]!, self._r[3813]!, [_0]) } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3810]!, self._r[3810]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3814]!, self._r[3814]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[3811]! } - public var Wallet_Send_Title: String { return self._s[3812]! } - public var Message_PinnedDocumentMessage: String { return self._s[3813]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[3814]! } - public var DialogList_TabTitle: String { return self._s[3816]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[3817]! } - public var Passport_FieldEmail: String { return self._s[3818]! } - public var Conversation_UnpinMessageAlert: String { return self._s[3819]! } - public var Passport_Address_TypeBankStatement: String { return self._s[3820]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[3821]! } - public var Passport_Identity_ExpiryDate: String { return self._s[3822]! } - public var Privacy_Calls_P2P: String { return self._s[3823]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[3815]! } + public var Wallet_Send_Title: String { return self._s[3816]! } + public var Message_PinnedDocumentMessage: String { return self._s[3817]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[3818]! } + public var DialogList_TabTitle: String { return self._s[3820]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[3821]! } + public var Passport_FieldEmail: String { return self._s[3822]! } + public var Conversation_UnpinMessageAlert: String { return self._s[3823]! } + public var Passport_Address_TypeBankStatement: String { return self._s[3824]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[3825]! } + public var Passport_Identity_ExpiryDate: String { return self._s[3826]! } + public var Privacy_Calls_P2P: String { return self._s[3827]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3825]!, self._r[3825]!, [_0]) + return formatWithArgumentRanges(self._s[3829]!, self._r[3829]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[3826]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[3830]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3827]!, self._r[3827]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3831]!, self._r[3831]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[3828]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3829]! } - public var Passport_InfoText: String { return self._s[3830]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[3831]! } + public var Stickers_ClearRecent: String { return self._s[3832]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3833]! } + public var Passport_InfoText: String { return self._s[3834]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[3835]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_0]) + return formatWithArgumentRanges(self._s[3836]!, self._r[3836]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3833]!, self._r[3833]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3837]!, self._r[3837]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3834]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[3835]! } - public var VoiceOver_Navigation_Compose: String { return self._s[3836]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[3837]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[3839]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[3840]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3838]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[3839]! } + public var VoiceOver_Navigation_Compose: String { return self._s[3840]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[3841]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[3843]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[3844]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3845]!, self._r[3845]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3843]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3847]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3845]!, self._r[3845]!, [_0]) + return formatWithArgumentRanges(self._s[3849]!, self._r[3849]!, [_0]) } - public var DialogList_Unread: String { return self._s[3846]! } + public var DialogList_Unread: String { return self._s[3850]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3847]!, self._r[3847]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3851]!, self._r[3851]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[3848]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[3849]! } + public var User_DeletedAccount: String { return self._s[3852]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[3853]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3850]!, self._r[3850]!, [_0]) + return formatWithArgumentRanges(self._s[3854]!, self._r[3854]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[3851]! } - public var SharedMedia_CategoryMedia: String { return self._s[3852]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[3853]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[3854]! } - public var Watch_ChatList_Compose: String { return self._s[3855]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[3856]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3857]! } - public var Watch_Microphone_Access: String { return self._s[3858]! } - public var Group_Setup_HistoryHeader: String { return self._s[3859]! } - public var Map_SetThisLocation: String { return self._s[3860]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3861]! } - public var Activity_UploadingPhoto: String { return self._s[3862]! } - public var Conversation_Edit: String { return self._s[3864]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[3865]! } - public var Login_TermsOfServiceDecline: String { return self._s[3866]! } - public var Message_PinnedContactMessage: String { return self._s[3867]! } + public var UserInfo_NotificationsDefault: String { return self._s[3855]! } + public var SharedMedia_CategoryMedia: String { return self._s[3856]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[3857]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[3858]! } + public var Watch_ChatList_Compose: String { return self._s[3859]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[3860]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3861]! } + public var Watch_Microphone_Access: String { return self._s[3862]! } + public var Group_Setup_HistoryHeader: String { return self._s[3863]! } + public var Map_SetThisLocation: String { return self._s[3864]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3865]! } + public var Activity_UploadingPhoto: String { return self._s[3866]! } + public var Conversation_Edit: String { return self._s[3868]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[3869]! } + public var Login_TermsOfServiceDecline: String { return self._s[3870]! } + public var Message_PinnedContactMessage: String { return self._s[3871]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3868]!, self._r[3868]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3872]!, self._r[3872]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3869]!, self._r[3869]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3873]!, self._r[3873]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[3870]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[3872]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[3873]! } + public var Appearance_LargeEmoji: String { return self._s[3874]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[3876]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[3877]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3874]!, self._r[3874]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3878]!, self._r[3878]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3875]! } - public var Message_PinnedPhotoMessage: String { return self._s[3876]! } - public var Passport_FieldPhone: String { return self._s[3877]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[3878]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[3879]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[3881]! } - public var Conversation_Call: String { return self._s[3882]! } - public var Common_TakePhoto: String { return self._s[3884]! } - public var Group_EditAdmin_RankTitle: String { return self._s[3885]! } - public var Wallet_Receive_CommentHeader: String { return self._s[3886]! } - public var Channel_NotificationLoading: String { return self._s[3887]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3879]! } + public var Message_PinnedPhotoMessage: String { return self._s[3880]! } + public var Passport_FieldPhone: String { return self._s[3881]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[3882]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[3883]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[3885]! } + public var Conversation_Call: String { return self._s[3886]! } + public var Common_TakePhoto: String { return self._s[3888]! } + public var Group_EditAdmin_RankTitle: String { return self._s[3889]! } + public var Wallet_Receive_CommentHeader: String { return self._s[3890]! } + public var Channel_NotificationLoading: String { return self._s[3891]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3888]!, self._r[3888]!, [_0]) - } - public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_0]) - } - public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3890]!, self._r[3890]!, [_1]) - } - public var Permissions_SiriTitle_v0: String { return self._s[3891]! } - public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3892]!, self._r[3892]!, [_0]) } - public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3893]!, self._r[3893]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[3894]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[3895]! } - public var ClearCache_FreeSpace: String { return self._s[3896]! } - public var Common_edit: String { return self._s[3897]! } - public var PrivacySettings_AuthSessions: String { return self._s[3898]! } - public var Month_ShortJune: String { return self._s[3899]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[3900]! } - public var Call_ReportSend: String { return self._s[3901]! } - public var Watch_LastSeen_JustNow: String { return self._s[3902]! } - public var Notifications_MessageNotifications: String { return self._s[3903]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3904]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[3906]! } - public var Group_Status: String { return self._s[3907]! } + public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3894]!, self._r[3894]!, [_1]) + } + public var Permissions_SiriTitle_v0: String { return self._s[3895]! } + public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3896]!, self._r[3896]!, [_0]) + } + public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3897]!, self._r[3897]!, [_0]) + } + public var Channel_MessagePhotoRemoved: String { return self._s[3898]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[3899]! } + public var ClearCache_FreeSpace: String { return self._s[3900]! } + public var Common_edit: String { return self._s[3901]! } + public var PrivacySettings_AuthSessions: String { return self._s[3902]! } + public var Month_ShortJune: String { return self._s[3903]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[3904]! } + public var Call_ReportSend: String { return self._s[3905]! } + public var Watch_LastSeen_JustNow: String { return self._s[3906]! } + public var Notifications_MessageNotifications: String { return self._s[3907]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3908]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[3910]! } + public var Group_Status: String { return self._s[3911]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3908]!, self._r[3908]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3912]!, self._r[3912]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[3909]! } - public var ShareMenu_ShareTo: String { return self._s[3910]! } - public var Conversation_Moderate_Ban: String { return self._s[3911]! } + public var TextFormat_AddLinkTitle: String { return self._s[3913]! } + public var ShareMenu_ShareTo: String { return self._s[3914]! } + public var Conversation_Moderate_Ban: String { return self._s[3915]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3912]!, self._r[3912]!, [_0]) + return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[3913]! } - public var Map_LiveLocationFor8Hours: String { return self._s[3914]! } + public var SharedMedia_ViewInChat: String { return self._s[3917]! } + public var Map_LiveLocationFor8Hours: String { return self._s[3918]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_1]) + return formatWithArgumentRanges(self._s[3919]!, self._r[3919]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3920]!, self._r[3920]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3918]!, self._r[3918]!, [_0]) + return formatWithArgumentRanges(self._s[3922]!, self._r[3922]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[3919]! } - public var Appearance_ReduceMotion: String { return self._s[3920]! } + public var Map_OpenInHereMaps: String { return self._s[3923]! } + public var Appearance_ReduceMotion: String { return self._s[3924]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3921]!, self._r[3921]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[3922]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[3923]! } - public var PhotoEditor_Skip: String { return self._s[3924]! } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[3926]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[3927]! } + public var PhotoEditor_Skip: String { return self._s[3928]! } + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusMembers(_ value: Int32) -> String { + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, _1, _2) } - public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Invitation_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_File(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_SharePhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortDays(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteText_ContactsCountText(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_SelectedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) - } public func ForwardedLocations(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Theme_UsersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedGifs(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_Video(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_SelectedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusOnline(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MuteFor_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Contacts_ImportersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAudios(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Months(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_StickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_Exceptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Passport_Scans(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Media_ShareItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) - } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Weeks(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPolls(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } public func ForwardedStickers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func UserCount(_ value: Int32) -> String { + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } public func LastSeen_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func Media_ShareItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ForwardedContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } public func ForwardedVideoMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) + } + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedGifs(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_SelectedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPhotos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, _1, _2) } public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Generic(_ value: Int32) -> String { + public func MessageTimer_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func UserCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_UserInfo_Mute(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Video(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, _1, _2) } public func SharedMedia_Link(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func Conversation_StatusMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MuteFor_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Generic(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Passport_Scans(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAudios(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_File(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Weeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusOnline(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notifications_Exceptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendGif(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPolls(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_SharePhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) } public func Call_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Months(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_StickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Invitation_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Map_ETAMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 47cec58d0e..b44fad11b3 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -1689,6 +1689,10 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.present(MessageReactionListController(context: strongSelf.context, messageId: message.id, initialReactions: initialReactions), in: .window(.root)) } }) + }, displaySwipeToReplyHint: { [weak self] in + if let strongSelf = self { + strongSelf.present(UndoOverlayController(presentationData: strongSelf.presentationData, content: .swipeToReply(title: strongSelf.presentationData.strings.Conversation_SwipeToReplyHintTitle, text: strongSelf.presentationData.strings.Conversation_SwipeToReplyHintText), elevatedLayout: true, action: { _ in }), in: .window(.root)) + } }, requestMessageUpdate: { [weak self] id in if let strongSelf = self { strongSelf.chatDisplayNode.historyNode.requestMessageUpdate(id) @@ -5073,8 +5077,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G self.dismiss() case .clearCache: let clearDisposable = MetaDisposable() - self.updateChatPresentationInterfaceState(animated: true, interactive: true, { $0.updatedInterfaceState({ $0.withoutSelectionState() }) }) - + switch self.chatLocationInfoData { case let .peer(peerView): self.navigationActionDisposable.set((peerView.get() @@ -5244,13 +5247,15 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G clearDisposable.set(nil) } clearDisposable.set((signal - |> deliverOnMainQueue).start(completed: { - - - strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0), elevatedLayout: false, action: { _ in }), in: .window(.root)) + |> deliverOnMainQueue).start(completed: { [weak self] in + if let strongSelf = self { + strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0), elevatedLayout: true, action: { _ in }), in: .window(.root)) + } })) dismissAction() + + strongSelf.updateChatPresentationInterfaceState(animated: true, interactive: true, { $0.updatedInterfaceState({ $0.withoutSelectionState() }) }) })) controller.setItemGroups([ diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift b/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift index c415320a3a..e15d7323de 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift @@ -99,6 +99,7 @@ public final class ChatControllerInteraction { let performTextSelectionAction: (UInt32, String, TextSelectionAction) -> Void let updateMessageReaction: (MessageId, String) -> Void let openMessageReactions: (MessageId) -> Void + let displaySwipeToReplyHint: () -> Void let requestMessageUpdate: (MessageId) -> Void let cancelInteractiveKeyboardGestures: () -> Void @@ -113,7 +114,7 @@ public final class ChatControllerInteraction { var searchTextHighightState: (String, [MessageIndex])? var seenOneTimeAnimatedMedia = Set() - init(openMessage: @escaping (Message, ChatControllerInteractionOpenMessageMode) -> Bool, openPeer: @escaping (PeerId?, ChatControllerInteractionNavigateToPeer, Message?) -> Void, openPeerMention: @escaping (String) -> Void, openMessageContextMenu: @escaping (Message, Bool, ASDisplayNode, CGRect, TapLongTapOrDoubleTapGestureRecognizer?) -> Void, openMessageContextActions: @escaping (Message, ASDisplayNode, CGRect, ContextGesture?) -> Void, navigateToMessage: @escaping (MessageId, MessageId) -> Void, clickThroughMessage: @escaping () -> Void, toggleMessagesSelection: @escaping ([MessageId], Bool) -> Void, sendCurrentMessage: @escaping (Bool) -> Void, sendMessage: @escaping (String) -> Void, sendSticker: @escaping (FileMediaReference, Bool, ASDisplayNode, CGRect) -> Bool, sendGif: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, requestMessageActionCallback: @escaping (MessageId, MemoryBuffer?, Bool) -> Void, requestMessageActionUrlAuth: @escaping (String, MessageId, Int32) -> Void, activateSwitchInline: @escaping (PeerId?, String) -> Void, openUrl: @escaping (String, Bool, Bool?) -> Void, shareCurrentLocation: @escaping () -> Void, shareAccountContact: @escaping () -> Void, sendBotCommand: @escaping (MessageId?, String) -> Void, openInstantPage: @escaping (Message, ChatMessageItemAssociatedData?) -> Void, openWallpaper: @escaping (Message) -> Void, openTheme: @escaping (Message) -> Void, openHashtag: @escaping (String?, String) -> Void, updateInputState: @escaping ((ChatTextInputState) -> ChatTextInputState) -> Void, updateInputMode: @escaping ((ChatInputMode) -> ChatInputMode) -> Void, openMessageShareMenu: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, navigationController: @escaping () -> NavigationController?, chatControllerNode: @escaping () -> ASDisplayNode?, reactionContainerNode: @escaping () -> ReactionSelectionParentNode?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, callPeer: @escaping (PeerId) -> Void, longTap: @escaping (ChatControllerInteractionLongTapAction, Message?) -> Void, openCheckoutOrReceipt: @escaping (MessageId) -> Void, openSearch: @escaping () -> Void, setupReply: @escaping (MessageId) -> Void, canSetupReply: @escaping (Message) -> Bool, navigateToFirstDateMessage: @escaping(Int32) ->Void, requestRedeliveryOfFailedMessages: @escaping (MessageId) -> Void, addContact: @escaping (String) -> Void, rateCall: @escaping (Message, CallId) -> Void, requestSelectMessagePollOption: @escaping (MessageId, Data) -> Void, openAppStorePage: @escaping () -> Void, displayMessageTooltip: @escaping (MessageId, String, ASDisplayNode?, CGRect?) -> Void, seekToTimecode: @escaping (Message, Double, Bool) -> Void, scheduleCurrentMessage: @escaping () -> Void, sendScheduledMessagesNow: @escaping ([MessageId]) -> Void, editScheduledMessagesTime: @escaping ([MessageId]) -> Void, performTextSelectionAction: @escaping (UInt32, String, TextSelectionAction) -> Void, updateMessageReaction: @escaping (MessageId, String) -> Void, openMessageReactions: @escaping (MessageId) -> Void, requestMessageUpdate: @escaping (MessageId) -> Void, cancelInteractiveKeyboardGestures: @escaping () -> Void, automaticMediaDownloadSettings: MediaAutoDownloadSettings, pollActionState: ChatInterfacePollActionState, stickerSettings: ChatInterfaceStickerSettings) { + init(openMessage: @escaping (Message, ChatControllerInteractionOpenMessageMode) -> Bool, openPeer: @escaping (PeerId?, ChatControllerInteractionNavigateToPeer, Message?) -> Void, openPeerMention: @escaping (String) -> Void, openMessageContextMenu: @escaping (Message, Bool, ASDisplayNode, CGRect, TapLongTapOrDoubleTapGestureRecognizer?) -> Void, openMessageContextActions: @escaping (Message, ASDisplayNode, CGRect, ContextGesture?) -> Void, navigateToMessage: @escaping (MessageId, MessageId) -> Void, clickThroughMessage: @escaping () -> Void, toggleMessagesSelection: @escaping ([MessageId], Bool) -> Void, sendCurrentMessage: @escaping (Bool) -> Void, sendMessage: @escaping (String) -> Void, sendSticker: @escaping (FileMediaReference, Bool, ASDisplayNode, CGRect) -> Bool, sendGif: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, requestMessageActionCallback: @escaping (MessageId, MemoryBuffer?, Bool) -> Void, requestMessageActionUrlAuth: @escaping (String, MessageId, Int32) -> Void, activateSwitchInline: @escaping (PeerId?, String) -> Void, openUrl: @escaping (String, Bool, Bool?) -> Void, shareCurrentLocation: @escaping () -> Void, shareAccountContact: @escaping () -> Void, sendBotCommand: @escaping (MessageId?, String) -> Void, openInstantPage: @escaping (Message, ChatMessageItemAssociatedData?) -> Void, openWallpaper: @escaping (Message) -> Void, openTheme: @escaping (Message) -> Void, openHashtag: @escaping (String?, String) -> Void, updateInputState: @escaping ((ChatTextInputState) -> ChatTextInputState) -> Void, updateInputMode: @escaping ((ChatInputMode) -> ChatInputMode) -> Void, openMessageShareMenu: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, navigationController: @escaping () -> NavigationController?, chatControllerNode: @escaping () -> ASDisplayNode?, reactionContainerNode: @escaping () -> ReactionSelectionParentNode?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, callPeer: @escaping (PeerId) -> Void, longTap: @escaping (ChatControllerInteractionLongTapAction, Message?) -> Void, openCheckoutOrReceipt: @escaping (MessageId) -> Void, openSearch: @escaping () -> Void, setupReply: @escaping (MessageId) -> Void, canSetupReply: @escaping (Message) -> Bool, navigateToFirstDateMessage: @escaping(Int32) ->Void, requestRedeliveryOfFailedMessages: @escaping (MessageId) -> Void, addContact: @escaping (String) -> Void, rateCall: @escaping (Message, CallId) -> Void, requestSelectMessagePollOption: @escaping (MessageId, Data) -> Void, openAppStorePage: @escaping () -> Void, displayMessageTooltip: @escaping (MessageId, String, ASDisplayNode?, CGRect?) -> Void, seekToTimecode: @escaping (Message, Double, Bool) -> Void, scheduleCurrentMessage: @escaping () -> Void, sendScheduledMessagesNow: @escaping ([MessageId]) -> Void, editScheduledMessagesTime: @escaping ([MessageId]) -> Void, performTextSelectionAction: @escaping (UInt32, String, TextSelectionAction) -> Void, updateMessageReaction: @escaping (MessageId, String) -> Void, openMessageReactions: @escaping (MessageId) -> Void, displaySwipeToReplyHint: @escaping () -> Void, requestMessageUpdate: @escaping (MessageId) -> Void, cancelInteractiveKeyboardGestures: @escaping () -> Void, automaticMediaDownloadSettings: MediaAutoDownloadSettings, pollActionState: ChatInterfacePollActionState, stickerSettings: ChatInterfaceStickerSettings) { self.openMessage = openMessage self.openPeer = openPeer self.openPeerMention = openPeerMention @@ -165,7 +166,8 @@ public final class ChatControllerInteraction { self.performTextSelectionAction = performTextSelectionAction self.updateMessageReaction = updateMessageReaction self.openMessageReactions = openMessageReactions - + self.displaySwipeToReplyHint = displaySwipeToReplyHint + self.requestMessageUpdate = requestMessageUpdate self.cancelInteractiveKeyboardGestures = cancelInteractiveKeyboardGestures @@ -201,6 +203,7 @@ public final class ChatControllerInteraction { }, performTextSelectionAction: { _, _, _ in }, updateMessageReaction: { _, _ in }, openMessageReactions: { _ in + }, displaySwipeToReplyHint: { }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift index 100a1fd6dd..4ec8d326a7 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift @@ -2121,6 +2121,19 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { } } + + var forwardingToSameChat = false + if case let .peer(id) = self.chatPresentationInterfaceState.chatLocation, id.namespace == Namespaces.Peer.CloudUser, id != self.context.account.peerId, let forwardMessageIds = self.chatPresentationInterfaceState.interfaceState.forwardMessageIds { + for messageId in forwardMessageIds { + if messageId.peerId == id { + forwardingToSameChat = true + } + } + } + if !messages.isEmpty && forwardingToSameChat { + //self.controllerInteraction.displaySwipeToReplyHint() + } + if !messages.isEmpty || self.chatPresentationInterfaceState.interfaceState.forwardMessageIds != nil { self.setupSendActionOnViewUpdate({ [weak self] in if let strongSelf = self, let textInputPanelNode = strongSelf.inputPanelNode as? ChatTextInputPanelNode { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageDateHeader.swift b/submodules/TelegramUI/TelegramUI/ChatMessageDateHeader.swift index d00aad8232..27ed5cc11b 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageDateHeader.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageDateHeader.swift @@ -32,7 +32,9 @@ final class ChatMessageDateHeader: ListViewItemHeader { self.presentationData = presentationData self.context = context self.action = action - if timestamp == Int32.max { + if timestamp == 0x7FFFFFFE { + self.roundedTimestamp = 0x7FFFFFFE + } else if timestamp == Int32.max { self.roundedTimestamp = timestamp / (granularity) * (granularity) } else { self.roundedTimestamp = ((timestamp + timezoneOffset) / (granularity)) * (granularity) @@ -151,7 +153,9 @@ final class ChatMessageDateHeaderNode: ListViewItemHeaderNode { } if scheduled { - if timeinfo.tm_year == timeinfoNow.tm_year && timeinfo.tm_yday == timeinfoNow.tm_yday { + if localTimestamp == 0x7FFFFFFE { + text = presentationData.strings.ScheduledMessages_ScheduledOnline + } else if timeinfo.tm_year == timeinfoNow.tm_year && timeinfo.tm_yday == timeinfoNow.tm_yday { text = presentationData.strings.ScheduledMessages_ScheduledToday } else { text = presentationData.strings.ScheduledMessages_ScheduledDate(text).0 diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift index 3544ecf744..1111392f1b 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift @@ -415,6 +415,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { }, performTextSelectionAction: { _, _, _ in }, updateMessageReaction: { _, _ in }, openMessageReactions: { _ in + }, displaySwipeToReplyHint: { }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: self.automaticMediaDownloadSettings, diff --git a/submodules/TelegramUI/TelegramUI/ChatScheduleTimeController.swift b/submodules/TelegramUI/TelegramUI/ChatScheduleTimeController.swift index 6d3c765d1b..2f525bf1af 100644 --- a/submodules/TelegramUI/TelegramUI/ChatScheduleTimeController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatScheduleTimeController.swift @@ -63,7 +63,7 @@ final class ChatScheduleTimeController: ViewController { override public func loadDisplayNode() { self.displayNode = ChatScheduleTimeControllerNode(context: self.context, mode: self.mode, currentTime: self.currentTime, minimalTime: self.minimalTime, dismissByTapOutside: self.dismissByTapOutside) self.controllerNode.completion = { [weak self] time in - self?.completion(time + 5) + self?.completion(time != 0x7FFFFFFE ? time + 5 : time) self?.dismiss() } self.controllerNode.dismiss = { [weak self] in diff --git a/submodules/TelegramUI/TelegramUI/ChatScheduleTimeControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatScheduleTimeControllerNode.swift index dce43d01f9..fd5355ff42 100644 --- a/submodules/TelegramUI/TelegramUI/ChatScheduleTimeControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatScheduleTimeControllerNode.swift @@ -25,6 +25,7 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel private let titleNode: ASTextNode private let cancelButton: HighlightableButtonNode private let doneButton: SolidRoundedButtonNode + private let onlineButton: HighlightableButtonNode private var pickerView: UIDatePicker? private let dateFormatter: DateFormatter @@ -75,6 +76,9 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel self.doneButton = SolidRoundedButtonNode(theme: SolidRoundedButtonTheme(theme: self.presentationData.theme), height: 52.0, cornerRadius: 11.0, gloss: false) + self.onlineButton = HighlightableButtonNode() + self.onlineButton.setTitle(self.presentationData.strings.Conversation_ScheduleMessage_SendWhenOnline, with: Font.regular(17.0), with: self.presentationData.theme.actionSheet.controlAccentColor, for: .normal) + self.dateFormatter = DateFormatter() self.dateFormatter.timeStyle = .none self.dateFormatter.dateStyle = .short @@ -97,6 +101,7 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel self.contentContainerNode.addSubnode(self.titleNode) self.contentContainerNode.addSubnode(self.cancelButton) self.contentContainerNode.addSubnode(self.doneButton) + //self.contentContainerNode.addSubnode(self.onlineButton) self.cancelButton.addTarget(self, action: #selector(self.cancelButtonPressed), forControlEvents: .touchUpInside) self.doneButton.pressed = { [weak self] in @@ -111,6 +116,7 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel } } } + self.onlineButton.addTarget(self, action: #selector(self.onlineButtonPressed), forControlEvents: .touchUpInside) self.setupPickerView(currentTime: currentTime) self.updateButtonTitle() @@ -130,7 +136,7 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel pickerView.timeZone = TimeZone.current pickerView.minuteInterval = 1 pickerView.setValue(self.presentationData.theme.actionSheet.primaryTextColor, forKey: "textColor") - contentContainerNode.view.addSubview(pickerView) + self.contentContainerNode.view.addSubview(pickerView) pickerView.addTarget(self, action: #selector(self.datePickerUpdated), for: .valueChanged) self.pickerView = pickerView @@ -154,6 +160,7 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel self.cancelButton.setTitle(self.presentationData.strings.Common_Cancel, with: Font.regular(17.0), with: self.presentationData.theme.actionSheet.controlAccentColor, for: .normal) self.doneButton.updateTheme(SolidRoundedButtonTheme(theme: self.presentationData.theme)) + self.onlineButton.setTitle(self.presentationData.strings.Conversation_ScheduleMessage_SendWhenOnline, with: Font.regular(17.0), with: self.presentationData.theme.actionSheet.controlAccentColor, for: .normal) } private func updateMinimumDate(currentTime: Int32? = nil) { @@ -233,6 +240,10 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel self.cancel?() } + @objc func onlineButtonPressed() { + self.completion?(0x7FFFFFFE) + } + @objc func dimTapGesture(_ recognizer: UITapGestureRecognizer) { if self.dismissByTapOutside, case .ended = recognizer.state { self.cancelButtonPressed() @@ -299,10 +310,12 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel let cleanInsets = layout.insets(options: [.statusBar]) insets.top = max(10.0, insets.top) + var buttonOffset: CGFloat = 0.0 //44.0 + let bottomInset: CGFloat = 10.0 + cleanInsets.bottom let titleHeight: CGFloat = 54.0 - var contentHeight = titleHeight + bottomInset + 52.0 + 17.0 - let pickerHeight: CGFloat = min(216.0, layout.size.height - contentHeight) + var contentHeight = titleHeight + bottomInset + 52.0 + 17.0 + buttonOffset + let pickerHeight: CGFloat = min(216.0, layout.size.height - contentHeight - buttonOffset) contentHeight = titleHeight + bottomInset + 52.0 + 17.0 + pickerHeight let width = horizontalContainerFillingSizeForLayout(layout: layout, sideInset: layout.safeInsets.left) @@ -329,7 +342,11 @@ class ChatScheduleTimeControllerNode: ViewControllerTracingNode, UIScrollViewDel let buttonInset: CGFloat = 16.0 let buttonHeight = self.doneButton.updateLayout(width: contentFrame.width - buttonInset * 2.0, transition: transition) - transition.updateFrame(node: self.doneButton, frame: CGRect(x: buttonInset, y: contentHeight - buttonHeight - insets.bottom - 10.0, width: contentFrame.width, height: buttonHeight)) + transition.updateFrame(node: self.doneButton, frame: CGRect(x: buttonInset, y: contentHeight - buttonHeight - insets.bottom - 10.0 - buttonOffset, width: contentFrame.width, height: buttonHeight)) + + let onlineSize = self.onlineButton.measure(CGSize(width: width, height: titleHeight)) + let onlineFrame = CGRect(origin: CGPoint(x: ceil((layout.size.width - onlineSize.width) / 2.0), y: contentHeight - 36.0 - insets.bottom), size: onlineSize) + transition.updateFrame(node: self.onlineButton, frame: onlineFrame) self.pickerView?.frame = CGRect(origin: CGPoint(x: 0.0, y: 54.0), size: CGSize(width: contentFrame.width, height: pickerHeight)) diff --git a/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift b/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift index 890ab1ff82..ef038ec9ba 100644 --- a/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift @@ -116,6 +116,7 @@ final class OverlayAudioPlayerControllerNode: ViewControllerTracingNode, UIGestu }, performTextSelectionAction: { _, _, _ in }, updateMessageReaction: { _, _ in }, openMessageReactions: { _ in + }, displaySwipeToReplyHint: { }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, pollActionState: ChatInterfacePollActionState(), stickerSettings: ChatInterfaceStickerSettings(loopAnimatedStickers: false)) diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift index 3b848e957a..19b172fa6f 100644 --- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift +++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift @@ -404,6 +404,7 @@ public class PeerMediaCollectionController: TelegramBaseController { }, performTextSelectionAction: { _, _, _ in }, updateMessageReaction: { _, _ in }, openMessageReactions: { _ in + }, displaySwipeToReplyHint: { }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, diff --git a/submodules/TelegramUI/TelegramUI/Resources/Animations/anim_swipereply.json b/submodules/TelegramUI/TelegramUI/Resources/Animations/anim_swipereply.json new file mode 100644 index 0000000000..21899c4022 --- /dev/null +++ b/submodules/TelegramUI/TelegramUI/Resources/Animations/anim_swipereply.json @@ -0,0 +1 @@ +{"v":"5.5.9","fr":60,"ip":0,"op":120,"w":72,"h":72,"nm":"swipereply","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Oval","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":75,"s":[-100]},{"t":90,"s":[-90]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[46,36,0],"to":[-3.972,0,0],"ti":[1.667,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[22.167,36,0],"to":[-1.667,0,0],"ti":[-2.306,0,0]},{"t":75,"s":[36,36,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":10,"s":[12.5,12.5,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[18.333,18.333,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":60,"s":[8.333,8.333,100]},{"t":75,"s":[26.667,26.667,100]}],"ix":6}},"ao":0,"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Bubble","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[0]},{"t":30,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[9,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":60,"s":[100,100,100]},{"t":70,"s":[20,20,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.14,-4.29],[0,0],[4.29,-0.14],[0,0],[1.37,1.09],[0.86,-0.01],[0,0],[-0.01,0.21],[0,0],[0,0],[-4.14,0.13]],"o":[[4.33,0],[0,0],[0,4.33],[0,0],[-1.88,0],[-1.51,1.59],[0,0],[2.79,-1.62],[0,0],[0,0],[0.24,-4.12],[0,0]],"v":[[1.5,-8],[9.5,-0.25],[9.5,0],[1.75,8],[1.5,8],[-3.48,6.26],[-9.3,8],[-9.5,8],[-6.5,4.09],[-6.5,-0.5],[-6.49,-0.46],[1.25,-8]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":70,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Reply","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"a":0,"k":0,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[9.55,0],[0,0],[0.59,0],[0.2,-0.19],[0,0],[-0.41,-0.44],[0,0],[0,0],[0,0],[-0.4,0.43],[0,0.27],[0,0],[-2.41,-4.54],[0,0],[-0.18,0.1],[0.01,0.14]],"o":[[0,0],[0,-0.59],[-0.27,0],[0,0],[-0.43,0.41],[0,0],[0,0],[0,0],[0.43,0.41],[0.19,-0.2],[0,0],[7.09,0],[0,0],[0.09,0.17],[0.12,-0.06],[-0.42,-11.87]],"v":[[-0.215,-5.596],[-0.215,-11.536],[-1.285,-12.606],[-2.015,-12.316],[-14.395,-0.786],[-14.445,0.734],[-14.395,0.784],[-14.395,0.784],[-2.015,12.314],[-0.505,12.264],[-0.215,11.534],[-0.215,5.604],[14.045,12.404],[14.055,12.404],[14.545,12.544],[14.735,12.214]],"c":true},"ix":2},"nm":"Контур 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Заливка 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Path","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":60,"op":120,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Oval 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[20]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[20]},{"t":35,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[46,36,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.398,0.398,0.593],"y":[1,1,-22.251]},"o":{"x":[0.202,0.202,0.175],"y":[0.15,0.15,10.582]},"t":0,"s":[0,0,100]},{"t":20,"s":[30,30,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16,16],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"contour","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"fill","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Oval 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Track","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":50,"s":[20]},{"t":60,"s":[0]}],"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[36,36,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[16.667,16.667,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[0,-4.418],[0,0],[4.418,0],[0,4.418],[0,0],[-4.418,0]],"o":[[0,0],[0,4.418],[-4.418,0],[0,0],[0,-4.418],[4.418,0]],"v":[[8,-10],[8,-10],[0,-2],[-8,-10],[-8,-10],[0,-18]],"c":true}]},{"t":60,"s":[{"i":[[0,-4.418],[0,0],[4.418,0],[0,4.418],[0,0],[-4.418,0]],"o":[[0,0],[0,4.418],[-4.418,0],[0,0],[0,-4.418],[4.418,0]],"v":[[8,-6.667],[8,13.333],[0,21.333],[-8,13.333],[-8,-6.667],[0,-14.667]],"c":true}]}],"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"fill","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Rectangle","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":30,"op":120,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index 02fd7d12c4361edac07aba3a82cbdb48ab70e33e..b4c0fec6c90727d24b1d0794eb5c5da8ea99d032 100644 GIT binary patch delta 27393 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 D@dgrU delta 26614 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 jIf+d2Kqgm{) Void) { + func pickImage(present: @escaping (ViewController) -> Void, completion: @escaping (UIImage) -> Void) { self.context.sharedContext.openImagePicker(context: self.context, completion: { image in completion(image) }, present: { [weak self] controller in - self?.context.sharedContext.mainWindow?.present(controller, on: .root) + present(controller) }) } } diff --git a/submodules/UndoUI/Sources/UndoOverlayController.swift b/submodules/UndoUI/Sources/UndoOverlayController.swift index e1ff263a32..49e1b0e111 100644 --- a/submodules/UndoUI/Sources/UndoOverlayController.swift +++ b/submodules/UndoUI/Sources/UndoOverlayController.swift @@ -10,6 +10,7 @@ public enum UndoOverlayContent { case revealedArchive(title: String, text: String, undo: Bool) case succeed(text: String) case emoji(path: String, text: String) + case swipeToReply(title: String, text: String) } public final class UndoOverlayController: ViewController { diff --git a/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift b/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift index b648b02e02..956e709334 100644 --- a/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift +++ b/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift @@ -137,6 +137,16 @@ final class UndoOverlayControllerNode: ViewControllerTracingNode { self.textNode.maximumNumberOfLines = 2 displayUndo = false self.originalRemainingSeconds = 5 + case let .swipeToReply(title, text): + self.iconNode = nil + self.iconCheckNode = nil + self.animationNode = AnimationNode(animation: "anim_swipereply", colors: [:], scale: 1.0) + self.animatedStickerNode = nil + self.titleNode.attributedText = NSAttributedString(string: title, font: Font.semibold(14.0), textColor: .white) + self.textNode.attributedText = NSAttributedString(string: text, font: Font.regular(14.0), textColor: .white) + self.textNode.maximumNumberOfLines = 2 + displayUndo = false + self.originalRemainingSeconds = 5 } self.remainingSeconds = self.originalRemainingSeconds @@ -168,7 +178,7 @@ final class UndoOverlayControllerNode: ViewControllerTracingNode { case .removedChat: self.panelWrapperNode.addSubnode(self.timerTextNode) self.panelWrapperNode.addSubnode(self.statusNode) - case .archivedChat, .hidArchive, .revealedArchive, .succeed, .emoji: + case .archivedChat, .hidArchive, .revealedArchive, .succeed, .emoji, .swipeToReply: break } self.iconNode.flatMap(self.panelWrapperNode.addSubnode) diff --git a/submodules/WalletUI/Sources/WalletAmountItem.swift b/submodules/WalletUI/Sources/WalletAmountItem.swift index 6df3a1faf3..706f76b062 100644 --- a/submodules/WalletUI/Sources/WalletAmountItem.swift +++ b/submodules/WalletUI/Sources/WalletAmountItem.swift @@ -65,15 +65,20 @@ class WalletAmountItem: ListViewItem, ItemListItem { private let integralFont = Font.medium(48.0) private let fractionalFont = Font.medium(24.0) +private let iconSize = CGSize(width: 50.0, height: 50.0) +private let verticalOffset: CGFloat = -10.0 + class WalletAmountItemNode: ListViewItemNode, UITextFieldDelegate, ItemListItemNode, ItemListItemFocusableNode { private let backgroundNode: ASDisplayNode private let bottomStripeNode: ASDisplayNode + private let containerNode: ASDisplayNode private let textNode: TextFieldNode private let iconNode: AnimatedStickerNode private let measureNode: TextNode private var item: WalletAmountItem? + private var validLayout: (CGFloat, CGFloat, CGFloat)? var tag: ItemListItemTag? { return self.item?.tag @@ -86,6 +91,8 @@ class WalletAmountItemNode: ListViewItemNode, UITextFieldDelegate, ItemListItemN self.bottomStripeNode = ASDisplayNode() self.bottomStripeNode.isLayerBacked = true + self.containerNode = ASDisplayNode() + self.textNode = TextFieldNode() self.iconNode = AnimatedStickerNode() @@ -100,8 +107,9 @@ class WalletAmountItemNode: ListViewItemNode, UITextFieldDelegate, ItemListItemN self.clipsToBounds = false - self.addSubnode(self.textNode) - self.addSubnode(self.iconNode) + self.addSubnode(self.containerNode) + self.containerNode.addSubnode(self.textNode) + self.containerNode.addSubnode(self.iconNode) } override func didLoad() { @@ -122,9 +130,49 @@ class WalletAmountItemNode: ListViewItemNode, UITextFieldDelegate, ItemListItemN self.textNode.hitTestSlop = UIEdgeInsets(top: -5.0, left: -5.0, bottom: -5.0, right: -5.0) } + private func inputFieldAsyncLayout() -> (_ item: WalletAmountItem, _ params: ListViewItemLayoutParams) -> (NSAttributedString, NSAttributedString, () -> Void) { + let makeMeasureLayout = TextNode.asyncLayout(self.measureNode) + + return { item, params in + let contentSize = CGSize(width: params.width, height: 100.0) + let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: UIEdgeInsets()) + + let attributedPlaceholderText = NSAttributedString(string: "0", font: integralFont, textColor: item.theme.list.itemPlaceholderTextColor) + let attributedAmountText = amountAttributedString(item.amount, integralFont: integralFont, fractionalFont: fractionalFont, color: item.theme.list.itemPrimaryTextColor) + + let (measureLayout, _) = makeMeasureLayout(TextNodeLayoutArguments(attributedString: item.amount.isEmpty ? attributedPlaceholderText : attributedAmountText, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) + + return (attributedPlaceholderText, attributedAmountText, { [weak self] in + if let strongSelf = self { + let iconFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - max(31.0, measureLayout.size.width)) / 2.0 - 28.0), y: floor((layout.contentSize.height - iconSize.height) / 2.0) - 3.0 + verticalOffset), size: iconSize) + strongSelf.iconNode.updateLayout(size: iconFrame.size) + strongSelf.iconNode.frame = iconFrame + + let totalWidth = measureLayout.size.width + iconSize.width + 6.0 + let paddedWidth = layout.size.width - 32.0 + if totalWidth > paddedWidth { + let scale = paddedWidth / totalWidth + strongSelf.containerNode.transform = CATransform3DMakeScale(scale, scale, 1.0) + } else { + strongSelf.containerNode.transform = CATransform3DIdentity + } + } + }) + } + } + + private func updateInputField() { + guard let item = self.item, let validLayout = self.validLayout else { + return + } + let makeInputFieldLayout = self.inputFieldAsyncLayout() + let (_, _, inputFieldApply) = makeInputFieldLayout(item, ListViewItemLayoutParams(width: validLayout.0, leftInset: validLayout.1, rightInset: validLayout.2)) + inputFieldApply() + } + func asyncLayout() -> (_ item: WalletAmountItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, () -> Void) { let currentItem = self.item - let makeMeasureLayout = TextNode.asyncLayout(self.measureNode) + let makeInputFieldLayout = self.inputFieldAsyncLayout() return { item, params, neighbors in var updatedTheme: WalletTheme? @@ -143,16 +191,12 @@ class WalletAmountItemNode: ListViewItemNode, UITextFieldDelegate, ItemListItemN insets.top = 0.0 let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: insets) - let layoutSize = layout.size - - let attributedPlaceholderText = NSAttributedString(string: "0", font: integralFont, textColor: item.theme.list.itemPlaceholderTextColor) - let attributedAmountText = amountAttributedString(item.amount, integralFont: integralFont, fractionalFont: fractionalFont, color: item.theme.list.itemPrimaryTextColor) - - let (measureLayout, _) = makeMeasureLayout(TextNodeLayoutArguments(attributedString: item.amount.isEmpty ? attributedPlaceholderText : attributedAmountText, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - params.rightInset - leftInset * 2.0, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) + let (attributedPlaceholderText, attributedAmountText, inputFieldApply) = makeInputFieldLayout(item, params) return (layout, { [weak self] in if let strongSelf = self { strongSelf.item = item + strongSelf.validLayout = (params.width, params.leftInset, params.rightInset) if let _ = updatedTheme { strongSelf.bottomStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor @@ -185,10 +229,7 @@ class WalletAmountItemNode: ListViewItemNode, UITextFieldDelegate, ItemListItemN strongSelf.textNode.textField.attributedText = attributedAmountText } - let iconSize = CGSize(width: 50.0, height: 50.0) - let verticalOffset: CGFloat = -10.0 - - strongSelf.textNode.frame = CGRect(origin: CGPoint(x: leftInset, y: floor((layout.contentSize.height - 48.0) / 2.0) + verticalOffset), size: CGSize(width: max(1.0, params.width - (leftInset + rightInset) + iconSize.width - 5.0), height: 48.0)) + strongSelf.textNode.frame = CGRect(origin: CGPoint(x: leftInset - 67.0, y: floor((layout.contentSize.height - 48.0) / 2.0) + verticalOffset), size: CGSize(width: max(1.0, params.width + iconSize.width - 5.0 + 100.0), height: 48.0)) if strongSelf.backgroundNode.supernode == nil { strongSelf.insertSubnode(strongSelf.backgroundNode, at: 0) @@ -207,16 +248,15 @@ class WalletAmountItemNode: ListViewItemNode, UITextFieldDelegate, ItemListItemN } strongSelf.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: params.width, height: contentSize.height + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) - strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height - UIScreenPixel), size: CGSize(width: layoutSize.width - bottomStripeInset, height: separatorHeight)) + strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height - UIScreenPixel), size: CGSize(width: layout.size.width - bottomStripeInset, height: separatorHeight)) + strongSelf.containerNode.frame = CGRect(origin: CGPoint(), size: contentSize) if strongSelf.textNode.textField.attributedPlaceholder == nil || !strongSelf.textNode.textField.attributedPlaceholder!.isEqual(to: attributedPlaceholderText) { strongSelf.textNode.textField.attributedPlaceholder = attributedPlaceholderText strongSelf.textNode.textField.accessibilityHint = attributedPlaceholderText.string } - let iconFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - max(31.0, measureLayout.size.width)) / 2.0 - 28.0), y: floor((layout.contentSize.height - iconSize.height) / 2.0) - 3.0 + verticalOffset), size: iconSize) - strongSelf.iconNode.updateLayout(size: iconFrame.size) - strongSelf.iconNode.frame = iconFrame + inputFieldApply() } }) } @@ -232,6 +272,7 @@ class WalletAmountItemNode: ListViewItemNode, UITextFieldDelegate, ItemListItemN @objc private func textFieldTextChanged(_ textField: UITextField) { self.textUpdated(self.textNode.textField.text ?? "") + self.updateInputField() } @objc private func clearButtonPressed() { diff --git a/submodules/WalletUI/Sources/WalletContext.swift b/submodules/WalletUI/Sources/WalletContext.swift index caed3f475c..18771c4725 100644 --- a/submodules/WalletUI/Sources/WalletContext.swift +++ b/submodules/WalletUI/Sources/WalletContext.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import SwiftSignalKit +import Display import WalletCore public enum WalletContextGetServerSaltError { @@ -24,5 +25,5 @@ public protocol WalletContext { func shareUrl(_ url: String) func openPlatformSettings() func authorizeAccessToCamera(completion: @escaping () -> Void) - func pickImage(completion: @escaping (UIImage) -> Void) + func pickImage(present: @escaping (ViewController) -> Void, completion: @escaping (UIImage) -> Void) } diff --git a/submodules/WalletUI/Sources/WalletQrScanScreen.swift b/submodules/WalletUI/Sources/WalletQrScanScreen.swift index 5fce217ba4..e9df176be9 100644 --- a/submodules/WalletUI/Sources/WalletQrScanScreen.swift +++ b/submodules/WalletUI/Sources/WalletQrScanScreen.swift @@ -118,7 +118,9 @@ public final class WalletQrScanScreen: ViewController { guard let strongSelf = self else { return } - strongSelf.context.pickImage(completion: { image in + strongSelf.context.pickImage(present: { c in + strongSelf.push(c) + }, completion: { image in let detector = CIDetector(ofType: CIDetectorTypeQRCode, context: nil, options: [CIDetectorAccuracy: CIDetectorAccuracyHigh])! if let ciImage = CIImage(image: image) { var options: [String: Any] diff --git a/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift b/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift index 8bc4ca0e24..504af8c5c4 100644 --- a/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift +++ b/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift @@ -311,6 +311,7 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, self.navigationBackgroundNode.alpha = 0.0 self.navigationSeparatorNode = ASDisplayNode() self.navigationSeparatorNode.backgroundColor = self.presentationData.theme.navigationBar.separatorColor + self.navigationSeparatorNode.alpha = 0.0 self.scrollNode = ASScrollNode() From f85969a0c558d3bcc0357eddb43152fcfbde5299 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sat, 19 Oct 2019 17:29:11 +0400 Subject: [PATCH 11/32] Remove rlottie submodule --- .gitmodules | 4 +--- submodules/rlottie/rlottie | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) delete mode 160000 submodules/rlottie/rlottie diff --git a/.gitmodules b/.gitmodules index 5fd5f2e00e..8b13789179 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1 @@ -[submodule "submodules/rlottie/rlottie"] - path = submodules/rlottie/rlottie - url = https://github.com/peter-iakovlev/rlottie.git + diff --git a/submodules/rlottie/rlottie b/submodules/rlottie/rlottie deleted file mode 160000 index 699d822fc5..0000000000 --- a/submodules/rlottie/rlottie +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 699d822fc547e6d9b997667f8d5aecf75182d0a3 From 71951d5be860d25d851989f4e44c14ab03e3471d Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sat, 19 Oct 2019 17:51:42 +0400 Subject: [PATCH 12/32] Return rlottie submodule --- .gitmodules | 3 +++ submodules/rlottie/rlottie | 1 + 2 files changed, 4 insertions(+) create mode 160000 submodules/rlottie/rlottie diff --git a/.gitmodules b/.gitmodules index 8b13789179..f931b28d97 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1 +1,4 @@ +[submodule "submodules/rlottie/rlottie"] + path = submodules/rlottie/rlottie + url = https://github.com/laktyushin/rlottie.git diff --git a/submodules/rlottie/rlottie b/submodules/rlottie/rlottie new file mode 160000 index 0000000000..589db026ec --- /dev/null +++ b/submodules/rlottie/rlottie @@ -0,0 +1 @@ +Subproject commit 589db026ec211bc4979e3bffe074f6e48ce7cedc From a31038721ea3e0be789d5489774eb83baba31db1 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sat, 19 Oct 2019 17:51:59 +0400 Subject: [PATCH 13/32] Update rlottie submodule --- submodules/rlottie/rlottie | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/rlottie/rlottie b/submodules/rlottie/rlottie index 589db026ec..b579347124 160000 --- a/submodules/rlottie/rlottie +++ b/submodules/rlottie/rlottie @@ -1 +1 @@ -Subproject commit 589db026ec211bc4979e3bffe074f6e48ce7cedc +Subproject commit b579347124cb7831ce7564c9f29b7f321f5af556 From 595284dc9b6daabdd0960544c87937fc6612f51a Mon Sep 17 00:00:00 2001 From: Peter <> Date: Sat, 19 Oct 2019 17:52:07 +0400 Subject: [PATCH 14/32] Software aac decoding --- .../Sources/FFMpegAudioFrameDecoder.swift | 50 +++++++++++++++++-- ...pegMediaPassthroughVideoFrameDecoder.swift | 4 ++ .../FFMpegMediaVideoFrameDecoder.swift | 4 ++ .../Sources/MediaTrackFrameBuffer.swift | 4 ++ .../Sources/MediaTrackFrameDecoder.swift | 1 + submodules/ffmpeg/FFMpeg/FFMpegGlobals.m | 2 +- submodules/ffmpeg/FFMpeg/build-ffmpeg.sh | 2 +- 7 files changed, 62 insertions(+), 5 deletions(-) diff --git a/submodules/MediaPlayer/Sources/FFMpegAudioFrameDecoder.swift b/submodules/MediaPlayer/Sources/FFMpegAudioFrameDecoder.swift index 725051e022..9b409f1926 100644 --- a/submodules/MediaPlayer/Sources/FFMpegAudioFrameDecoder.swift +++ b/submodules/MediaPlayer/Sources/FFMpegAudioFrameDecoder.swift @@ -9,6 +9,8 @@ final class FFMpegAudioFrameDecoder: MediaTrackFrameDecoder { private let audioFrame: FFMpegAVFrame private var resetDecoderOnNextFrame = true + private var delayedFrames: [MediaTrackFrame] = [] + init(codecContext: FFMpegAVCodecContext) { self.codecContext = codecContext self.audioFrame = FFMpegAVFrame() @@ -19,16 +21,58 @@ final class FFMpegAudioFrameDecoder: MediaTrackFrameDecoder { func decode(frame: MediaTrackDecodableFrame) -> MediaTrackFrame? { let status = frame.packet.send(toDecoder: self.codecContext) if status == 0 { - if self.codecContext.receive(into: self.audioFrame) { - return convertAudioFrame(self.audioFrame, pts: frame.pts, duration: frame.duration) + while self.codecContext.receive(into: self.audioFrame) { + if let convertedFrame = convertAudioFrame(self.audioFrame, pts: frame.pts, duration: frame.duration) { + self.delayedFrames.append(convertedFrame) + } + } + + if self.delayedFrames.count >= 1 { + var minFrameIndex = 0 + var minPosition = self.delayedFrames[0].position + for i in 1 ..< self.delayedFrames.count { + if CMTimeCompare(self.delayedFrames[i].position, minPosition) < 0 { + minFrameIndex = i + minPosition = self.delayedFrames[i].position + } + } + return self.delayedFrames.remove(at: minFrameIndex) } } return nil } + func takeQueuedFrame() -> MediaTrackFrame? { + if self.delayedFrames.count >= 1 { + var minFrameIndex = 0 + var minPosition = self.delayedFrames[0].position + for i in 1 ..< self.delayedFrames.count { + if CMTimeCompare(self.delayedFrames[i].position, minPosition) < 0 { + minFrameIndex = i + minPosition = self.delayedFrames[i].position + } + } + return self.delayedFrames.remove(at: minFrameIndex) + } else { + return nil + } + } + func takeRemainingFrame() -> MediaTrackFrame? { - return nil + if !self.delayedFrames.isEmpty { + var minFrameIndex = 0 + var minPosition = self.delayedFrames[0].position + for i in 1 ..< self.delayedFrames.count { + if CMTimeCompare(self.delayedFrames[i].position, minPosition) < 0 { + minFrameIndex = i + minPosition = self.delayedFrames[i].position + } + } + return self.delayedFrames.remove(at: minFrameIndex) + } else { + return nil + } } private func convertAudioFrame(_ frame: FFMpegAVFrame, pts: CMTime, duration: CMTime) -> MediaTrackFrame? { diff --git a/submodules/MediaPlayer/Sources/FFMpegMediaPassthroughVideoFrameDecoder.swift b/submodules/MediaPlayer/Sources/FFMpegMediaPassthroughVideoFrameDecoder.swift index f417d3d40a..ef05414b40 100644 --- a/submodules/MediaPlayer/Sources/FFMpegMediaPassthroughVideoFrameDecoder.swift +++ b/submodules/MediaPlayer/Sources/FFMpegMediaPassthroughVideoFrameDecoder.swift @@ -39,6 +39,10 @@ final class FFMpegMediaPassthroughVideoFrameDecoder: MediaTrackFrameDecoder { return MediaTrackFrame(type: .video, sampleBuffer: sampleBuffer!, resetDecoder: resetDecoder, decoded: false, rotationAngle: self.rotationAngle) } + func takeQueuedFrame() -> MediaTrackFrame? { + return nil + } + func takeRemainingFrame() -> MediaTrackFrame? { return nil } diff --git a/submodules/MediaPlayer/Sources/FFMpegMediaVideoFrameDecoder.swift b/submodules/MediaPlayer/Sources/FFMpegMediaVideoFrameDecoder.swift index 0bfdb1731f..d77320d18a 100644 --- a/submodules/MediaPlayer/Sources/FFMpegMediaVideoFrameDecoder.swift +++ b/submodules/MediaPlayer/Sources/FFMpegMediaVideoFrameDecoder.swift @@ -87,6 +87,10 @@ public final class FFMpegMediaVideoFrameDecoder: MediaTrackFrameDecoder { return nil } + public func takeQueuedFrame() -> MediaTrackFrame? { + return nil + } + public func takeRemainingFrame() -> MediaTrackFrame? { if !self.delayedFrames.isEmpty { var minFrameIndex = 0 diff --git a/submodules/MediaPlayer/Sources/MediaTrackFrameBuffer.swift b/submodules/MediaPlayer/Sources/MediaTrackFrameBuffer.swift index 08650acba8..210fc7ab2a 100644 --- a/submodules/MediaPlayer/Sources/MediaTrackFrameBuffer.swift +++ b/submodules/MediaPlayer/Sources/MediaTrackFrameBuffer.swift @@ -146,6 +146,10 @@ public final class MediaTrackFrameBuffer { } public func takeFrame() -> MediaTrackFrameResult { + if let decodedFrame = self.decoder.takeQueuedFrame() { + return .frame(decodedFrame) + } + if !self.frames.isEmpty { let frame = self.frames.removeFirst() if let decodedFrame = self.decoder.decode(frame: frame) { diff --git a/submodules/MediaPlayer/Sources/MediaTrackFrameDecoder.swift b/submodules/MediaPlayer/Sources/MediaTrackFrameDecoder.swift index 9e4c8266ec..0f27a3f02a 100644 --- a/submodules/MediaPlayer/Sources/MediaTrackFrameDecoder.swift +++ b/submodules/MediaPlayer/Sources/MediaTrackFrameDecoder.swift @@ -1,6 +1,7 @@ protocol MediaTrackFrameDecoder { func decode(frame: MediaTrackDecodableFrame) -> MediaTrackFrame? + func takeQueuedFrame() -> MediaTrackFrame? func takeRemainingFrame() -> MediaTrackFrame? func reset() } diff --git a/submodules/ffmpeg/FFMpeg/FFMpegGlobals.m b/submodules/ffmpeg/FFMpeg/FFMpegGlobals.m index c507fff969..50dfa7e1eb 100644 --- a/submodules/ffmpeg/FFMpeg/FFMpegGlobals.m +++ b/submodules/ffmpeg/FFMpeg/FFMpegGlobals.m @@ -6,7 +6,7 @@ + (void)initializeGlobals { #if DEBUG - av_log_set_level(AV_LOG_ERROR); + av_log_set_level(AV_LOG_VERBOSE); #else av_log_set_level(AV_LOG_QUIET); #endif diff --git a/submodules/ffmpeg/FFMpeg/build-ffmpeg.sh b/submodules/ffmpeg/FFMpeg/build-ffmpeg.sh index 5086bbe443..cc7f8a753b 100755 --- a/submodules/ffmpeg/FFMpeg/build-ffmpeg.sh +++ b/submodules/ffmpeg/FFMpeg/build-ffmpeg.sh @@ -55,7 +55,7 @@ CONFIGURE_FLAGS="--enable-cross-compile --disable-programs \ --enable-libopus \ --enable-audiotoolbox \ --enable-bsf=aac_adtstoasc \ - --enable-decoder=h264,hevc,libopus,mp3_at,aac_at,flac,alac_at,pcm_s16le,pcm_s24le,gsm_ms_at \ + --enable-decoder=h264,hevc,libopus,mp3_at,aac,flac,alac_at,pcm_s16le,pcm_s24le,gsm_ms_at \ --enable-demuxer=aac,mov,m4v,mp3,ogg,libopus,flac,wav,aiff,matroska \ --enable-parser=aac,h264,mp3,libopus \ --enable-protocol=file \ From 7fa7fb7421d4127ce552b5f9a901c678825fdc7f Mon Sep 17 00:00:00 2001 From: Peter <> Date: Sat, 19 Oct 2019 17:54:10 +0400 Subject: [PATCH 15/32] FFMpeg: disable verbose logging --- submodules/ffmpeg/FFMpeg/FFMpegGlobals.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/ffmpeg/FFMpeg/FFMpegGlobals.m b/submodules/ffmpeg/FFMpeg/FFMpegGlobals.m index 50dfa7e1eb..c507fff969 100644 --- a/submodules/ffmpeg/FFMpeg/FFMpegGlobals.m +++ b/submodules/ffmpeg/FFMpeg/FFMpegGlobals.m @@ -6,7 +6,7 @@ + (void)initializeGlobals { #if DEBUG - av_log_set_level(AV_LOG_VERBOSE); + av_log_set_level(AV_LOG_ERROR); #else av_log_set_level(AV_LOG_QUIET); #endif From 52b2f7cefed6b5386714e3631df801d406ed58af Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sat, 19 Oct 2019 21:34:46 +0400 Subject: [PATCH 16/32] Update rlottie --- Watch/Extension/TGExtensionDelegate.m | 9 +-------- submodules/rlottie/rlottie | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/Watch/Extension/TGExtensionDelegate.m b/Watch/Extension/TGExtensionDelegate.m index 0ce238fcee..60c912675c 100644 --- a/Watch/Extension/TGExtensionDelegate.m +++ b/Watch/Extension/TGExtensionDelegate.m @@ -1,12 +1,11 @@ #import "TGExtensionDelegate.h" -#import #import "TGWatchCommon.h" #import "TGFileCache.h" #import "TGBridgeClient.h" #import "TGDateUtils.h" #import "TGNeoChatsController.h" -@interface TGExtensionDelegate () +@interface TGExtensionDelegate () { NSString *_cachedContentSize; TGContentSizeCategory _sizeCategory; @@ -27,16 +26,10 @@ _audioCache.defaultFileExtension = @"m4a"; _imageCache = [[TGFileCache alloc] initWithName:@"images" useMemoryCache:true]; - - [UNUserNotificationCenter currentNotificationCenter].delegate = self; } return self; } -- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { - -} - - (TGNeoChatsController *)chatsController { return (TGNeoChatsController *)[WKExtension sharedExtension].rootInterfaceController; diff --git a/submodules/rlottie/rlottie b/submodules/rlottie/rlottie index b579347124..c490c7a098 160000 --- a/submodules/rlottie/rlottie +++ b/submodules/rlottie/rlottie @@ -1 +1 @@ -Subproject commit b579347124cb7831ce7564c9f29b7f321f5af556 +Subproject commit c490c7a098b9b3cbc3195b00e90d6fc3989e2ba2 From a61bc19ec64cff972bbf9342dd45ec74e0e3d832 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sat, 19 Oct 2019 22:21:06 +0400 Subject: [PATCH 17/32] Show device name in clear cache success popup --- Telegram-iOS/en.lproj/Localizable.strings | 2 +- .../StorageUsageController.swift | 6 +- .../Sources/PresentationStrings.swift | 820 +++++++++--------- .../TelegramUI/ChatController.swift | 11 +- .../Resources/PresentationStrings.mapping | Bin 135487 -> 135487 bytes 5 files changed, 423 insertions(+), 416 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 5f718c4554..4472d3069f 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -4979,7 +4979,7 @@ Any member of this group will be able to see messages in the channel."; "ClearCache.Description" = "Media files will be deleted from your phone, but available for re-downloading when necessary."; "ClearCache.FreeSpaceDescription" = "If you want to save space on your device, you don't need to delete anything.\n\nYou can use cache settings to remove unnecessary media — and re-download files if you need them again."; "ClearCache.FreeSpace" = "Free Space"; -"ClearCache.Success" = "**%@** freed on your phone!"; +"ClearCache.Success" = "**%@** freed on your %@!"; "Conversation.ScheduleMessage.SendWhenOnline" = "Send When Online"; "ScheduledMessages.ScheduledOnline" = "Scheduled until online"; diff --git a/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift b/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift index 92b6d2e8df..34410822f1 100644 --- a/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift +++ b/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift @@ -531,8 +531,8 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals clearDisposable.set((signal |> deliverOnMainQueue).start(completed: { statsPromise.set(.single(.result(resultStats))) - - presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0), elevatedLayout: false, action: { _ in }), nil) + var deviceName = "iPhone" + presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: false, action: { _ in }), nil) })) } @@ -711,7 +711,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals |> deliverOnMainQueue).start(completed: { statsPromise.set(.single(.result(resultStats))) - presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0), elevatedLayout: false, action: { _ in }), nil) + presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", "").0), elevatedLayout: false, action: { _ in }), nil) })) } diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index f7fb44dc9d..36a5b0c9e0 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -2453,8 +2453,8 @@ public final class PresentationStrings: Equatable { public var Wallet_Month_GenNovember: String { return self._s[2058]! } public var SocksProxySetup_ShareProxyList: String { return self._s[2059]! } public var Conversation_MessageEditedLabel: String { return self._s[2060]! } - public func ClearCache_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2061]!, self._r[2061]!, [_0]) + public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2061]!, self._r[2061]!, [_0, _1]) } public var Notification_Exceptions_AlwaysOff: String { return self._s[2062]! } public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2063]! } @@ -4467,36 +4467,35 @@ public final class PresentationStrings: Equatable { public var Channel_Setup_TypePublicHelp: String { return self._s[3926]! } public var Passport_Identity_EditInternalPassport: String { return self._s[3927]! } public var PhotoEditor_Skip: String { return self._s[3928]! } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + public func MessageTimer_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, _1, _2) } - public func ForwardedLocations(_ value: Int32) -> String { + public func Media_SharePhoto(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedStickers(_ value: Int32) -> String { + public func SharedMedia_Video(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) @@ -4506,447 +4505,450 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_ShortHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideoMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) - } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedGifs(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_SelectedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) - } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func UserCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, _1, _2) - } public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Video(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_Link(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MuteFor_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Contacts_ImportersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Generic(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAHours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Passport_Scans(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, _1, _2) } public func ForwardedAudios(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteText_ContactsCountText(_ value: Int32) -> String { + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_File(_ value: Int32) -> String { + public func Map_ETAMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Weeks(_ value: Int32) -> String { + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusOnline(_ value: Int32) -> String { + public func Map_ETAHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Hours(_ value: Int32) -> String { + public func Invitation_Members(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedMessages(_ value: Int32) -> String { + public func MuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notifications_Exceptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) } public func LastSeen_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func QuickSend_Photos(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPolls(_ value: Int32) -> String { + public func MessageTimer_Weeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_SharePhoto(_ value: Int32) -> String { + public func Call_Seconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideos(_ value: Int32) -> String { + public func Conversation_SelectedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { + public func ForwardedVideoMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_Exceptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedGifs(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedStickers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Generic(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Passport_Scans(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func MuteExpires_Days(_ value: Int32) -> String { + public func Media_ShareVideo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendGif(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) } public func Call_ShortMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Months(_ value: Int32) -> String { + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) } public func StickerPack_StickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedLocations(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func UserCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_ShortDays(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, stringValue) + } + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_UserInfo_Mute(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPolls(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Call_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_File(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusOnline(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Seconds(_ value: Int32) -> String { + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) @@ -4956,77 +4958,75 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) } - public func Invitation_Members(_ value: Int32) -> String { + public func StickerPack_AddMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + public func Notification_GameScoreSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSimple(_ value: Int32) -> String { + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) } - public func Theme_UsersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, _1, _2) } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Minutes(_ value: Int32) -> String { + public func MessageTimer_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Minutes(_ value: Int32) -> String { + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) } - public func Map_ETAMinutes(_ value: Int32) -> String { + public func MuteFor_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + public func ForwardedPhotos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public func Theme_UsersCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, _1, _2) } - public func MuteExpires_Minutes(_ value: Int32) -> String { + public func MessageTimer_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + public func LastSeen_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index b44fad11b3..73d3e492a1 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -5248,8 +5248,15 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } clearDisposable.set((signal |> deliverOnMainQueue).start(completed: { [weak self] in - if let strongSelf = self { - strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))").0), elevatedLayout: true, action: { _ in }), in: .window(.root)) + if let strongSelf = self, let layout = strongSelf.validLayout { + var deviceName: String + switch layout.deviceMetrics.type { + case .tablet: + deviceName = "iPad" + default: + deviceName = "iPhone" + } + strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: true, action: { _ in }), in: .window(.root)) } })) diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index b4c0fec6c90727d24b1d0794eb5c5da8ea99d032..3b9619d3acb1953ebeb3471f5f250991031e6903 100644 GIT binary patch delta 1660 zcmZWpNpD+K6!tyw?B^jkp5q}iO^e%f01A{~5@&!oPWm#mPzbN~P4ck)p6mBg+6AJB z?kI)Gi?c$Mu2>+^N(iw)s$jzc6{!+zKtlZi3}TIhIQQ9Dt-3hUy=S=hobR0T-MQ($ zbJKn0D*F=7^x=D>tY0dr+MdY`X0zGC?QbtfGBVIHL{j2aRmsb{N{g@T>ZaZ&TyUz$ zA|Tt*D?!p}=^c2^199fWS`adL)DFY#wmm!OA@?B3oZfm%X;pc(uvb-e!%M31_UaD_ z{Ll^|hmWo)-2aIU;I$BV-;wAZASo%$d~vPN&CXAn7|Et$R(A7Ciebu}YxxCzuVoZ= zbP*r|yFr#(eEk^7qIOX=6;sulfZsckxnFZE>UX5-IU-KSUiOE+=w4 zS!^h3eMaBY%rNPMzQhef+2LzygSYaVoY#y2(u&__lzKfc^NOxjjR>wvZ~&sV_SDbe zBQme^ipi_pSVNQ&CFw!4p;o#6zcp?{@ZS(5SrTviA$u%E z(V`BkJM^yT)RL;z21)lwmKGjq{4NAzkg?&rqb%(1=9$IcB^Zh3C`@47OK4u*Hiqzz zKI-c*{_3NTNAOb#B92k=ieW&4sB_WejWHYcUu1FD#^P+TERW+UFT~gcj=3Pm9!Iwu z#vBJIB7swfSR8M8z|JP|dpD%nL7bFe91e9J@SQHNFVD(PkZ%UlU$Ge834%A3r~4!2 zoaIW(IE?rFkWL;U2hqz8_Pct^>`u%S>TVceN5xPkoE8Gd@M|9oCytZ5HQo=jUjTdp zqd~~BCvnwI$v=g6`{?#G-gdzNJBfKJg*}6JJuu{WmR`uZP>Upw@DthQH=@n}tjcM$6!W4S}{}LNiz%3V~qc4)HSe|u* zx2(~dp-V&{7z240uls1Qie21S7Rqa7c@BS+2-1064nQusK<)yQ-gh&)W-1laSj78Y zI0!G<@WKZyjK2}WUS8jp)kd?41F42FTJvuGCNFKtY(_op@y-+#AiP<}YH|&sDK1-GkH`MFg%&#}A3awg?8(tx^X!q)#TB*tO zUfv=t<5kiL-sqt;r`EY~4ucNLP zDJo7Po0KbWttgdRzEG`}6r*Ov@7UV=C#=Q=*)B>xm|$xABl{p`T;PN^X|;c05xg?O z>|^Dopgb$8MlXtac!;^g#Mco+Fd1o(&0^1P4~0n+{GN^LWD>~tKCIA2c delta 1624 zcmZWpOKcle6!p9D_!s{Y$Idt($N4pFNv8>otj5Fhu zB7{T*yMPMv;z~#nQnyH?i*8Za11cL>fLO4E3Z!mWzyj_YJCR!!PntRR^X|RpynA@h zcX-eD{)g-VTx;lPb-7%tTCvE>%5tfom3cv#HFqt0V#8$kK^VFvAdff>53<&@+CbmU zbf!(~ZOtn1!n~Q+%DQRTZbD@=dRfA=VwSlr;aM-p%!8o_3}V6!J*gzQWVvl?8+=LM z=9Z#vnpRomdDAG^el*>1Mhb`v@Qx2!8q`J?Hr--!_tk~vD^qGvSf0*sookjI!kq?a z!SN7ySQv-HAfJzrV~ozcX43`SP_nwQOI1-XCmc$!DNVm38T!_x`_-6EVyWLe8{vn3HNf2cn_*D>2%AMpRYCQJK zZJK4%PE|f}cX+Gg=)&*4kY;HdkJ6aCQEr6J<{pai(^pt!$6n}{P7<2Jg9s!;ncHP<5YeXyid7CiO0d(|;)mY&GXw}u zvNTt!Q<>7dZC@$3YSqqjT5SN7cEbc|13x-^{^D&FzVFUu03xb~w z3)W(u6}`aCXYofjq@?F4byBEK?i9lvpitAvf@ zW*3$g)G_iGT_08G==wq}Q62rxwHL)~ebvC{U3mX<)`^b-5cD`vm+;*nq*5Jd|J z3-aRnQQQ=+`k`kiLq?(C`i5t?!7V*MO|Ub0t)yg@CY%Ci#N^wm6P(2rADm!w_=N=ty>&f=FODs~0`@<4BLft;RZ zU|KKo9KI((5*A&R%X`U-3r0~l_*L@#-&=L+RLLSHc&zN&La>*dM_eOd*;RS`D2DeJ zStDD)Ur0=B6)#C3C$H72Slrd~TPi72sXmSC$U+cL-l&=D*mdl$;Du;-f-xYe%{2$QCMolW@_(ByG*=3ac#_4FgTkHgc0}G99%{C2}jL z<+qgDxAP|RWE1pNx(p0D=1jbFPV&J5hAjm%8E9);7agbzH>Ke|KV fLLA532zqUc5Fx~R&DWCI1b0=mju!km4B`I(3}K=K From ee68b7b5398dd55216696fa7a24e356740b65497 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sun, 20 Oct 2019 23:38:05 +0400 Subject: [PATCH 18/32] Share Extension: Use different image scaling approach to avoid memory-limit-exceeded crashes --- .../Sources/TGItemProviderSignals.m | 47 +++++++++++++++---- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/submodules/ShareItems/Sources/TGItemProviderSignals.m b/submodules/ShareItems/Sources/TGItemProviderSignals.m index cc4280fed6..6a7ae46a41 100644 --- a/submodules/ShareItems/Sources/TGItemProviderSignals.m +++ b/submodules/ShareItems/Sources/TGItemProviderSignals.m @@ -198,16 +198,43 @@ static CGSize TGFitSize(CGSize size, CGSize maxSize) { } else { if ([(NSObject *)item respondsToSelector:@selector(absoluteString)]) { NSURL *url = (NSURL *)item; - UIImage *image = [[UIImage alloc] initWithContentsOfFile:[url path]]; - if (image != nil) { - UIImage *result = TGScaleImageToPixelSize(image, TGFitSize(image.size, maxSize)); - NSData *resultData = UIImageJPEGRepresentation(result, 0.52f); - if (resultData != nil) { - [subscriber putNext:@{@"scaledImageData": resultData, @"scaledImageDimensions": [NSValue valueWithCGSize:result.size]}]; - [subscriber putCompletion]; - } else { - [subscriber putError:nil]; - } + + CGImageSourceRef src = CGImageSourceCreateWithURL((__bridge CFURLRef) url, NULL); + + CFDictionaryRef options = (__bridge CFDictionaryRef) @{ + (id) kCGImageSourceCreateThumbnailWithTransform : @YES, + (id) kCGImageSourceCreateThumbnailFromImageAlways : @YES, + (id) kCGImageSourceThumbnailMaxPixelSize : @(maxSize.width) + }; + + CGImageRef image = CGImageSourceCreateThumbnailAtIndex(src, 0, options); + CFRelease(src); + + if (image == nil) { + [subscriber putError:nil]; + return; + } + + NSString *tempPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSString alloc] initWithFormat:@"img%d", (int)arc4random()]]; + CFURLRef tempUrl = (__bridge CFURLRef)[NSURL fileURLWithPath:tempPath]; + CGImageDestinationRef destination = CGImageDestinationCreateWithURL(tempUrl, kUTTypeJPEG, 1, NULL); + NSDictionary *properties = @{ (__bridge NSString *)kCGImageDestinationLossyCompressionQuality: @(0.52)}; + + CGImageDestinationSetProperties(destination, (__bridge CFDictionaryRef)properties); + CGImageDestinationAddImage(destination, image, nil); + + if (!CGImageDestinationFinalize(destination)) { + CFRelease(destination); + + [subscriber putError:nil]; + return; + } + + CFRelease(destination); + NSData *resultData = [[NSData alloc] initWithContentsOfFile:tempPath options:NSDataReadingMappedIfSafe error:nil]; + if (resultData != nil) { + [subscriber putNext:@{@"scaledImageData": resultData, @"scaledImageDimensions": [NSValue valueWithCGSize:CGSizeMake(CGImageGetWidth(image), CGImageGetHeight(image))]}]; + [subscriber putCompletion]; } else { [subscriber putError:nil]; } From 50a4f477184d1e94b3dca8eba8c4607a009e32f4 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sun, 20 Oct 2019 23:39:24 +0400 Subject: [PATCH 19/32] Add landscape layout for passcode screen to be used in share extension --- .../Sources/PasscodeEntryControllerNode.swift | 112 ++++++++++++------ .../Sources/PasscodeEntryKeyboardNode.swift | 60 ++++++++-- .../Sources/PasscodeEntryLabelNode.swift | 28 ++--- .../Sources/PasscodeInputFieldNode.swift | 22 ++-- .../Sources/PasscodeSetupControllerNode.swift | 2 +- 5 files changed, 152 insertions(+), 72 deletions(-) diff --git a/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift b/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift index 445a8ffbb3..15dc993bdd 100644 --- a/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift +++ b/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift @@ -167,10 +167,6 @@ final class PasscodeEntryControllerNode: ASDisplayNode { } var size = validLayout.size - if case .compact = validLayout.metrics.widthClass, size.width > size.height { - size = CGSize(width: size.height, height: size.width) - } - if let background = self.background, background.size == size { return } @@ -333,36 +329,11 @@ final class PasscodeEntryControllerNode: ASDisplayNode { self.validLayout = layout self.updateBackground() - - if layout.size.width == 320.0 { - self.iconNode.alpha = 0.0 - } - + let bounds = CGRect(origin: CGPoint(), size: layout.size) transition.updateFrame(node: self.backgroundNode, frame: bounds) transition.updateFrame(view: self.effectView, frame: bounds) - let iconSize = CGSize(width: 35.0, height: 37.0) - transition.updateFrame(node: self.iconNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - iconSize.width) / 2.0) + 6.0, y: layout.insets(options: .statusBar).top + 15.0), size: iconSize)) - - let passcodeLayout = PasscodeLayout(layout: layout) - - let inputFieldFrame = self.inputFieldNode.updateLayout(layout: passcodeLayout.layout, topOffset: passcodeLayout.inputFieldOffset, transition: transition) - transition.updateFrame(node: self.inputFieldNode, frame: CGRect(origin: CGPoint(), size: layout.size)) - - let titleSize = self.titleNode.updateLayout(layout: layout, transition: transition) - transition.updateFrame(node: self.titleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: passcodeLayout.titleOffset), size: titleSize)) - - var subtitleOffset = passcodeLayout.subtitleOffset - if case .alphanumeric = self.passcodeType { - subtitleOffset = 16.0 - } - let subtitleSize = self.subtitleNode.updateLayout(layout: layout, transition: transition) - transition.updateFrame(node: self.subtitleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: inputFieldFrame.maxY + subtitleOffset), size: subtitleSize)) - - let (keyboardFrame, keyboardButtonSize) = self.keyboardNode.updateLayout(layout: passcodeLayout, transition: transition) - transition.updateFrame(node: self.keyboardNode, frame: CGRect(origin: CGPoint(), size: layout.size)) - switch self.passcodeType { case .digits6, .digits4: self.keyboardNode.alpha = 1.0 @@ -372,22 +343,91 @@ final class PasscodeEntryControllerNode: ASDisplayNode { self.deleteButtonNode.alpha = 0.0 } + let isLandscape = layout.orientation == .landscape && layout.deviceMetrics.type != .tablet + let keyboardHidden = self.keyboardNode.alpha == 0.0 + + let layoutSize: CGSize + if isLandscape { + if keyboardHidden { + layoutSize = CGSize(width: layout.size.width - layout.safeInsets.left - layout.safeInsets.right, height: layout.size.height) + } else { + layoutSize = CGSize(width: layout.size.width / 2.0, height: layout.size.height) + } + } else { + layoutSize = layout.size + } + + if layout.size.width == 320.0 || (isLandscape && keyboardHidden) { + self.iconNode.alpha = 0.0 + } + + let passcodeLayout = PasscodeLayout(layout: layout) + let inputFieldOffset: CGFloat + if isLandscape { + let bottomInset = layout.inputHeight ?? 0.0 + if !keyboardHidden || bottomInset == 0.0 { + inputFieldOffset = floor(layoutSize.height / 2.0 + 12.0) + } else { + inputFieldOffset = floor(layoutSize.height - bottomInset) / 2.0 - 40.0 + } + } else { + inputFieldOffset = passcodeLayout.inputFieldOffset + } + + let inputFieldFrame = self.inputFieldNode.updateLayout(size: layoutSize, topOffset: inputFieldOffset, transition: transition) + transition.updateFrame(node: self.inputFieldNode, frame: CGRect(origin: CGPoint(x: layout.safeInsets.left, y: 0.0), size: layoutSize)) + + let titleFrame: CGRect + if isLandscape { + let titleSize = self.titleNode.updateLayout(size: CGSize(width: layoutSize.width, height: layout.size.height), transition: transition) + titleFrame = CGRect(origin: CGPoint(x: layout.safeInsets.left, y: inputFieldFrame.minY - titleSize.height - 16.0), size: titleSize) + } else { + let titleSize = self.titleNode.updateLayout(size: layout.size, transition: transition) + titleFrame = CGRect(origin: CGPoint(x: 0.0, y: passcodeLayout.titleOffset), size: titleSize) + } + transition.updateFrame(node: self.titleNode, frame: titleFrame) + + let iconSize = CGSize(width: 35.0, height: 37.0) + let iconFrame: CGRect + if isLandscape { + iconFrame = CGRect(origin: CGPoint(x: layout.safeInsets.left + floor((layoutSize.width - iconSize.width) / 2.0) + 6.0, y: titleFrame.minY - iconSize.height - 14.0), size: iconSize) + } else { + iconFrame = CGRect(origin: CGPoint(x: floor((layoutSize.width - iconSize.width) / 2.0) + 6.0, y: layout.insets(options: .statusBar).top + 15.0), size: iconSize) + } + transition.updateFrame(node: self.iconNode, frame: iconFrame) + + var subtitleOffset = passcodeLayout.subtitleOffset + if case .alphanumeric = self.passcodeType { + subtitleOffset = 16.0 + } + let subtitleSize = self.subtitleNode.updateLayout(size: layoutSize, transition: transition) + transition.updateFrame(node: self.subtitleNode, frame: CGRect(origin: CGPoint(x: layout.safeInsets.left, y: inputFieldFrame.maxY + subtitleOffset), size: subtitleSize)) + + let (keyboardFrame, keyboardButtonSize) = self.keyboardNode.updateLayout(layout: passcodeLayout, transition: transition) + transition.updateFrame(node: self.keyboardNode, frame: CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: layout.size)) + let bottomInset = layout.inputHeight ?? 0.0 let cancelSize = self.cancelButtonNode.measure(layout.size) - var cancelY: CGFloat = layout.size.height - layout.intrinsicInsets.bottom - cancelSize.height - passcodeLayout.keyboard.deleteOffset - if bottomInset > 0 && self.keyboardNode.alpha < 1.0 { - cancelY = layout.size.height - bottomInset - cancelSize.height - 20.0 + var bottomButtonY = layout.size.height - layout.intrinsicInsets.bottom - cancelSize.height - passcodeLayout.keyboard.deleteOffset + var cancelX = floor(keyboardFrame.minX + keyboardButtonSize.width / 2.0 - cancelSize.width / 2.0) + var cancelY = bottomButtonY + if bottomInset > 0 && keyboardHidden { + cancelX = floor((layout.size.width - cancelSize.width) / 2.0) + cancelY = layout.size.height - bottomInset - cancelSize.height - 15.0 - layout.intrinsicInsets.bottom + } else if isLandscape { + bottomButtonY = keyboardFrame.maxY - keyboardButtonSize.height + floor((keyboardButtonSize.height - cancelSize.height) / 2.0) + cancelY = bottomButtonY } - transition.updateFrame(node: self.cancelButtonNode, frame: CGRect(origin: CGPoint(x: floor(keyboardFrame.minX + keyboardButtonSize.width / 2.0 - cancelSize.width / 2.0), y: cancelY), size: cancelSize)) + transition.updateFrame(node: self.cancelButtonNode, frame: CGRect(origin: CGPoint(x: cancelX, y: cancelY), size: cancelSize)) let deleteSize = self.deleteButtonNode.measure(layout.size) - transition.updateFrame(node: self.deleteButtonNode, frame: CGRect(origin: CGPoint(x: floor(keyboardFrame.maxX - keyboardButtonSize.width / 2.0 - deleteSize.width / 2.0), y: layout.size.height - layout.intrinsicInsets.bottom - deleteSize.height - passcodeLayout.keyboard.deleteOffset), size: deleteSize)) + transition.updateFrame(node: self.deleteButtonNode, frame: CGRect(origin: CGPoint(x: floor(keyboardFrame.maxX - keyboardButtonSize.width / 2.0 - deleteSize.width / 2.0), y: bottomButtonY), size: deleteSize)) if let biometricIcon = self.biometricButtonNode.image(for: .normal) { var biometricY: CGFloat = 0.0 - if bottomInset > 0 && self.keyboardNode.alpha < 1.0 { + if bottomInset > 0 && keyboardHidden { biometricY = inputFieldFrame.maxY + floor((layout.size.height - bottomInset - inputFieldFrame.maxY - biometricIcon.size.height) / 2.0) } else { biometricY = keyboardFrame.maxY + passcodeLayout.keyboard.biometricsOffset diff --git a/submodules/PasscodeUI/Sources/PasscodeEntryKeyboardNode.swift b/submodules/PasscodeUI/Sources/PasscodeEntryKeyboardNode.swift index c0b29833e7..2ac3624e48 100644 --- a/submodules/PasscodeUI/Sources/PasscodeEntryKeyboardNode.swift +++ b/submodules/PasscodeUI/Sources/PasscodeEntryKeyboardNode.swift @@ -58,7 +58,7 @@ private func generateButtonImage(background: PasscodeBackground, frame: CGRect, titleOffset = -11.0 } subtitleOffset = -54.0 - } else { + } else if size.width > 70.0 { titleFont = regularTitleFont subtitleFont = regularSubtitleFont if subtitle.isEmpty { @@ -68,6 +68,16 @@ private func generateButtonImage(background: PasscodeBackground, frame: CGRect, } subtitleOffset = -48.0 } + else { + titleFont = regularTitleFont + subtitleFont = regularSubtitleFont + if subtitle.isEmpty { + titleOffset = -11.0 + } else { + titleOffset = -4.0 + } + subtitleOffset = -41.0 + } let titlePath = CGMutablePath() titlePath.addRect(bounds.offsetBy(dx: 0.0, dy: titleOffset)) @@ -236,36 +246,66 @@ final class PasscodeEntryKeyboardNode: ASDisplayNode { } func updateLayout(layout: PasscodeLayout, transition: ContainedViewLayoutTransition) -> (CGRect, CGSize) { - let origin = CGPoint(x: floor((layout.layout.size.width - layout.keyboard.size.width) / 2.0), y: layout.keyboard.topOffset) + let origin: CGPoint + let buttonSize: CGFloat + let horizontalSecond: CGFloat + let horizontalThird: CGFloat + let verticalSecond: CGFloat + let verticalThird: CGFloat + let verticalFourth: CGFloat + let keyboardSize: CGSize + + if layout.layout.orientation == .landscape && layout.layout.deviceMetrics.type != .tablet { + let horizontalSpacing: CGFloat = 20.0 + let verticalSpacing: CGFloat = 12.0 + buttonSize = 65.0 + keyboardSize = CGSize(width: buttonSize * 3.0 + horizontalSpacing * 2.0, height: buttonSize * 4.0 + verticalSpacing * 3.0) + horizontalSecond = buttonSize + horizontalSpacing + horizontalThird = buttonSize * 2.0 + horizontalSpacing * 2.0 + verticalSecond = buttonSize + verticalSpacing + verticalThird = buttonSize * 2.0 + verticalSpacing * 2.0 + verticalFourth = buttonSize * 3.0 + verticalSpacing * 3.0 + origin = CGPoint(x: floor(layout.layout.size.width / 2.0 + (layout.layout.size.width / 2.0 - keyboardSize.width) / 2.0) - layout.layout.safeInsets.right, y: floor((layout.layout.size.height - keyboardSize.height) / 2.0)) + } else { + origin = CGPoint(x: floor((layout.layout.size.width - layout.keyboard.size.width) / 2.0), y: layout.keyboard.topOffset) + buttonSize = layout.keyboard.buttonSize + horizontalSecond = layout.keyboard.horizontalSecond + horizontalThird = layout.keyboard.horizontalThird + verticalSecond = layout.keyboard.verticalSecond + verticalThird = layout.keyboard.verticalThird + verticalFourth = layout.keyboard.verticalFourth + keyboardSize = layout.keyboard.size + } + if let subnodes = self.subnodes { for i in 0 ..< subnodes.count { var origin = origin if i % 3 == 0 { origin.x += 0.0 } else if (i % 3 == 1) { - origin.x += layout.keyboard.horizontalSecond + origin.x += horizontalSecond } else { - origin.x += layout.keyboard.horizontalThird + origin.x += horizontalThird } if i / 3 == 0 { origin.y += 0.0 } else if i / 3 == 1 { - origin.y += layout.keyboard.verticalSecond + origin.y += verticalSecond } else if i / 3 == 2 { - origin.y += layout.keyboard.verticalThird + origin.y += verticalThird } else if i / 3 == 3 { - origin.x += layout.keyboard.horizontalSecond - origin.y += layout.keyboard.verticalFourth + origin.x += horizontalSecond + origin.y += verticalFourth } - transition.updateFrame(node: subnodes[i], frame: CGRect(origin: origin, size: CGSize(width: layout.keyboard.buttonSize, height: layout.keyboard.buttonSize))) + transition.updateFrame(node: subnodes[i], frame: CGRect(origin: origin, size: CGSize(width: buttonSize, height: buttonSize))) } } - return (CGRect(origin: origin, size: layout.keyboard.size), CGSize(width: layout.keyboard.buttonSize, height: layout.keyboard.buttonSize)) + return (CGRect(origin: origin, size: keyboardSize), CGSize(width: buttonSize, height: buttonSize)) } override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { diff --git a/submodules/PasscodeUI/Sources/PasscodeEntryLabelNode.swift b/submodules/PasscodeUI/Sources/PasscodeEntryLabelNode.swift index ec6a09bad2..b77b0f829a 100644 --- a/submodules/PasscodeUI/Sources/PasscodeEntryLabelNode.swift +++ b/submodules/PasscodeUI/Sources/PasscodeEntryLabelNode.swift @@ -13,7 +13,7 @@ final class PasscodeEntryLabelNode: ASDisplayNode { private let wrapperNode: ASDisplayNode private let textNode: ASTextNode - private var validLayout: ContainerViewLayout? + private var validLayout: CGSize? override init() { self.wrapperNode = ASDisplayNode() @@ -34,13 +34,13 @@ final class PasscodeEntryLabelNode: ASDisplayNode { self.textNode.attributedText = text completion() - if let validLayout = self.validLayout { - let _ = self.updateLayout(layout: validLayout, transition: .immediate) + if let size = self.validLayout { + let _ = self.updateLayout(size: size, transition: .immediate) } case .slideIn: self.textNode.attributedText = text - if let validLayout = self.validLayout { - let _ = self.updateLayout(layout: validLayout, transition: .immediate) + if let size = self.validLayout { + let _ = self.updateLayout(size: size, transition: .immediate) } let offset = self.wrapperNode.bounds.width / 2.0 @@ -61,29 +61,29 @@ final class PasscodeEntryLabelNode: ASDisplayNode { self.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3, completion: { _ in completion() }) - if let validLayout = self.validLayout { - let _ = self.updateLayout(layout: validLayout, transition: .immediate) + if let size = self.validLayout { + let _ = self.updateLayout(size: size, transition: .immediate) } }) } else { self.textNode.attributedText = text self.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.3) completion() - if let validLayout = self.validLayout { - let _ = self.updateLayout(layout: validLayout, transition: .immediate) + if let size = self.validLayout { + let _ = self.updateLayout(size: size, transition: .immediate) } } } } - func updateLayout(layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) -> CGSize { - self.validLayout = layout + func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) -> CGSize { + self.validLayout = size - let textSize = self.textNode.measure(layout.size) - let textFrame = CGRect(x: floor((layout.size.width - textSize.width) / 2.0), y: 0.0, width: textSize.width, height: textSize.height) + let textSize = self.textNode.measure(size) + let textFrame = CGRect(x: floor((size.width - textSize.width) / 2.0), y: 0.0, width: textSize.width, height: textSize.height) transition.updateFrame(node: self.wrapperNode, frame: textFrame) transition.updateFrame(node: self.textNode, frame: CGRect(origin: CGPoint(), size: textSize)) - return CGSize(width: layout.size.width, height: 25.0) + return CGSize(width: size.width, height: 25.0) } } diff --git a/submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift b/submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift index 8e899a6421..dd2ce400ac 100644 --- a/submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift +++ b/submodules/PasscodeUI/Sources/PasscodeInputFieldNode.swift @@ -139,7 +139,7 @@ public final class PasscodeInputFieldNode: ASDisplayNode, UITextFieldDelegate { private let borderNode: ASImageNode private let dotNodes: [PasscodeEntryDotNode] - private var validLayout: (ContainerViewLayout, CGFloat)? + private var validLayout: (CGSize, CGFloat)? public var complete: ((String) -> Void)? @@ -202,15 +202,15 @@ public final class PasscodeInputFieldNode: ASDisplayNode, UITextFieldDelegate { self.textFieldNode.textField.keyboardType = self.fieldType.keyboardType - if let (layout, topOffset) = self.validLayout { - let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: animated ? .animated(duration: 0.25, curve: .easeInOut) : .immediate) + if let (size, topOffset) = self.validLayout { + let _ = self.updateLayout(size: size, topOffset: topOffset, transition: animated ? .animated(duration: 0.25, curve: .easeInOut) : .immediate) } } func updateBackground(_ image: UIImage, size: CGSize) { self.background = (image, size) - if let (layout, topOffset) = self.validLayout { - let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: .immediate) + if let (size, topOffset) = self.validLayout { + let _ = self.updateLayout(size: size, topOffset: topOffset, transition: .immediate) } } @@ -302,13 +302,13 @@ public final class PasscodeInputFieldNode: ASDisplayNode, UITextFieldDelegate { self.textFieldNode.textField.text = "" } self.fieldType = fieldType - if let (layout, topOffset) = self.validLayout { - let _ = self.updateLayout(layout: layout, topOffset: topOffset, transition: .immediate) + if let (size, topOffset) = self.validLayout { + let _ = self.updateLayout(size: size, topOffset: topOffset, transition: .immediate) } } - public func updateLayout(layout: ContainerViewLayout, topOffset: CGFloat, transition: ContainedViewLayoutTransition) -> CGRect { - self.validLayout = (layout, topOffset) + public func updateLayout(size: CGSize, topOffset: CGFloat, transition: ContainedViewLayoutTransition) -> CGRect { + self.validLayout = (size, topOffset) let fieldAlpha: CGFloat switch self.fieldType { @@ -321,7 +321,7 @@ public final class PasscodeInputFieldNode: ASDisplayNode, UITextFieldDelegate { transition.updateAlpha(node: self.textFieldNode, alpha: fieldAlpha) transition.updateAlpha(node: self.borderNode, alpha: fieldAlpha) - let origin = CGPoint(x: floor((layout.size.width - dotDiameter * 6 - dotSpacing * 5) / 2.0), y: topOffset) + let origin = CGPoint(x: floor((size.width - dotDiameter * 6 - dotSpacing * 5) / 2.0), y: topOffset) for i in 0 ..< self.dotNodes.count { let node = self.dotNodes[i] let dotAlpha: CGFloat @@ -343,7 +343,7 @@ public final class PasscodeInputFieldNode: ASDisplayNode, UITextFieldDelegate { if !self.useCustomNumpad { inset = 16.0 } - let fieldFrame = CGRect(x: inset, y: origin.y, width: layout.size.width - inset * 2.0, height: fieldHeight) + let fieldFrame = CGRect(x: inset, y: origin.y, width: size.width - inset * 2.0, height: fieldHeight) transition.updateFrame(node: self.borderNode, frame: fieldFrame) transition.updateFrame(node: self.textFieldNode, frame: fieldFrame.insetBy(dx: 13.0, dy: 0.0)) if let (backgroundImage, backgroundSize) = self.background { diff --git a/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift b/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift index 41ed465470..ab4a5402ed 100644 --- a/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift +++ b/submodules/PasscodeUI/Sources/PasscodeSetupControllerNode.swift @@ -146,7 +146,7 @@ final class PasscodeSetupControllerNode: ASDisplayNode { self.wrapperNode.frame = CGRect(x: 0.0, y: 0.0, width: layout.size.width, height: layout.size.height) - let inputFieldFrame = self.inputFieldNode.updateLayout(layout: layout, topOffset: floor(insets.top + navigationBarHeight + (layout.size.height - navigationBarHeight - insets.top - insets.bottom - 24.0) / 2.0), transition: transition) + let inputFieldFrame = self.inputFieldNode.updateLayout(size: layout.size, topOffset: floor(insets.top + navigationBarHeight + (layout.size.height - navigationBarHeight - insets.top - insets.bottom - 24.0) / 2.0), transition: transition) transition.updateFrame(node: self.inputFieldNode, frame: CGRect(origin: CGPoint(), size: layout.size)) transition.updateFrame(node: self.inputFieldBackgroundNode, frame: CGRect(x: 0.0, y: inputFieldFrame.minY - 6.0, width: layout.size.width, height: 48.0)) From b79d9bf93fb801fa96dd9bb8dc130811e44b6f7e Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sun, 20 Oct 2019 23:40:29 +0400 Subject: [PATCH 20/32] Fix device name display in cache clearance popup --- .../Sources/Data and Storage/StorageUsageController.swift | 6 +++--- submodules/TelegramUI/TelegramUI/ChatController.swift | 8 +------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift b/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift index 34410822f1..b2f9f2a5b1 100644 --- a/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift +++ b/submodules/SettingsUI/Sources/Data and Storage/StorageUsageController.swift @@ -531,7 +531,7 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals clearDisposable.set((signal |> deliverOnMainQueue).start(completed: { statsPromise.set(.single(.result(resultStats))) - var deviceName = "iPhone" + let deviceName = UIDevice.current.userInterfaceIdiom == .pad ? "iPad" : "iPhone" presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: false, action: { _ in }), nil) })) } @@ -710,8 +710,8 @@ public func storageUsageController(context: AccountContext, isModal: Bool = fals clearDisposable.set((signal |> deliverOnMainQueue).start(completed: { statsPromise.set(.single(.result(resultStats))) - - presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", "").0), elevatedLayout: false, action: { _ in }), nil) + let deviceName = UIDevice.current.userInterfaceIdiom == .pad ? "iPad" : "iPhone" + presentControllerImpl?(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: false, action: { _ in }), nil) })) } diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 73d3e492a1..7fa50734eb 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -5249,13 +5249,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G clearDisposable.set((signal |> deliverOnMainQueue).start(completed: { [weak self] in if let strongSelf = self, let layout = strongSelf.validLayout { - var deviceName: String - switch layout.deviceMetrics.type { - case .tablet: - deviceName = "iPad" - default: - deviceName = "iPhone" - } + let deviceName = UIDevice.current.userInterfaceIdiom == .pad ? "iPad" : "iPhone" strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(totalSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", deviceName).0), elevatedLayout: true, action: { _ in }), in: .window(.root)) } })) From 89bfb95fb9a01e38e68b76b95a2bb5dd8437c4bd Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sun, 20 Oct 2019 23:41:03 +0400 Subject: [PATCH 21/32] Fix chat poll option highlight color --- .../TelegramUI/ChatMessagePollBubbleContentNode.swift | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index 2946be7120..7c4f5662da 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -311,7 +311,7 @@ private struct ChatMessagePollOptionResult: Equatable { } private final class ChatMessagePollOptionNode: ASDisplayNode { - private let highlightedBackgroundNode: ASImageNode + private let highlightedBackgroundNode: ASDisplayNode private var radioNode: ChatMessagePollOptionRadioNode? private let percentageNode: ASDisplayNode private var percentageImage: UIImage? @@ -325,10 +325,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { var pressed: (() -> Void)? override init() { - self.highlightedBackgroundNode = ASImageNode() - self.highlightedBackgroundNode.displayWithoutProcessing = true - self.highlightedBackgroundNode.displaysAsynchronously = false - self.highlightedBackgroundNode.isLayerBacked = true + self.highlightedBackgroundNode = ASDisplayNode() self.highlightedBackgroundNode.alpha = 0.0 self.highlightedBackgroundNode.isUserInteractionEnabled = false @@ -343,8 +340,6 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { self.percentageNode = ASDisplayNode() self.percentageNode.alpha = 0.0 self.percentageNode.isLayerBacked = true - //self.percentageNode.displaysAsynchronously = false - //self.percentageNode.displayWithoutProcessing = true super.init() @@ -406,7 +401,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { let previousResult = node.currentResult node.currentResult = optionResult - node.highlightedBackgroundNode.backgroundColor = (incoming ? presentationData.theme.theme.chat.message.incoming.accentTextColor : presentationData.theme.theme.chat.message.outgoing.accentTextColor).withAlphaComponent(0.15) + node.highlightedBackgroundNode.backgroundColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.highlight : presentationData.theme.theme.chat.message.outgoing.polls.highlight node.buttonNode.accessibilityLabel = option.text From 97fea57795eaeb60e4d09c3a976ffb05caecd73d Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sun, 20 Oct 2019 23:41:25 +0400 Subject: [PATCH 22/32] Add search results list tooltip --- Telegram-iOS/en.lproj/Localizable.strings | 12 +++---- .../TelegramUI/ChatController.swift | 31 ++++++++++++++++--- .../ChatPanelInterfaceInteraction.swift | 4 ++- .../ChatRecentActionsController.swift | 1 + .../TelegramUI/ChatSearchInputPanelNode.swift | 27 ++++++++++++++++ .../PeerMediaCollectionController.swift | 1 + 6 files changed, 64 insertions(+), 12 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 4472d3069f..75172eb086 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -4638,12 +4638,12 @@ Any member of this group will be able to see messages in the channel."; "Conversation.SendMessage.SetReminder" = "Set a Reminder"; -"Conversation.SelectedMessages_1" = "%@ Message Selected"; -"Conversation.SelectedMessages_2" = "%@ Messages Selected"; -"Conversation.SelectedMessages_3_10" = "%@ Messages Selected"; -"Conversation.SelectedMessages_any" = "%@ Messages Selected"; -"Conversation.SelectedMessages_many" = "%@ Messages Selected"; -"Conversation.SelectedMessages_0" = "%@ Messages Selected"; +"Conversation.SelectedMessages_1" = "%@ Selected"; +"Conversation.SelectedMessages_2" = "%@ Selected"; +"Conversation.SelectedMessages_3_10" = "%@ Selected"; +"Conversation.SelectedMessages_any" = "%@ Selected"; +"Conversation.SelectedMessages_many" = "%@ Selected"; +"Conversation.SelectedMessages_0" = "%@ Selected"; "AccentColor.Title" = "Accent Color"; diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 7fa50734eb..530125999a 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -265,6 +265,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G private var raiseToListen: RaiseToListenManager? private var voicePlaylistDidEndTimestamp: Double = 0.0 + private weak var searchResultsTooltipController: TooltipController? private weak var messageTooltipController: TooltipController? private weak var videoUnmuteTooltipController: TooltipController? private weak var silentPostTooltipController: TooltipController? @@ -1522,9 +1523,9 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if let strongSelf = self { strongSelf.context.sharedContext.applicationBindings.openAppStorePage() } - }, displayMessageTooltip: { [weak self] messageId, text, sourceNode, sourceFrame in + }, displayMessageTooltip: { [weak self] messageId, text, node, nodeRect in if let strongSelf = self { - if let sourceNode = sourceNode { + if let node = node { strongSelf.messageTooltipController?.dismiss() let tooltipController = TooltipController(content: .text(text), dismissByTapOutside: true, dismissImmediatelyOnLayoutUpdate: true) strongSelf.messageTooltipController = tooltipController @@ -1535,9 +1536,9 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } strongSelf.present(tooltipController, in: .window(.root), with: TooltipControllerPresentationArguments(sourceNodeAndRect: { if let strongSelf = self { - var rect = sourceNode.view.convert(sourceNode.view.bounds, to: strongSelf.chatDisplayNode.view) - if let sourceFrame = sourceFrame { - rect = CGRect(origin: rect.origin.offsetBy(dx: sourceFrame.minX, dy: sourceFrame.minY - sourceNode.bounds.minY), size: sourceFrame.size) + var rect = node.view.convert(node.view.bounds, to: strongSelf.chatDisplayNode.view) + if let nodeRect = nodeRect { + rect = CGRect(origin: rect.origin.offsetBy(dx: nodeRect.minX, dy: nodeRect.minY - node.bounds.minY), size: nodeRect.size) } return (strongSelf.chatDisplayNode, rect) } @@ -4088,6 +4089,25 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if let strongSelf = self { strongSelf.openScheduledMessages() } + }, displaySearchResultsTooltip: { [weak self] node, nodeRect in + if let strongSelf = self { + strongSelf.searchResultsTooltipController?.dismiss() + let tooltipController = TooltipController(content: .text(strongSelf.presentationData.strings.ChatSearch_ResultsTooltip), dismissByTapOutside: true, dismissImmediatelyOnLayoutUpdate: true) + strongSelf.searchResultsTooltipController = tooltipController + tooltipController.dismissed = { [weak tooltipController] _ in + if let strongSelf = self, let tooltipController = tooltipController, strongSelf.searchResultsTooltipController === tooltipController { + strongSelf.searchResultsTooltipController = nil + } + } + strongSelf.present(tooltipController, in: .window(.root), with: TooltipControllerPresentationArguments(sourceNodeAndRect: { + if let strongSelf = self { + var rect = node.view.convert(node.view.bounds, to: strongSelf.chatDisplayNode.view) + rect = CGRect(origin: rect.origin.offsetBy(dx: nodeRect.minX, dy: nodeRect.minY - node.bounds.minY), size: nodeRect.size) + return (strongSelf.chatDisplayNode, rect) + } + return nil + })) + } }, statuses: ChatPanelInterfaceInteractionStatuses(editingMessage: self.editingMessage.get(), startingBot: self.startingBot.get(), unblockingPeer: self.unblockingPeer.get(), searching: self.searching.get(), loadingMessage: self.loadingMessage.get())) switch self.chatLocation { @@ -7817,6 +7837,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } private func dismissAllTooltips() { + self.searchResultsTooltipController?.dismiss() self.messageTooltipController?.dismiss() self.videoUnmuteTooltipController?.dismiss() self.silentPostTooltipController?.dismiss() diff --git a/submodules/TelegramUI/TelegramUI/ChatPanelInterfaceInteraction.swift b/submodules/TelegramUI/TelegramUI/ChatPanelInterfaceInteraction.swift index 47663594cf..6c185b84de 100644 --- a/submodules/TelegramUI/TelegramUI/ChatPanelInterfaceInteraction.swift +++ b/submodules/TelegramUI/TelegramUI/ChatPanelInterfaceInteraction.swift @@ -112,9 +112,10 @@ final class ChatPanelInterfaceInteraction { let displaySlowmodeTooltip: (ASDisplayNode, CGRect) -> Void let displaySendMessageOptions: () -> Void let openScheduledMessages: () -> Void + let displaySearchResultsTooltip: (ASDisplayNode, CGRect) -> Void let statuses: ChatPanelInterfaceInteractionStatuses? - init(setupReplyMessage: @escaping (MessageId, @escaping (ContainedViewLayoutTransition) -> Void) -> Void, setupEditMessage: @escaping (MessageId?, @escaping (ContainedViewLayoutTransition) -> Void) -> Void, beginMessageSelection: @escaping ([MessageId], @escaping (ContainedViewLayoutTransition) -> Void) -> Void, deleteSelectedMessages: @escaping () -> Void, reportSelectedMessages: @escaping () -> Void, reportMessages: @escaping ([Message], ContextController?) -> Void, deleteMessages: @escaping ([Message], ContextController?, @escaping (ContextMenuActionResult) -> Void) -> Void, forwardSelectedMessages: @escaping () -> Void, forwardCurrentForwardMessages: @escaping () -> Void, forwardMessages: @escaping ([Message]) -> Void, shareSelectedMessages: @escaping () -> Void, updateTextInputStateAndMode: @escaping ((ChatTextInputState, ChatInputMode) -> (ChatTextInputState, ChatInputMode)) -> Void, updateInputModeAndDismissedButtonKeyboardMessageId: @escaping ((ChatPresentationInterfaceState) -> (ChatInputMode, MessageId?)) -> Void, openStickers: @escaping () -> Void, editMessage: @escaping () -> Void, beginMessageSearch: @escaping (ChatSearchDomain, String) -> Void, dismissMessageSearch: @escaping () -> Void, updateMessageSearch: @escaping (String) -> Void, openSearchResults: @escaping () -> Void, navigateMessageSearch: @escaping (ChatPanelSearchNavigationAction) -> Void, openCalendarSearch: @escaping () -> Void, toggleMembersSearch: @escaping (Bool) -> Void, navigateToMessage: @escaping (MessageId) -> Void, navigateToChat: @escaping (PeerId) -> Void, openPeerInfo: @escaping () -> Void, togglePeerNotifications: @escaping () -> Void, sendContextResult: @escaping (ChatContextResultCollection, ChatContextResult, ASDisplayNode, CGRect) -> Bool, sendBotCommand: @escaping (Peer, String) -> Void, sendBotStart: @escaping (String?) -> Void, botSwitchChatWithPayload: @escaping (PeerId, String) -> Void, beginMediaRecording: @escaping (Bool) -> Void, finishMediaRecording: @escaping (ChatFinishMediaRecordingAction) -> Void, stopMediaRecording: @escaping () -> Void, lockMediaRecording: @escaping () -> Void, deleteRecordedMedia: @escaping () -> Void, sendRecordedMedia: @escaping () -> Void, displayRestrictedInfo: @escaping (ChatPanelRestrictionInfoSubject, ChatPanelRestrictionInfoDisplayType) -> Void, displayVideoUnmuteTip: @escaping (CGPoint?) -> Void, switchMediaRecordingMode: @escaping () -> Void, setupMessageAutoremoveTimeout: @escaping () -> Void, sendSticker: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, unblockPeer: @escaping () -> Void, pinMessage: @escaping (MessageId) -> Void, unpinMessage: @escaping () -> Void, shareAccountContact: @escaping () -> Void, reportPeer: @escaping () -> Void, presentPeerContact: @escaping () -> Void, dismissReportPeer: @escaping () -> Void, deleteChat: @escaping () -> Void, beginCall: @escaping () -> Void, toggleMessageStickerStarred: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, getNavigationController: @escaping () -> NavigationController?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, navigateFeed: @escaping () -> Void, openGrouping: @escaping () -> Void, toggleSilentPost: @escaping () -> Void, requestUnvoteInMessage: @escaping (MessageId) -> Void, requestStopPollInMessage: @escaping (MessageId) -> Void, updateInputLanguage: @escaping ((String?) -> String?) -> Void, unarchiveChat: @escaping () -> Void, openLinkEditing: @escaping () -> Void, reportPeerIrrelevantGeoLocation: @escaping () -> Void, displaySlowmodeTooltip: @escaping (ASDisplayNode, CGRect) -> Void, displaySendMessageOptions: @escaping () -> Void, openScheduledMessages: @escaping () -> Void, statuses: ChatPanelInterfaceInteractionStatuses?) { + init(setupReplyMessage: @escaping (MessageId, @escaping (ContainedViewLayoutTransition) -> Void) -> Void, setupEditMessage: @escaping (MessageId?, @escaping (ContainedViewLayoutTransition) -> Void) -> Void, beginMessageSelection: @escaping ([MessageId], @escaping (ContainedViewLayoutTransition) -> Void) -> Void, deleteSelectedMessages: @escaping () -> Void, reportSelectedMessages: @escaping () -> Void, reportMessages: @escaping ([Message], ContextController?) -> Void, deleteMessages: @escaping ([Message], ContextController?, @escaping (ContextMenuActionResult) -> Void) -> Void, forwardSelectedMessages: @escaping () -> Void, forwardCurrentForwardMessages: @escaping () -> Void, forwardMessages: @escaping ([Message]) -> Void, shareSelectedMessages: @escaping () -> Void, updateTextInputStateAndMode: @escaping ((ChatTextInputState, ChatInputMode) -> (ChatTextInputState, ChatInputMode)) -> Void, updateInputModeAndDismissedButtonKeyboardMessageId: @escaping ((ChatPresentationInterfaceState) -> (ChatInputMode, MessageId?)) -> Void, openStickers: @escaping () -> Void, editMessage: @escaping () -> Void, beginMessageSearch: @escaping (ChatSearchDomain, String) -> Void, dismissMessageSearch: @escaping () -> Void, updateMessageSearch: @escaping (String) -> Void, openSearchResults: @escaping () -> Void, navigateMessageSearch: @escaping (ChatPanelSearchNavigationAction) -> Void, openCalendarSearch: @escaping () -> Void, toggleMembersSearch: @escaping (Bool) -> Void, navigateToMessage: @escaping (MessageId) -> Void, navigateToChat: @escaping (PeerId) -> Void, openPeerInfo: @escaping () -> Void, togglePeerNotifications: @escaping () -> Void, sendContextResult: @escaping (ChatContextResultCollection, ChatContextResult, ASDisplayNode, CGRect) -> Bool, sendBotCommand: @escaping (Peer, String) -> Void, sendBotStart: @escaping (String?) -> Void, botSwitchChatWithPayload: @escaping (PeerId, String) -> Void, beginMediaRecording: @escaping (Bool) -> Void, finishMediaRecording: @escaping (ChatFinishMediaRecordingAction) -> Void, stopMediaRecording: @escaping () -> Void, lockMediaRecording: @escaping () -> Void, deleteRecordedMedia: @escaping () -> Void, sendRecordedMedia: @escaping () -> Void, displayRestrictedInfo: @escaping (ChatPanelRestrictionInfoSubject, ChatPanelRestrictionInfoDisplayType) -> Void, displayVideoUnmuteTip: @escaping (CGPoint?) -> Void, switchMediaRecordingMode: @escaping () -> Void, setupMessageAutoremoveTimeout: @escaping () -> Void, sendSticker: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, unblockPeer: @escaping () -> Void, pinMessage: @escaping (MessageId) -> Void, unpinMessage: @escaping () -> Void, shareAccountContact: @escaping () -> Void, reportPeer: @escaping () -> Void, presentPeerContact: @escaping () -> Void, dismissReportPeer: @escaping () -> Void, deleteChat: @escaping () -> Void, beginCall: @escaping () -> Void, toggleMessageStickerStarred: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, getNavigationController: @escaping () -> NavigationController?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, navigateFeed: @escaping () -> Void, openGrouping: @escaping () -> Void, toggleSilentPost: @escaping () -> Void, requestUnvoteInMessage: @escaping (MessageId) -> Void, requestStopPollInMessage: @escaping (MessageId) -> Void, updateInputLanguage: @escaping ((String?) -> String?) -> Void, unarchiveChat: @escaping () -> Void, openLinkEditing: @escaping () -> Void, reportPeerIrrelevantGeoLocation: @escaping () -> Void, displaySlowmodeTooltip: @escaping (ASDisplayNode, CGRect) -> Void, displaySendMessageOptions: @escaping () -> Void, openScheduledMessages: @escaping () -> Void, displaySearchResultsTooltip: @escaping (ASDisplayNode, CGRect) -> Void, statuses: ChatPanelInterfaceInteractionStatuses?) { self.setupReplyMessage = setupReplyMessage self.setupEditMessage = setupEditMessage self.beginMessageSelection = beginMessageSelection @@ -181,6 +182,7 @@ final class ChatPanelInterfaceInteraction { self.displaySlowmodeTooltip = displaySlowmodeTooltip self.displaySendMessageOptions = displaySendMessageOptions self.openScheduledMessages = openScheduledMessages + self.displaySearchResultsTooltip = displaySearchResultsTooltip self.statuses = statuses } } diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsController.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsController.swift index a10a9b21dc..55f4195536 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsController.swift @@ -113,6 +113,7 @@ final class ChatRecentActionsController: TelegramBaseController { }, displaySlowmodeTooltip: { _, _ in }, displaySendMessageOptions: { }, openScheduledMessages: { + }, displaySearchResultsTooltip: { _, _ in }, statuses: nil) self.navigationItem.titleView = self.titleView diff --git a/submodules/TelegramUI/TelegramUI/ChatSearchInputPanelNode.swift b/submodules/TelegramUI/TelegramUI/ChatSearchInputPanelNode.swift index 68badf64fd..dedab1ef79 100644 --- a/submodules/TelegramUI/TelegramUI/ChatSearchInputPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatSearchInputPanelNode.swift @@ -5,6 +5,7 @@ import Display import TelegramCore import Postbox import SwiftSignalKit +import TelegramNotices import TelegramPresentationData import ActivityIndicator @@ -24,6 +25,8 @@ final class ChatSearchInputPanelNode: ChatInputPanelNode { private let activityDisposable = MetaDisposable() private var displayActivity = false + private var needsSearchResultsTooltip = true + private var validLayout: (CGFloat, CGFloat, CGFloat, CGFloat, LayoutMetrics)? override var interfaceInteraction: ChatPanelInterfaceInteraction? { @@ -79,6 +82,26 @@ final class ChatSearchInputPanelNode: ChatInputPanelNode { @objc func upPressed() { self.interfaceInteraction?.navigateMessageSearch(.earlier) + + guard self.needsSearchResultsTooltip, let context = self.context else { + return + } + + let _ = (ApplicationSpecificNotice.getChatMessageSearchResultsTip(accountManager: context.sharedContext.accountManager) + |> deliverOnMainQueue).start(next: { [weak self] counter in + guard let strongSelf = self else { + return + } + + if counter >= 3 { + strongSelf.needsSearchResultsTooltip = false + } else if arc4random_uniform(4) == 1 { + strongSelf.needsSearchResultsTooltip = false + + let _ = ApplicationSpecificNotice.incrementChatMessageSearchResultsTip(accountManager: context.sharedContext.accountManager).start() + strongSelf.interfaceInteraction?.displaySearchResultsTooltip(strongSelf.resultsButton, strongSelf.resultsButton.bounds) + } + }) } @objc func downPressed() { @@ -95,6 +118,10 @@ final class ChatSearchInputPanelNode: ChatInputPanelNode { @objc func resultsPressed() { self.interfaceInteraction?.openSearchResults() + + if let context = self.context { + let _ = ApplicationSpecificNotice.incrementChatMessageSearchResultsTip(accountManager: context.sharedContext.accountManager, count: 4).start() + } } override func updateLayout(width: CGFloat, leftInset: CGFloat, rightInset: CGFloat, maxHeight: CGFloat, transition: ContainedViewLayoutTransition, interfaceState: ChatPresentationInterfaceState, metrics: LayoutMetrics) -> CGFloat { diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift index 19b172fa6f..5c4e6caad4 100644 --- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift +++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift @@ -519,6 +519,7 @@ public class PeerMediaCollectionController: TelegramBaseController { }, displaySlowmodeTooltip: { _, _ in }, displaySendMessageOptions: { }, openScheduledMessages: { + }, displaySearchResultsTooltip: { _, _ in }, statuses: nil) self.updateInterfaceState(animated: false, { return $0 }) From 108edc017892597238739d7efca8d431c6db657f Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 21 Oct 2019 14:32:32 +0400 Subject: [PATCH 23/32] Fix defer screen edge --- SiriIntents/IntentHandler.swift | 12 +++--------- submodules/Display/Display/WindowContent.swift | 6 +++++- .../LegacyComponents/TGModernGalleryController.m | 15 +++++++-------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/SiriIntents/IntentHandler.swift b/SiriIntents/IntentHandler.swift index 8f32226fc8..1f25aba4e3 100644 --- a/SiriIntents/IntentHandler.swift +++ b/SiriIntents/IntentHandler.swift @@ -342,10 +342,8 @@ class IntentHandler: INExtension, INSendMessageIntentHandling, INSearchForMessag func handle(intent: INSendMessageIntent, completion: @escaping (INSendMessageIntentResponse) -> Void) { self.actionDisposable.set((self.accountPromise.get() + |> castError(IntentHandlingError.self) |> take(1) - |> mapError { _ -> IntentHandlingError in - return .generic - } |> mapToSignal { account -> Signal in guard let account = account else { return .fail(.generic) @@ -455,10 +453,8 @@ class IntentHandler: INExtension, INSendMessageIntentHandling, INSearchForMessag func handle(intent: INSetMessageAttributeIntent, completion: @escaping (INSetMessageAttributeIntentResponse) -> Void) { self.actionDisposable.set((self.accountPromise.get() + |> castError(IntentHandlingError.self) |> take(1) - |> mapError { _ -> IntentHandlingError in - return .generic - } |> mapToSignal { account -> Signal in guard let account = account else { return .fail(.generic) @@ -531,10 +527,8 @@ class IntentHandler: INExtension, INSendMessageIntentHandling, INSearchForMessag func handle(intent: INStartAudioCallIntent, completion: @escaping (INStartAudioCallIntentResponse) -> Void) { self.actionDisposable.set((self.accountPromise.get() + |> castError(IntentHandlingError.self) |> take(1) - |> mapError { _ -> IntentHandlingError in - return .generic - } |> mapToSignal { account -> Signal in guard let contact = intent.contacts?.first, let customIdentifier = contact.customIdentifier, customIdentifier.hasPrefix("tg") else { return .fail(.generic) diff --git a/submodules/Display/Display/WindowContent.swift b/submodules/Display/Display/WindowContent.swift index b3eb04cf1c..0b9b55aab4 100644 --- a/submodules/Display/Display/WindowContent.swift +++ b/submodules/Display/Display/WindowContent.swift @@ -1229,7 +1229,11 @@ public class Window1 { } private func collectScreenEdgeGestures() -> UIRectEdge { - var edges = self.presentationContext.combinedDeferScreenEdgeGestures() + var edges: UIRectEdge = [] + if let navigationController = self._rootController as? NavigationController, let overlayController = navigationController.topOverlayController { + edges = edges.union(overlayController.deferScreenEdgeGestures) + } + edges = edges.union(self.presentationContext.combinedDeferScreenEdgeGestures()) for controller in self.topLevelOverlayControllers { if let controller = controller as? ViewController { diff --git a/submodules/LegacyComponents/LegacyComponents/TGModernGalleryController.m b/submodules/LegacyComponents/LegacyComponents/TGModernGalleryController.m index ec597512c5..d5e18176ca 100644 --- a/submodules/LegacyComponents/LegacyComponents/TGModernGalleryController.m +++ b/submodules/LegacyComponents/LegacyComponents/TGModernGalleryController.m @@ -1191,6 +1191,13 @@ static CGFloat transformRotation(CGAffineTransform transform) else [_model _transitionCompleted]; } + + if (!_previewMode) { + if (self.adjustsStatusBarVisibility && (!_showInterface || [_view.interfaceView prefersStatusBarHidden])) + { + [_context setApplicationStatusBarAlpha:0.0f]; + } + } } - (void)viewWillAppear:(BOOL)animated @@ -1203,14 +1210,6 @@ static CGFloat transformRotation(CGAffineTransform transform) if (!_showInterface) { _view.interfaceView.alpha = 0.0f; - - if (self.adjustsStatusBarVisibility) - [_context setApplicationStatusBarAlpha:0.0f]; - } - else if ([_view.interfaceView prefersStatusBarHidden]) - { - if (self.adjustsStatusBarVisibility) - [_context setApplicationStatusBarAlpha:0.0f]; } } From ccce18ac9761d6a1ec0a81fe0ce807f9b800a844 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 21 Oct 2019 20:03:06 +0400 Subject: [PATCH 24/32] Fix widget display name --- Widget/Info.plist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Widget/Info.plist b/Widget/Info.plist index f3de288c2a..7e87bf7a10 100644 --- a/Widget/Info.plist +++ b/Widget/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - People + ${APP_NAME} CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier From 10168f1f56ed058ec6e6b5747e24eb1e1731c3ae Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 21 Oct 2019 20:03:25 +0400 Subject: [PATCH 25/32] Fix passcode biometrics button positioning in landscape --- .../Sources/PasscodeEntryControllerNode.swift | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift b/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift index 15dc993bdd..9af694cbcb 100644 --- a/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift +++ b/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift @@ -426,13 +426,21 @@ final class PasscodeEntryControllerNode: ASDisplayNode { transition.updateFrame(node: self.deleteButtonNode, frame: CGRect(origin: CGPoint(x: floor(keyboardFrame.maxX - keyboardButtonSize.width / 2.0 - deleteSize.width / 2.0), y: bottomButtonY), size: deleteSize)) if let biometricIcon = self.biometricButtonNode.image(for: .normal) { + var biometricX = layout.safeInsets.left + floor((layoutSize.width - biometricIcon.size.width) / 2.0) var biometricY: CGFloat = 0.0 - if bottomInset > 0 && keyboardHidden { - biometricY = inputFieldFrame.maxY + floor((layout.size.height - bottomInset - inputFieldFrame.maxY - biometricIcon.size.height) / 2.0) + if isLandscape { + if bottomInset > 0 && keyboardHidden { + biometricX = cancelX + cancelSize.width + 64.0 + } + biometricY = cancelY + floor((cancelSize.height - biometricIcon.size.height) / 2.0) } else { - biometricY = keyboardFrame.maxY + passcodeLayout.keyboard.biometricsOffset + if bottomInset > 0 && keyboardHidden { + biometricY = inputFieldFrame.maxY + floor((layout.size.height - bottomInset - inputFieldFrame.maxY - biometricIcon.size.height) / 2.0) + } else { + biometricY = keyboardFrame.maxY + passcodeLayout.keyboard.biometricsOffset + } } - transition.updateFrame(node: self.biometricButtonNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - biometricIcon.size.width) / 2.0), y: biometricY), size: biometricIcon.size)) + transition.updateFrame(node: self.biometricButtonNode, frame: CGRect(origin: CGPoint(x: biometricX, y: biometricY), size: biometricIcon.size)) } } } From a7bf25bda61cb42336db3bb388041447d7ccae62 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 21 Oct 2019 20:43:11 +0400 Subject: [PATCH 26/32] Fix location picker navigation bar --- .../LegacyComponents/TGLocationMapViewController.m | 4 ++-- .../LegacyComponents/TGLocationPickerController.m | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/submodules/LegacyComponents/LegacyComponents/TGLocationMapViewController.m b/submodules/LegacyComponents/LegacyComponents/TGLocationMapViewController.m index 73d55621ab..6703d330d7 100644 --- a/submodules/LegacyComponents/LegacyComponents/TGLocationMapViewController.m +++ b/submodules/LegacyComponents/LegacyComponents/TGLocationMapViewController.m @@ -179,7 +179,7 @@ const CGFloat TGLocationMapInset = 100.0f; return; [self updateMapHeightAnimated:false]; - _optionsView.frame = CGRectMake(self.view.bounds.size.width - 45.0f - 6.0f - self.controllerSafeAreaInset.right, self.controllerInset.top + 6.0f, 45.0f, 90.0f); + _optionsView.frame = CGRectMake(self.view.bounds.size.width - 45.0f - 6.0f - self.controllerSafeAreaInset.right, 56.0f + 6.0f, 45.0f, 90.0f); _tableView.contentOffset = CGPointMake(0.0f, -_tableViewTopInset - self.controllerInset.top); } @@ -259,7 +259,7 @@ const CGFloat TGLocationMapInset = 100.0f; [scrollView setContentOffset:contentOffset animated:false]; } - _optionsView.frame = CGRectMake(self.view.bounds.size.width - 45.0f - 6.0f, self.controllerInset.top + 6.0f, 45.0f, 90.0f); + _optionsView.frame = CGRectMake(self.view.bounds.size.width - 45.0f - 6.0f, 56.0f + 6.0f, 45.0f, 90.0f); } - (NSInteger)tableView:(UITableView *)__unused tableView numberOfRowsInSection:(NSInteger)__unused section diff --git a/submodules/LegacyComponents/LegacyComponents/TGLocationPickerController.m b/submodules/LegacyComponents/LegacyComponents/TGLocationPickerController.m index 5f308e5118..96800ff556 100644 --- a/submodules/LegacyComponents/LegacyComponents/TGLocationPickerController.m +++ b/submodules/LegacyComponents/LegacyComponents/TGLocationPickerController.m @@ -179,13 +179,13 @@ const CGPoint TGLocationPickerPinOffset = { 0.0f, 33.0f }; [self.navigationController.view addSubview:_searchBarOverlay]; CGFloat safeAreaInset = self.controllerSafeAreaInset.top > FLT_EPSILON ? self.controllerSafeAreaInset.top : 0.0f; - _searchBarWrapper = [[UIView alloc] initWithFrame:CGRectMake(0, -44 - safeAreaInset, self.navigationController.view.frame.size.width, 44 + safeAreaInset)]; + _searchBarWrapper = [[UIView alloc] initWithFrame:CGRectMake(0, -44.0f, self.navigationController.view.frame.size.width, 44.0f)]; _searchBarWrapper.autoresizingMask = UIViewAutoresizingFlexibleWidth; _searchBarWrapper.backgroundColor = self.pallete != nil ? self.pallete.backgroundColor : [UIColor whiteColor]; _searchBarWrapper.hidden = true; [self.navigationController.view addSubview:_searchBarWrapper]; - _searchBar = [[TGSearchBar alloc] initWithFrame:CGRectMake(0.0f, safeAreaInset, _searchBarWrapper.frame.size.width, [TGSearchBar searchBarBaseHeight]) style:TGSearchBarStyleHeader]; + _searchBar = [[TGSearchBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, _searchBarWrapper.frame.size.width, [TGSearchBar searchBarBaseHeight]) style:TGSearchBarStyleHeader]; if (self.pallete != nil) [_searchBar setPallete:self.pallete.searchBarPallete]; _searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; @@ -808,10 +808,7 @@ const CGPoint TGLocationPickerPinOffset = { 0.0f, 33.0f }; } else { - frame.origin.y = 0; - if (self.navigationController.modalPresentationStyle == UIModalPresentationFormSheet) - frame.origin.y -= 20; - + frame.origin.y = 0; _searchBarOverlay.alpha = 1.0f; } _searchBarWrapper.frame = frame; From d7e17497f61fdd4db7fef76f2838a83039eb39a5 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 22 Oct 2019 05:57:50 +0400 Subject: [PATCH 27/32] Update rlottie --- submodules/rlottie/rlottie | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/rlottie/rlottie b/submodules/rlottie/rlottie index c490c7a098..a09896b3e7 160000 --- a/submodules/rlottie/rlottie +++ b/submodules/rlottie/rlottie @@ -1 +1 @@ -Subproject commit c490c7a098b9b3cbc3195b00e90d6fc3989e2ba2 +Subproject commit a09896b3e72e76681c12e80572a7d570108cf885 From 3cb239ee578199119de55e73204c961707380a5b Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 22 Oct 2019 05:58:28 +0400 Subject: [PATCH 28/32] Cleanup Wallet --- .../WalletUI/Sources/WalletInfoScreen.swift | 2 +- .../Sources/WalletPasscodeScreen.swift | 248 ------------------ .../WalletUI/Sources/WalletQrCodeItem.swift | 167 ------------ .../WalletUI/Sources/WalletQrViewScreen.swift | 143 ---------- .../Sources/WalletReceiveScreen.swift | 29 -- 5 files changed, 1 insertion(+), 588 deletions(-) delete mode 100644 submodules/WalletUI/Sources/WalletPasscodeScreen.swift delete mode 100644 submodules/WalletUI/Sources/WalletQrCodeItem.swift delete mode 100644 submodules/WalletUI/Sources/WalletQrViewScreen.swift diff --git a/submodules/WalletUI/Sources/WalletInfoScreen.swift b/submodules/WalletUI/Sources/WalletInfoScreen.swift index 8a2d5a095c..1582178fc8 100644 --- a/submodules/WalletUI/Sources/WalletInfoScreen.swift +++ b/submodules/WalletUI/Sources/WalletInfoScreen.swift @@ -94,7 +94,7 @@ public final class WalletInfoScreen: ViewController { @objc private func settingsPressed() { if let walletInfo = self.walletInfo { - self.push(walletSettingsController(context: self.context, walletInfo: walletInfo)) + self.push(walletSettingsController(context: self.context, walletInfo: walletInfo)) } } diff --git a/submodules/WalletUI/Sources/WalletPasscodeScreen.swift b/submodules/WalletUI/Sources/WalletPasscodeScreen.swift deleted file mode 100644 index 5be1703679..0000000000 --- a/submodules/WalletUI/Sources/WalletPasscodeScreen.swift +++ /dev/null @@ -1,248 +0,0 @@ -/*import Foundation -import UIKit -import AppBundle -import AsyncDisplayKit -import Display -import AnimationUI -import SwiftSignalKit -import OverlayStatusController -import PasscodeInputFieldNode - -public enum WalletPasscodeMode { - case setup - case authorizeTransfer(WalletInfo, String, Int64, Data) -} - -public final class WalletPasscodeScreen: ViewController { - private let context: WalletContext - private var presentationData: WalletPresentationData - private let mode: WalletPasscodeMode - private let randomId: Int64 - - public init(context: WalletContext, mode: WalletPasscodeMode) { - self.context = context - self.mode = mode - - self.randomId = arc4random64() - - self.presentationData = context.presentationData - - let defaultNavigationPresentationData = NavigationBarPresentationData(WalletTheme: self.presentationData.theme, WalletStrings: self.presentationData.strings) - let navigationBarTheme = NavigationBarTheme(buttonColor: defaultNavigationPresentationData.theme.buttonColor, disabledButtonColor: defaultNavigationPresentationData.theme.disabledButtonColor, primaryTextColor: defaultNavigationPresentationData.theme.primaryTextColor, backgroundColor: .clear, separatorColor: .clear, badgeBackgroundColor: defaultNavigationPresentationData.theme.badgeBackgroundColor, badgeStrokeColor: defaultNavigationPresentationData.theme.badgeStrokeColor, badgeTextColor: defaultNavigationPresentationData.theme.badgeTextColor) - - super.init(navigationBarPresentationData: NavigationBarPresentationData(theme: navigationBarTheme, strings: defaultNavigationPresentationData.strings)) - - self.statusBar.statusBarStyle = self.presentationData.theme.rootController.statusBarStyle.style - self.navigationPresentation = .modalInLargeLayout - self.supportedOrientations = ViewControllerSupportedOrientations(regularSize: .all, compactSize: .portrait) - self.navigationBar?.intrinsicCanTransitionInline = false - - self.navigationItem.setLeftBarButton(UIBarButtonItem(title: self.presentationData.strings.Common_Cancel, style: .plain, target: self, action: #selector(self.backPressed)), animated: false) - - self.navigationItem.backBarButtonItem = UIBarButtonItem(title: self.presentationData.strings.Wallet_Navigation_Back, style: .plain, target: nil, action: nil) - } - - required init(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - @objc private func backPressed() { - self.view.endEditing(true) - self.dismiss() - } - - override public func loadDisplayNode() { - self.displayNode = WalletPasscodeScreenNode(account: self.context.account, WalletPresentationData: self.presentationData, mode: self.mode, proceed: { [weak self] in - guard let strongSelf = self else { - return - } - switch strongSelf.mode { - case .setup: - break - case let .authorizeTransfer(walletInfo, address, amount, comment): - if let navigationController = strongSelf.navigationController as? NavigationController { - var controllers = navigationController.viewControllers - controllers = controllers.filter { controller in - if controller is WalletSplashScreen { - return false - } - if controller is WalletSendScreen { - return false - } - if controller is WalletPasscodeScreen { - return false - } - return true - } - controllers.append(WalletSplashScreen(context: strongSelf.context, tonContext: strongSelf.tonContext, mode: .sending(walletInfo, address, amount, comment, strongSelf.randomId, Data()), walletCreatedPreloadState: nil)) - strongSelf.view.endEditing(true) - navigationController.setViewControllers(controllers, animated: true) - } - } - }, requestBiometrics: { - - }) - - self.displayNodeDidLoad() - } - - override public func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - - (self.displayNode as! WalletPasscodeScreenNode).activateInput() - } - - override public func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - self.view.disablesInteractiveTransitionGestureRecognizer = true - - (self.displayNode as! WalletPasscodeScreenNode).activateInput() - } - - override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { - super.containerLayoutUpdated(layout, transition: transition) - - (self.displayNode as! WalletPasscodeScreenNode).containerLayoutUpdated(layout: layout, navigationHeight: self.navigationHeight, transition: transition) - } -} - -private final class WalletPasscodeScreenNode: ViewControllerTracingNode { - private var presentationData: WalletPresentationData - private let mode: WalletPasscodeMode - private let requestBiometrics: () -> Void - - private let iconNode: ASImageNode - private let animationNode: AnimatedStickerNode - private let titleNode: ImmediateTextNode - private let biometricsActionTitleNode: ImmediateTextNode - private let biometricsActionButtonNode: HighlightTrackingButtonNode - private let inputFieldNode: PasscodeInputFieldNode - - private let hapticFeedback = HapticFeedback() - - init(account: Account, presentationData: WalletPresentationData, mode: WalletPasscodeMode, proceed: @escaping () -> Void, requestBiometrics: @escaping () -> Void) { - self.presentationData = WalletPresentationData - self.mode = mode - self.requestBiometrics = requestBiometrics - - self.iconNode = ASImageNode() - self.iconNode.displayWithoutProcessing = true - self.iconNode.displaysAsynchronously = false - - self.animationNode = AnimatedStickerNode() - - let title: String - let biometricsActionText: String - - title = "Enter Passcode" - biometricsActionText = "Use Face ID" - - self.iconNode.image = UIImage(bundleImageName: "Settings/Wallet/PasscodeIcon") - - self.titleNode = ImmediateTextNode() - self.titleNode.displaysAsynchronously = false - self.titleNode.attributedText = NSAttributedString(string: title, font: Font.bold(32.0), textColor: self.presentationData.theme.list.itemPrimaryTextColor) - self.titleNode.maximumNumberOfLines = 0 - self.titleNode.textAlignment = .center - - self.biometricsActionTitleNode = ImmediateTextNode() - self.biometricsActionTitleNode.displaysAsynchronously = false - self.biometricsActionTitleNode.attributedText = NSAttributedString(string: biometricsActionText, font: Font.regular(16.0), textColor: self.presentationData.theme.list.itemAccentColor, paragraphAlignment: .center) - self.biometricsActionTitleNode.textAlignment = .center - - self.biometricsActionButtonNode = HighlightTrackingButtonNode() - - self.inputFieldNode = PasscodeInputFieldNode(color: self.presentationData.theme.list.itemPrimaryTextColor, accentColor: self.presentationData.theme.list.itemAccentColor, fieldType: .digits4, keyboardAppearance: self.presentationData.theme.rootController.keyboardColor.keyboardAppearance) - - super.init() - - self.backgroundColor = self.presentationData.theme.list.plainBackgroundColor - - self.addSubnode(self.iconNode) - self.addSubnode(self.animationNode) - self.addSubnode(self.titleNode) - self.addSubnode(self.biometricsActionTitleNode) - self.addSubnode(self.biometricsActionButtonNode) - self.addSubnode(self.inputFieldNode) - - self.biometricsActionButtonNode.highligthedChanged = { [weak self] highlighted in - guard let strongSelf = self else { - return - } - if highlighted { - strongSelf.biometricsActionTitleNode.layer.removeAnimation(forKey: "opacity") - strongSelf.biometricsActionTitleNode.alpha = 0.4 - } else { - strongSelf.biometricsActionTitleNode.alpha = 1.0 - strongSelf.biometricsActionTitleNode.layer.animateAlpha(from: 0.4, to: 1.0, duration: 0.2) - } - } - - self.biometricsActionButtonNode.addTarget(self, action: #selector(self.biometricsActionPressed), forControlEvents: .touchUpInside) - - self.inputFieldNode.complete = { [weak self] passcode in - if passcode == "1111" { - proceed() - } else { - self?.animateError() - } - } - } - - @objc private func biometricsActionPressed() { - self.requestBiometrics() - } - - func containerLayoutUpdated(layout: ContainerViewLayout, navigationHeight: CGFloat, transition: ContainedViewLayoutTransition) { - let sideInset: CGFloat = 32.0 - let buttonSideInset: CGFloat = 48.0 - let iconSpacing: CGFloat = 21.0 - let titleSpacing: CGFloat = 60.0 - let biometricsSpacing: CGFloat = 44.0 - let buttonHeight: CGFloat = 50.0 - let inputFieldHeight: CGFloat = 34.0 - - let iconSize = self.iconNode.image?.size ?? CGSize(width: 140.0, height: 140.0) - var iconOffset = CGPoint() - - let titleSize = self.titleNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height)) - let biometricsActionSize = self.biometricsActionTitleNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: layout.size.height)) - - let insets = layout.insets(options: [.input]) - let contentHeight = iconSize.height + iconSpacing + titleSize.height + titleSpacing + inputFieldHeight - let contentVerticalOrigin = floor((layout.size.height - contentHeight - iconSize.height / 2.0 - insets.bottom) / 2.0) - - let iconFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - iconSize.width) / 2.0), y: contentVerticalOrigin), size: iconSize).offsetBy(dx: iconOffset.x, dy: iconOffset.y) - transition.updateFrameAdditive(node: self.iconNode, frame: iconFrame) - self.animationNode.updateLayout(size: iconFrame.size) - transition.updateFrameAdditive(node: self.animationNode, frame: iconFrame) - let titleFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - titleSize.width) / 2.0), y: iconFrame.maxY + iconSpacing), size: titleSize) - transition.updateFrameAdditive(node: self.titleNode, frame: titleFrame) - - let inputFieldFrame = self.inputFieldNode.updateLayout(layout: layout, topOffset: titleFrame.maxY + titleSpacing, transition: transition) - transition.updateFrame(node: self.inputFieldNode, frame: CGRect(origin: CGPoint(), size: layout.size)) - - let minimalBottomInset: CGFloat = 60.0 - let bottomInset = layout.intrinsicInsets.bottom + max(minimalBottomInset, biometricsActionSize.height + biometricsSpacing * 2.0) - - if !biometricsActionSize.width.isZero { - let biometricsActionFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - biometricsActionSize.width) / 2.0), y: inputFieldFrame.maxY + floor((layout.size.height - insets.bottom - inputFieldFrame.maxY - biometricsActionSize.height) / 2.0)), size: biometricsActionSize) - transition.updateFrameAdditive(node: self.biometricsActionTitleNode, frame: biometricsActionFrame) - transition.updateFrame(node: self.biometricsActionButtonNode, frame: biometricsActionFrame.insetBy(dx: -10.0, dy: -10.0)) - } - } - - func activateInput() { - self.inputFieldNode.activateInput() - - UIAccessibility.post(notification: UIAccessibility.Notification.announcement, argument: self.titleNode.attributedText?.string) - } - - func animateError() { - self.inputFieldNode.reset() - self.inputFieldNode.layer.addShakeAnimation(amplitude: -30.0, duration: 0.5, count: 6, decay: true) - - self.hapticFeedback.error() - } -} -*/ diff --git a/submodules/WalletUI/Sources/WalletQrCodeItem.swift b/submodules/WalletUI/Sources/WalletQrCodeItem.swift deleted file mode 100644 index 3d1eb1423d..0000000000 --- a/submodules/WalletUI/Sources/WalletQrCodeItem.swift +++ /dev/null @@ -1,167 +0,0 @@ -import Foundation -import UIKit -import Display -import AsyncDisplayKit -import SwiftSignalKit -import QrCode - -class WalletQrCodeItem: ListViewItem, ItemListItem { - let theme: WalletTheme - let address: String - let sectionId: ItemListSectionId - let style: ItemListStyle - let action: (() -> Void)? - let longTapAction: (() -> Void)? - public let isAlwaysPlain: Bool = true - - init(theme: WalletTheme, address: String, sectionId: ItemListSectionId, style: ItemListStyle, action: @escaping () -> Void, longTapAction: @escaping () -> Void) { - self.theme = theme - self.address = address - self.sectionId = sectionId - self.style = style - self.action = action - self.longTapAction = longTapAction - } - - func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { - async { - let node = WalletQrCodeItemNode() - let (layout, apply) = node.asyncLayout()(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) - - node.contentSize = layout.contentSize - node.insets = layout.insets - - Queue.mainQueue().async { - completion(node, { - return (nil, { _ in apply() }) - }) - } - } - } - - func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { - Queue.mainQueue().async { - if let nodeValue = node() as? WalletQrCodeItemNode { - let makeLayout = nodeValue.asyncLayout() - - async { - let (layout, apply) = makeLayout(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) - Queue.mainQueue().async { - completion(layout, { _ in - apply() - }) - } - } - } - } - } -} - -class WalletQrCodeItemNode: ListViewItemNode { - private let imageNode: TransformImageNode - - private var item: WalletQrCodeItem? - - var tag: Any? { - return self.item?.tag - } - - init() { - self.imageNode = TransformImageNode() - - super.init(layerBacked: false, dynamicBounce: false) - - self.addSubnode(self.imageNode) - } - - override func didLoad() { - super.didLoad() - - let recognizer = TapLongTapOrDoubleTapGestureRecognizer(target: self, action: #selector(self.tapLongTapOrDoubleTapGesture(_:))) - recognizer.tapActionAtPoint = { [weak self] point in - return .waitForSingleTap - } - recognizer.highlight = { [weak self] point in - self?.imageNode.alpha = point != nil ? 0.4 : 1.0 - } - self.view.addGestureRecognizer(recognizer) - } - - @objc func tapLongTapOrDoubleTapGesture(_ recognizer: TapLongTapOrDoubleTapGestureRecognizer) { - switch recognizer.state { - case .ended: - if let (gesture, location) = recognizer.lastRecognizedGestureAndLocation { - switch gesture { - case .tap: - self.item?.action?() - case .longTap: - self.item?.longTapAction?() - default: - break - } - } - default: - break - } - } - - func asyncLayout() -> (_ item: WalletQrCodeItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, () -> Void) { - let makeImageLayout = self.imageNode.asyncLayout() - - let currentItem = self.item - - return { item, params, neighbors in - var updatedTheme: WalletTheme? - var updatedAddress: String? - - if currentItem?.theme !== item.theme { - updatedTheme = item.theme - } - - if currentItem?.address != item.address || updatedTheme != nil { - updatedAddress = item.address - } - - let contentSize: CGSize - let insets: UIEdgeInsets - let separatorHeight = UIScreenPixel - - let inset: CGFloat = 0.0 - var imageSize = CGSize(width: 128.0, height: 128.0) - let imageApply = makeImageLayout(TransformImageArguments(corners: ImageCorners(), imageSize: imageSize, boundingSize: imageSize, intrinsicInsets: UIEdgeInsets(), emptyColor: nil)) - - switch item.style { - case .plain: - contentSize = CGSize(width: params.width, height: imageSize.height + 30.0) - insets = itemListNeighborsPlainInsets(neighbors) - case .blocks: - contentSize = CGSize(width: params.width, height: imageSize.height + 30.0) - insets = itemListNeighborsGroupedInsets(neighbors) - } - - let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: insets) - - return (layout, { [weak self] in - if let strongSelf = self { - strongSelf.item = item - - if let updatedAddress = updatedAddress { - strongSelf.imageNode.setSignal(qrCode(string: updatedAddress, color: item.theme.list.itemPrimaryTextColor.withAlphaComponent(0.77), backgroundColor: item.theme.list.blocksBackgroundColor, icon: .custom(UIImage(bundleImageName: "Wallet/QrGem"))), attemptSynchronously: true) - } - - let _ = imageApply() - - strongSelf.imageNode.frame = CGRect(origin: CGPoint(x: (params.width - imageSize.width) / 2.0, y: 0.0), size: imageSize) - } - }) - } - } - - override func animateInsertion(_ currentTimestamp: Double, duration: Double, short: Bool) { - self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.4) - } - - override func animateRemoved(_ currentTimestamp: Double, duration: Double) { - self.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.15, removeOnCompletion: false) - } -} diff --git a/submodules/WalletUI/Sources/WalletQrViewScreen.swift b/submodules/WalletUI/Sources/WalletQrViewScreen.swift deleted file mode 100644 index 8a9bb17ed2..0000000000 --- a/submodules/WalletUI/Sources/WalletQrViewScreen.swift +++ /dev/null @@ -1,143 +0,0 @@ -import Foundation -import UIKit -import SwiftSignalKit -import AppBundle -import AsyncDisplayKit -import Display -import QrCode -import AnimatedStickerNode - -public final class WalletQrViewScreen: ViewController { - private let context: WalletContext - private let invoice: String - private var presentationData: WalletPresentationData - - private var previousScreenBrightness: CGFloat? - private var displayLinkAnimator: DisplayLinkAnimator? - private let idleTimerExtensionDisposable: Disposable - - public init(context: WalletContext, invoice: String) { - self.context = context - self.invoice = invoice - - self.presentationData = context.presentationData - - let defaultTheme = self.presentationData.theme.navigationBar - let navigationBarTheme = NavigationBarTheme(buttonColor: defaultTheme.buttonColor, disabledButtonColor: defaultTheme.disabledButtonColor, primaryTextColor: defaultTheme.primaryTextColor, backgroundColor: .clear, separatorColor: .clear, badgeBackgroundColor: defaultTheme.badgeBackgroundColor, badgeStrokeColor: defaultTheme.badgeStrokeColor, badgeTextColor: defaultTheme.badgeTextColor) - - self.idleTimerExtensionDisposable = context.idleTimerExtension() - - super.init(navigationBarPresentationData: NavigationBarPresentationData(theme: navigationBarTheme, strings: NavigationBarStrings(back: self.presentationData.strings.Wallet_Navigation_Back, close: self.presentationData.strings.Wallet_Navigation_Close))) - - self.supportedOrientations = ViewControllerSupportedOrientations(regularSize: .all, compactSize: .portrait) - self.navigationBar?.intrinsicCanTransitionInline = false - - self.title = self.presentationData.strings.Wallet_Qr_Title - - self.navigationItem.backBarButtonItem = UIBarButtonItem(title: self.presentationData.strings.Wallet_Navigation_Back, style: .plain, target: nil, action: nil) - - self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: navigationShareIcon(self.presentationData.theme), style: .plain, target: self, action: #selector(self.shareButtonPressed)) - } - - deinit { - self.idleTimerExtensionDisposable.dispose() - } - - required init(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override public func loadDisplayNode() { - self.displayNode = WalletQrViewScreenNode(context: self.context, presentationData: self.presentationData, message: self.invoice) - - self.displayNodeDidLoad() - } - - override public func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - - let screenBrightness = UIScreen.main.brightness - if screenBrightness < 0.85 { - self.previousScreenBrightness = screenBrightness - self.displayLinkAnimator = DisplayLinkAnimator(duration: 0.5, from: screenBrightness, to: 0.85, update: { value in - UIScreen.main.brightness = value - }, completion: { - self.displayLinkAnimator = nil - }) - } - } - - public override func viewDidDisappear(_ animated: Bool) { - super.viewDidDisappear(animated) - - let screenBrightness = UIScreen.main.brightness - if let previousScreenBrightness = self.previousScreenBrightness, screenBrightness > previousScreenBrightness { - self.displayLinkAnimator = DisplayLinkAnimator(duration: 0.2, from: screenBrightness, to: previousScreenBrightness, update: { value in - UIScreen.main.brightness = value - }, completion: { - self.displayLinkAnimator = nil - }) - } - } - - override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { - super.containerLayoutUpdated(layout, transition: transition) - - (self.displayNode as! WalletQrViewScreenNode).containerLayoutUpdated(layout: layout, navigationHeight: self.navigationHeight, transition: transition) - } - - @objc private func shareButtonPressed() { - //shareInvoiceQrCode(context: self.context, invoice: self.invoice) - } -} - -private final class WalletQrViewScreenNode: ViewControllerTracingNode { - private var presentationData: WalletPresentationData - private let invoice: String - - private let imageNode: TransformImageNode - private let iconNode: AnimatedStickerNode - - init(context: WalletContext, presentationData: WalletPresentationData, message: String) { - self.presentationData = presentationData - self.invoice = message - - self.imageNode = TransformImageNode() - self.imageNode.clipsToBounds = true - self.imageNode.cornerRadius = 14.0 - - self.iconNode = AnimatedStickerNode() - if let path = getAppBundle().path(forResource: "WalletIntroStatic", ofType: "tgs") { - self.iconNode.setup(source: AnimatedStickerNodeLocalFileSource(path: path), width: 240, height: 240, mode: .direct) - self.iconNode.visibility = true - } - - super.init() - - self.backgroundColor = self.presentationData.theme.list.plainBackgroundColor - - self.addSubnode(self.imageNode) - self.addSubnode(self.iconNode) - - self.imageNode.setSignal(qrCode(string: self.invoice, color: .black, backgroundColor: .white, icon: .cutout), attemptSynchronously: true) - } - - func containerLayoutUpdated(layout: ContainerViewLayout, navigationHeight: CGFloat, transition: ContainedViewLayoutTransition) { - let makeImageLayout = self.imageNode.asyncLayout() - - let imageSide = layout.size.width - 48.0 * 2.0 - var imageSize = CGSize(width: imageSide, height: imageSide) - let imageApply = makeImageLayout(TransformImageArguments(corners: ImageCorners(), imageSize: imageSize, boundingSize: imageSize, intrinsicInsets: UIEdgeInsets(), emptyColor: nil)) - - let _ = imageApply() - - let imageFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - imageSize.width) / 2.0), y: floor((layout.size.height - imageSize.height - layout.intrinsicInsets.bottom) / 2.0)), size: imageSize) - transition.updateFrame(node: self.imageNode, frame: imageFrame) - - let iconSide = floor(imageSide * 0.24) - let iconSize = CGSize(width: iconSide, height: iconSide) - self.iconNode.updateLayout(size: iconSize) - transition.updateBounds(node: self.iconNode, bounds: CGRect(origin: CGPoint(), size: iconSize)) - transition.updatePosition(node: self.iconNode, position: imageFrame.center.offsetBy(dx: 0.0, dy: -1.0)) - } -} diff --git a/submodules/WalletUI/Sources/WalletReceiveScreen.swift b/submodules/WalletUI/Sources/WalletReceiveScreen.swift index df06c98de3..a39308aac3 100644 --- a/submodules/WalletUI/Sources/WalletReceiveScreen.swift +++ b/submodules/WalletUI/Sources/WalletReceiveScreen.swift @@ -42,8 +42,6 @@ final class WalletReceiveScreen: ViewController { private let mode: WalletReceiveScreenMode private var presentationData: WalletPresentationData - private var previousScreenBrightness: CGFloat? - private var displayLinkAnimator: DisplayLinkAnimator? private let idleTimerExtensionDisposable: Disposable public init(context: WalletContext, mode: WalletReceiveScreenMode) { @@ -107,33 +105,6 @@ final class WalletReceiveScreen: ViewController { self.displayNodeDidLoad() } - override public func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - - let screenBrightness = UIScreen.main.brightness - if screenBrightness < 0.85 { - self.previousScreenBrightness = screenBrightness - self.displayLinkAnimator = DisplayLinkAnimator(duration: 0.5, from: screenBrightness, to: 0.85, update: { value in - UIScreen.main.brightness = value - }, completion: { - self.displayLinkAnimator = nil - }) - } - } - - public override func viewDidDisappear(_ animated: Bool) { - super.viewDidDisappear(animated) - - let screenBrightness = UIScreen.main.brightness - if let previousScreenBrightness = self.previousScreenBrightness, screenBrightness > previousScreenBrightness { - self.displayLinkAnimator = DisplayLinkAnimator(duration: 0.2, from: screenBrightness, to: previousScreenBrightness, update: { value in - UIScreen.main.brightness = value - }, completion: { - self.displayLinkAnimator = nil - }) - } - } - override func preferredContentSizeForLayout(_ layout: ContainerViewLayout) -> CGSize? { return CGSize(width: layout.size.width, height: min(640.0, layout.size.height)) } From 10f06f45fc0a06786b025969a68586152fdae5d5 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 22 Oct 2019 05:59:11 +0400 Subject: [PATCH 29/32] Fix proxy list items order --- .../Sources/Data and Storage/ProxyListSettingsController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift b/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift index 1ad4fb7e0e..fae4f16fb7 100644 --- a/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift +++ b/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift @@ -184,7 +184,7 @@ private enum ProxySettingsControllerEntry: ItemListNodeEntry { } case .shareProxyList: switch rhs { - case .enabled, .serversHeader, .addServer, .server, .useForCalls: + case .enabled, .serversHeader, .addServer, .server, .shareProxyList: return false default: return true From c0643cbd9774b71a62870ea974fedadbc61b06fe Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 22 Oct 2019 09:29:40 +0400 Subject: [PATCH 30/32] Wallet fixes --- .../ChatMessageSelectionInputPanelNode.swift | 5 - .../WalletUI/Sources/WalletInfoScreen.swift | 22 +- .../Sources/WalletReceiveScreen.swift | 18 +- .../Sources/WalletTransactionInfoScreen.swift | 210 ++++++++++++------ 4 files changed, 167 insertions(+), 88 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift index 352b2e8e15..7266c79424 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift @@ -148,9 +148,6 @@ final class ChatMessageSelectionInputPanelNode: ChatInputPanelNode { self.deleteButton.isHidden = !self.deleteButton.isEnabled self.reportButton.isHidden = !self.reportButton.isEnabled - - self.deleteButton.isHidden = false - self.deleteButton.isEnabled = true } else { self.deleteButton.isEnabled = false self.deleteButton.isHidden = true @@ -158,8 +155,6 @@ final class ChatMessageSelectionInputPanelNode: ChatInputPanelNode { self.reportButton.isHidden = true self.forwardButton.isEnabled = false self.shareButton.isEnabled = false - - self.deleteButton.isHidden = false } if self.deleteButton.isHidden && self.reportButton.isHidden { diff --git a/submodules/WalletUI/Sources/WalletInfoScreen.swift b/submodules/WalletUI/Sources/WalletInfoScreen.swift index 1582178fc8..7357a200be 100644 --- a/submodules/WalletUI/Sources/WalletInfoScreen.swift +++ b/submodules/WalletUI/Sources/WalletInfoScreen.swift @@ -135,24 +135,24 @@ public final class WalletInfoScreen: ViewController { } } -private final class WalletInfoBalanceNode: ASDisplayNode { +final class WalletInfoBalanceNode: ASDisplayNode { let dateTimeFormat: WalletPresentationDateTimeFormat let balanceIntegralTextNode: ImmediateTextNode let balanceFractionalTextNode: ImmediateTextNode let balanceIconNode: AnimatedStickerNode - var balance: String = " " { + var balance: (String, UIColor) = (" ", .white) { didSet { let integralString = NSMutableAttributedString() let fractionalString = NSMutableAttributedString() - if let range = self.balance.range(of: self.dateTimeFormat.decimalSeparator) { - let integralPart = String(self.balance[.. Void, receiveAction: @escaping () -> Void) { self.hasActions = hasActions - self.balanceNode = WalletInfoBalanceNode(theme: presentationData.theme, dateTimeFormat: presentationData.dateTimeFormat) + self.balanceNode = WalletInfoBalanceNode(dateTimeFormat: presentationData.dateTimeFormat) self.balanceSubtitleNode = ImmediateTextNode() self.balanceSubtitleNode.displaysAsynchronously = false @@ -856,7 +856,7 @@ private final class WalletInfoScreenNode: ViewControllerTracingNode { private func updateCombinedState(combinedState: CombinedWalletState?, isUpdated: Bool) { self.combinedState = combinedState if let combinedState = combinedState { - self.headerNode.balanceNode.balance = formatBalanceText(max(0, combinedState.walletState.balance), decimalSeparator: self.presentationData.dateTimeFormat.decimalSeparator) + self.headerNode.balanceNode.balance = (formatBalanceText(max(0, combinedState.walletState.balance), decimalSeparator: self.presentationData.dateTimeFormat.decimalSeparator), .white) self.headerNode.balance = max(0, combinedState.walletState.balance) if self.isReady, let (layout, navigationHeight) = self.validLayout { diff --git a/submodules/WalletUI/Sources/WalletReceiveScreen.swift b/submodules/WalletUI/Sources/WalletReceiveScreen.swift index a39308aac3..9b98be4e05 100644 --- a/submodules/WalletUI/Sources/WalletReceiveScreen.swift +++ b/submodules/WalletUI/Sources/WalletReceiveScreen.swift @@ -306,15 +306,25 @@ private final class WalletReceiveScreenNode: ViewControllerTracingNode { if case .receive = self.mode { url = url + "?" } - let count = min(url.count / 2, Int(ceil(min(layout.size.width, layout.size.height) * 0.0853))) + + let addressFont: UIFont + let countRatio: CGFloat + if layout.size.width == 320.0 { + addressFont = Font.monospace(16.0) + countRatio = 0.0999 + } else { + addressFont = Font.monospace(17.0) + countRatio = 0.0853 + } + let count = min(url.count / 2, Int(ceil(min(layout.size.width, layout.size.height) * countRatio))) let sliced = String(url.enumerated().map { $0 > 0 && $0 % count == 0 ? ["\n", $1] : [$1]}.joined()) - let addressFont = Font.monospace(17.0) self.urlTextNode.attributedText = NSAttributedString(string: sliced, font: addressFont, textColor: self.presentationData.theme.list.itemPrimaryTextColor, paragraphAlignment: .justified) } - let urlTextSize = self.urlTextNode.updateLayout(CGSize(width: layout.size.width - inset * 2.0, height: CGFloat.greatestFiniteMagnitude)) - transition.updateFrame(node: self.urlTextNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - urlTextSize.width) / 2.0), y: imageFrame.maxY + 25.0), size: urlTextSize)) + let addressInset: CGFloat = 12.0 + let urlTextSize = self.urlTextNode.updateLayout(CGSize(width: layout.size.width - addressInset * 2.0, height: CGFloat.greatestFiniteMagnitude)) + transition.updateFrame(node: self.urlTextNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - urlTextSize.width) / 2.0), y: imageFrame.maxY + 23.0), size: urlTextSize)) let buttonSideInset: CGFloat = 16.0 let bottomInset = insets.bottom + 10.0 diff --git a/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift b/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift index 504af8c5c4..d2649670a4 100644 --- a/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift +++ b/submodules/WalletUI/Sources/WalletTransactionInfoScreen.swift @@ -235,16 +235,35 @@ final class WalletTransactionInfoScreen: ViewController { private let measureTextNode = TextNode() override func preferredContentSizeForLayout(_ layout: ContainerViewLayout) -> CGSize? { + let insets = layout.insets(options: []) + + let minHeight: CGFloat = 424.0 + let maxHeight: CGFloat = min(596.0, layout.size.height) + let text = NSAttributedString(string: extractDescription(self.walletTransaction), font: Font.regular(17.0), textColor: .black) let makeTextLayout = TextNode.asyncLayout(self.measureTextNode) let (textLayout, _) = makeTextLayout(TextNodeLayoutArguments(attributedString: text, backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: layout.size.width - 36.0 * 2.0, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) - var textHeight = textLayout.size.height - if textHeight > 0.0 { - textHeight += 24.0 - } - let insets = layout.insets(options: []) - return CGSize(width: layout.size.width, height: min(min(720.0, layout.size.height), 428.0 + insets.bottom + textHeight)) + var resultHeight = minHeight + if textLayout.size.height > 0.0 { + let textHeight = textLayout.size.height + 24.0 + let minOverscroll: CGFloat = 42.0 + let maxOverscroll: CGFloat = 148.0 + + let contentHeight = minHeight + textHeight + let difference = contentHeight - maxHeight + if difference < 0.0 { + resultHeight = contentHeight + } else if difference > maxOverscroll { + resultHeight = maxHeight + } else if difference > minOverscroll { + resultHeight = maxHeight - (maxOverscroll - difference) + } else { + resultHeight = maxHeight - (minOverscroll - difference) + } + } + + return CGSize(width: layout.size.width, height: resultHeight + insets.bottom) } override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { @@ -258,7 +277,7 @@ final class WalletTransactionInfoScreen: ViewController { } } -private let integralFont = Font.medium(48.0) +private let amountFont = Font.medium(48.0) private let fractionalFont = Font.medium(24.0) private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate { @@ -266,29 +285,25 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, private var presentationData: WalletPresentationData private let walletTransaction: WalletInfoTransaction private let incoming: Bool - + private let titleNode: ImmediateTextNode private let timeNode: ImmediateTextNode - private let navigationBackgroundNode: ASDisplayNode private let navigationSeparatorNode: ASDisplayNode - private let scrollNode: ASScrollNode - private let amountNode: ImmediateTextNode - private let iconNode: AnimatedStickerNode + private let amountNode: WalletInfoBalanceNode private let activateArea: AccessibilityAreaNode private let feesNode: ImmediateTextNode private let feesInfoIconNode: ASImageNode private let feesButtonNode: ASButtonNode - private let commentBackgroundNode: ASImageNode private let commentTextNode: ImmediateTextNode private let commentSeparatorNode: ASDisplayNode - private let addressTextNode: ImmediateTextNode - private let buttonNode: SolidRoundedButtonNode + private var validLayout: (ContainerViewLayout, CGFloat)? + var send: ((String) -> Void)? var displayFeesTooltip: ((ASDisplayNode, CGRect) -> Void)? var displayCopyContextMenu: ((ASDisplayNode, CGRect, String) -> Void)? @@ -311,19 +326,10 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, self.navigationBackgroundNode.alpha = 0.0 self.navigationSeparatorNode = ASDisplayNode() self.navigationSeparatorNode.backgroundColor = self.presentationData.theme.navigationBar.separatorColor - self.navigationSeparatorNode.alpha = 0.0 self.scrollNode = ASScrollNode() - self.amountNode = ImmediateTextNode() - self.amountNode.textAlignment = .center - self.amountNode.maximumNumberOfLines = 1 - - self.iconNode = AnimatedStickerNode() - if let path = getAppBundle().path(forResource: "WalletIntroStatic", ofType: "tgs") { - self.iconNode.setup(source: AnimatedStickerNodeLocalFileSource(path: path), width: 120, height: 120, mode: .direct) - self.iconNode.visibility = true - } + self.amountNode = WalletInfoBalanceNode(dateTimeFormat: presentationData.dateTimeFormat) self.feesNode = ImmediateTextNode() self.feesNode.textAlignment = .center @@ -374,18 +380,17 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, self.backgroundColor = self.presentationData.theme.list.plainBackgroundColor - self.addSubnode(self.navigationBackgroundNode) - self.addSubnode(self.navigationSeparatorNode) - self.addSubnode(self.titleNode) - self.addSubnode(self.timeNode) - self.addSubnode(self.amountNode) - self.addSubnode(self.iconNode) + self.addSubnode(self.scrollNode) self.addSubnode(self.feesNode) self.addSubnode(self.feesInfoIconNode) self.addSubnode(self.feesButtonNode) - self.addSubnode(self.scrollNode) self.scrollNode.addSubnode(self.commentBackgroundNode) self.scrollNode.addSubnode(self.commentTextNode) + self.addSubnode(self.navigationBackgroundNode) + self.navigationBackgroundNode.addSubnode(self.navigationSeparatorNode) + self.addSubnode(self.titleNode) + self.addSubnode(self.timeNode) + self.addSubnode(self.amountNode) self.addSubnode(self.commentSeparatorNode) self.addSubnode(self.addressTextNode) self.addSubnode(self.buttonNode) @@ -399,7 +404,7 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, self.titleNode.attributedText = NSAttributedString(string: self.presentationData.strings.Wallet_TransactionInfo_Title, font: titleFont, textColor: textColor) self.timeNode.attributedText = NSAttributedString(string: stringForFullDate(timestamp: Int32(clamping: timestamp), strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat), font: subtitleFont, textColor: seccondaryTextColor) - + let amountString: String let amountColor: UIColor if transferredValue <= 0 { @@ -409,8 +414,8 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, amountString = "\(formatBalanceText(transferredValue, decimalSeparator: self.presentationData.dateTimeFormat.decimalSeparator))" amountColor = self.presentationData.theme.info.incomingFundsTitleColor } - self.amountNode.attributedText = amountAttributedString(amountString, integralFont: integralFont, fractionalFont: fractionalFont, color: amountColor) - + self.amountNode.balance = (amountString, amountColor) + var feesString: String = "" if case let .completed(transaction) = walletTransaction { if transaction.storageFee != 0 { @@ -455,6 +460,10 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, override func didLoad() { super.didLoad() + self.scrollNode.view.delegate = self + self.scrollNode.view.alwaysBounceVertical = true + self.scrollNode.view.showsVerticalScrollIndicator = false + let commentGestureRecognizer = TapLongTapOrDoubleTapGestureRecognizer(target: self, action: #selector(self.tapLongTapOrDoubleTapCommentGesture(_:))) commentGestureRecognizer.tapActionAtPoint = { [weak self] point in return .waitForSingleTap @@ -476,7 +485,7 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, case .longTap: let description = extractDescription(self.walletTransaction) if !description.isEmpty { - self.displayCopyContextMenu?(self, self.commentBackgroundNode.frame, description) + self.displayCopyContextMenu?(self, self.commentBackgroundNode.convert(self.commentBackgroundNode.bounds, to: self), description) } default: break @@ -500,7 +509,7 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, } if let address = singleAddress { - self.displayCopyContextMenu?(self, self.addressTextNode.frame, address) + self.displayCopyContextMenu?(self, self.addressTextNode.convert(self.addressTextNode.bounds, to: self), address) } default: break @@ -516,51 +525,107 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, } func scrollViewDidScroll(_ scrollView: UIScrollView) { - self.updateTitle() + self.updateTitle(transition: .immediate) } - private func updateTitle() { + private func updateTitle(transition: ContainedViewLayoutTransition) { + guard let (layout, navigationHeight) = self.validLayout else { + return + } + let width = layout.size.width + let sideInset: CGFloat = 16.0 + + let minOffset = navigationHeight + let maxOffset: CGFloat = 200.0 + + let nominalFeesHeight: CGFloat = 42.0 + let minHeaderOffset = minOffset + let maxHeaderOffset = (minOffset + maxOffset) / 2.0 + let maxHeaderPositionOffset = maxOffset - nominalFeesHeight + + let offset: CGFloat = max(0.0, maxOffset - self.scrollNode.view.contentOffset.y) + let effectiveOffset = max(offset, navigationHeight) + + let minFeesOffset = maxOffset - nominalFeesHeight + let maxFeesOffset = maxOffset + let feesTransition: CGFloat = max(0.0, min(1.0, (effectiveOffset - minFeesOffset) / (maxFeesOffset - minFeesOffset))) + let feesAlpha: CGFloat = feesTransition + transition.updateAlpha(node: self.feesNode, alpha: feesAlpha) + + let headerScaleTransition: CGFloat = max(0.0, min(1.0, (effectiveOffset - minHeaderOffset) / (maxHeaderOffset - minHeaderOffset))) + let balanceHeight = self.amountNode.update(width: width, scaleTransition: headerScaleTransition, transition: transition) + let balanceSize = CGSize(width: width, height: balanceHeight) + + let maxHeaderScale: CGFloat = min(1.0, (width - 40.0) / balanceSize.width) + let minHeaderScale: CGFloat = min(0.435, (width - 80.0 * 2.0) / balanceSize.width) + + let minHeaderHeight: CGFloat = balanceSize.height + + let minHeaderY = floor((navigationHeight - minHeaderHeight) / 2.0) + let maxHeaderY: CGFloat = 90.0 + let headerPositionTransition: CGFloat = min(1.0, max(0.0, (effectiveOffset - minHeaderOffset) / (maxHeaderPositionOffset - minHeaderOffset))) + let headerY = headerPositionTransition * maxHeaderY + (1.0 - headerPositionTransition) * minHeaderY + let headerScale = headerScaleTransition * maxHeaderScale + (1.0 - headerScaleTransition) * minHeaderScale + + let balanceFrame = CGRect(origin: CGPoint(x: 0.0, y: headerY), size: balanceSize) + transition.updateFrame(node: self.amountNode, frame: balanceFrame) + transition.updateSublayerTransformScale(node: self.amountNode, scale: headerScale) + + let feesSize = self.feesNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: CGFloat.greatestFiniteMagnitude)) + let feesFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - feesSize.width) / 2.0), y: headerY + 64.0), size: feesSize) + transition.updateFrame(node: self.feesNode, frame: feesFrame) + transition.updateFrame(node: self.feesButtonNode, frame: feesFrame) + self.feesButtonNode.isUserInteractionEnabled = feesAlpha > 1.0 - CGFloat.ulpOfOne + + let minTitleOffset = minOffset + let maxTitleOffset = (minOffset + maxOffset) / 2.0 + let titleTransition: CGFloat = max(0.0, min(1.0, (effectiveOffset - minTitleOffset) / (maxTitleOffset - minTitleOffset))) + let titleAlpha: CGFloat = titleTransition * titleTransition + transition.updateAlpha(node: self.titleNode, alpha: titleAlpha) + transition.updateAlpha(node: self.timeNode, alpha: titleAlpha) + + let minTitleY: CGFloat = -44.0 + let maxTitleY: CGFloat = 10.0 + let titleY: CGFloat = titleTransition * maxTitleY + (1.0 - titleTransition) * minTitleY + let titleSize = self.titleNode.updateLayout(CGSize(width: width - sideInset * 2.0, height: CGFloat.greatestFiniteMagnitude)) + let titleFrame = CGRect(origin: CGPoint(x: floor((width - titleSize.width) / 2.0), y: titleY), size: titleSize) + transition.updateFrame(node: self.titleNode, frame: titleFrame) + let subtitleSize = self.timeNode.updateLayout(CGSize(width: width - sideInset * 2.0, height: CGFloat.greatestFiniteMagnitude)) + let subtitleFrame = CGRect(origin: CGPoint(x: floor((width - subtitleSize.width) / 2.0), y: titleFrame.maxY + 1.0), size: subtitleSize) + transition.updateFrame(node: self.timeNode, frame: subtitleFrame) + + let alphaTransition: ContainedViewLayoutTransition = .animated(duration: 0.2, curve: .easeInOut) + let navigationAlpha: CGFloat = (headerScaleTransition <= 0.0 + CGFloat.ulpOfOne) ? 1.0 : 0.0 + if self.navigationBackgroundNode.alpha != navigationAlpha { + alphaTransition.updateAlpha(node: self.navigationBackgroundNode, alpha: navigationAlpha, beginWithCurrentState: true) + } + + let separatorAlpha: CGFloat = self.scrollNode.view.contentOffset.y + self.scrollNode.frame.height >= self.scrollNode.view.contentSize.height ? 0.0 : 1.0 + if self.commentSeparatorNode.alpha != separatorAlpha { + alphaTransition.updateAlpha(node: self.commentSeparatorNode, alpha: separatorAlpha, beginWithCurrentState: true) + } } func containerLayoutUpdated(layout: ContainerViewLayout, navigationHeight: CGFloat, transition: ContainedViewLayoutTransition) { + self.validLayout = (layout, navigationHeight) + var insets = layout.insets(options: []) insets.top += navigationHeight - let inset: CGFloat = 22.0 - - let titleSize = self.titleNode.updateLayout(CGSize(width: layout.size.width - inset * 2.0, height: CGFloat.greatestFiniteMagnitude)) - let titleFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - titleSize.width) / 2.0), y: 10.0), size: titleSize) - transition.updateFrame(node: self.titleNode, frame: titleFrame) - - let subtitleSize = self.timeNode.updateLayout(CGSize(width: layout.size.width - inset * 2.0, height: CGFloat.greatestFiniteMagnitude)) - let subtitleFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - subtitleSize.width) / 2.0), y: titleFrame.maxY + 1.0), size: subtitleSize) - transition.updateFrame(node: self.timeNode, frame: subtitleFrame) - - let amountSize = self.amountNode.updateLayout(CGSize(width: layout.size.width - inset * 2.0, height: CGFloat.greatestFiniteMagnitude)) - let amountFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - amountSize.width) / 2.0) + 18.0, y: 90.0), size: amountSize) - transition.updateFrame(node: self.amountNode, frame: amountFrame) - - let iconSize = CGSize(width: 50.0, height: 50.0) - let iconFrame = CGRect(origin: CGPoint(x: amountFrame.minX - iconSize.width, y: amountFrame.minY), size: iconSize) - self.iconNode.updateLayout(size: iconFrame.size) - self.iconNode.frame = iconFrame - - let feesSize = self.feesNode.updateLayout(CGSize(width: layout.size.width - inset * 2.0, height: CGFloat.greatestFiniteMagnitude)) - let feesFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - feesSize.width) / 2.0), y: amountFrame.maxY + 8.0), size: feesSize) - transition.updateFrame(node: self.feesNode, frame: feesFrame) - transition.updateFrame(node: self.feesButtonNode, frame: feesFrame) - + let sideInset: CGFloat = 22.0 + + self.updateTitle(transition: transition) + let buttonSideInset: CGFloat = 16.0 let bottomInset = insets.bottom + 10.0 let buttonWidth = layout.size.width - buttonSideInset * 2.0 let buttonHeight: CGFloat = 50.0 - let buttonFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - buttonWidth) / 2.0), y: layout.size.height - bottomInset - buttonHeight), size: CGSize(width: buttonWidth, height: buttonHeight)) transition.updateFrame(node: self.buttonNode, frame: buttonFrame) self.buttonNode.updateLayout(width: buttonFrame.width, transition: transition) - let addressSize = self.addressTextNode.updateLayout(CGSize(width: layout.size.width - inset * 2.0, height: CGFloat.greatestFiniteMagnitude)) - let addressFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - addressSize.width) / 2.0), y: buttonFrame.minY - addressSize.height - 38.0), size: addressSize) + let addressSize = self.addressTextNode.updateLayout(CGSize(width: layout.size.width - sideInset * 2.0, height: CGFloat.greatestFiniteMagnitude)) + let addressFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - addressSize.width) / 2.0), y: buttonFrame.minY - addressSize.height - 34.0), size: addressSize) transition.updateFrame(node: self.addressTextNode, frame: addressFrame) transition.updateFrame(node: self.navigationBackgroundNode, frame: CGRect(x: 0.0, y: 0.0, width: layout.size.width, height: navigationHeight)) @@ -573,14 +638,23 @@ private final class WalletTransactionInfoScreenNode: ViewControllerTracingNode, transition.updateFrame(node: self.scrollNode, frame: scrollFrame) let commentSize = self.commentTextNode.updateLayout(CGSize(width: layout.size.width - 36.0 * 2.0, height: CGFloat.greatestFiniteMagnitude)) - let commentFrame = CGRect(origin: CGPoint(x: floor((layout.size.width - commentSize.width) / 2.0), y: amountFrame.maxY + 84.0 - navigationHeight), size: CGSize(width: commentSize.width, height: commentSize.height)) + let commentOrigin = CGPoint(x: floor((layout.size.width - commentSize.width) / 2.0), y: 175.0) + let commentFrame = CGRect(origin: commentOrigin, size: commentSize) transition.updateFrame(node: self.commentTextNode, frame: commentFrame) - + var commentBackgroundFrame = commentSize.width > 0.0 ? commentFrame.insetBy(dx: -11.0, dy: -7.0) : CGRect() commentBackgroundFrame.size.width += 7.0 if self.incoming { commentBackgroundFrame.origin.x -= 7.0 } transition.updateFrame(node: self.commentBackgroundNode, frame: commentBackgroundFrame) + + let contentHeight = commentOrigin.y + commentBackgroundFrame.height + self.scrollNode.view.contentSize = CGSize(width: layout.size.width, height: contentHeight) + + let isScrollEnabled = contentHeight - scrollFrame.height > 20.0 + self.scrollNode.view.isScrollEnabled = isScrollEnabled + self.scrollNode.clipsToBounds = isScrollEnabled + self.commentSeparatorNode.isHidden = !isScrollEnabled } } From 793149ad67b49d2f67af5fcfd92e8169fb3546fd Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 22 Oct 2019 09:40:44 +0400 Subject: [PATCH 31/32] Fix tg:// acceptance in text link edit --- submodules/UrlEscaping/Sources/UrlEscaping.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/UrlEscaping/Sources/UrlEscaping.swift b/submodules/UrlEscaping/Sources/UrlEscaping.swift index 84d4688fdf..d0dd0a9f00 100644 --- a/submodules/UrlEscaping/Sources/UrlEscaping.swift +++ b/submodules/UrlEscaping/Sources/UrlEscaping.swift @@ -51,7 +51,7 @@ public func isValidUrl(_ url: String, validSchemes: [String: Bool] = ["http": tr public func explicitUrl(_ url: String) -> String { var url = url - if !url.hasPrefix("http") && !url.hasPrefix("https") { + if !url.hasPrefix("http") && !url.hasPrefix("https") && url.range(of: "://") == nil { url = "https://\(url)" } return url From 77a592a05c9e599c3dcedb59c1fadc70699bd2e6 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 22 Oct 2019 17:54:14 +0400 Subject: [PATCH 32/32] Fix input focus change after QR scanning --- submodules/WalletUI/Sources/WalletSendScreen.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/WalletUI/Sources/WalletSendScreen.swift b/submodules/WalletUI/Sources/WalletSendScreen.swift index 69e4996518..b46dc0152a 100644 --- a/submodules/WalletUI/Sources/WalletSendScreen.swift +++ b/submodules/WalletUI/Sources/WalletSendScreen.swift @@ -336,9 +336,9 @@ public func walletSendScreen(context: WalletContext, randomId: Int64, walletInfo popImpl?() if let updatedState = updatedState { if updatedState.amount.isEmpty { - selectNextInputItemImpl?(WalletSendScreenEntryTag.address) - } else if updatedState.comment.isEmpty { selectNextInputItemImpl?(WalletSendScreenEntryTag.amount) + } else if updatedState.comment.isEmpty { + selectNextInputItemImpl?(WalletSendScreenEntryTag.comment) } } }))