From 3515fee9af906864dcedc6ee99e6826de950fa18 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 7 Aug 2020 18:47:32 +0300 Subject: [PATCH] Video call UI improvements --- .../Telegram-iOS/en.lproj/Localizable.strings | 12 + .../Sources/AccountContext.swift | 10 +- .../Sources/ContactSelectionController.swift | 2 +- .../Sources/PresentationCallManager.swift | 13 +- .../CallListUI/Sources/CallListCallItem.swift | 11 +- .../Sources/CallListController.swift | 11 +- .../Sources/ContactListNode.swift | 55 +- .../Sources/ContactsController.swift | 2 +- .../Sources/ContactsPeerItem.swift | 112 +- submodules/Display/Source/GenerateImage.swift | 23 + .../Sources/DeviceContactInfoController.swift | 2 +- .../Sources/GroupInfoController.swift | 2 +- .../Sources/ItemListCallListItem.swift | 34 +- .../Sources/AlertTheme.swift | 4 + .../Sources/ManagedAudioSession.swift | 22 +- submodules/TelegramCallsUI/BUILD | 1 + .../Sources/CallController.swift | 31 +- .../Sources/CallControllerButton.swift | 21 +- .../Sources/CallControllerButtonsNode.swift | 129 +- .../CallControllerKeyPreviewNode.swift | 2 +- .../Sources/CallControllerNode.swift | 198 +- .../Sources/CallControllerToastNode.swift | 248 +- .../Sources/CallKitIntegration.swift | 2 +- .../Sources/LegacyCallControllerNode.swift | 5 +- .../Sources/PresentationCall.swift | 45 +- .../Sources/AccountViewTracker.swift | 10 +- .../Sources/PresentationStrings.swift | 7193 +++++++++-------- .../Resources/PresentationResourceKey.swift | 7 + .../PresentationResourcesCallList.swift | 6 + .../Resources/PresentationResourcesChat.swift | 12 + .../PresentationResourcesItemList.swift | 12 + .../OutgoingIcon.imageset/Contents.json | 10 +- .../OutgoingIcon.imageset/ic_outvoice.pdf | Bin 0 -> 4572 bytes .../OutgoingVideoIcon.imageset/Contents.json | 12 + .../ic_outvideo (2).pdf | Bin 0 -> 4612 bytes .../CallAirpodsButton.imageset/Contents.json | 12 + .../ic_call_audioairpods.pdf | Bin 0 -> 4775 bytes .../Contents.json | 12 + .../ic_call_audioairpodspro.pdf | Bin 0 -> 5057 bytes .../CallBluetoothIcon@2x.png | Bin 618 -> 0 bytes .../CallBluetoothIcon@3x.png | Bin 1022 -> 0 bytes .../Contents.json | 20 +- .../ic_call_audiobt.pdf | Bin 0 -> 4412 bytes .../CallCameraHDButton.imageset/Contents.json | 12 + .../ic_call_camerahd.pdf | Bin 0 -> 4552 bytes .../Call/CallDisableHD.imageset/Contents.json | 12 + .../CallDisableHD.imageset/ic_menu_hdoff.pdf | Bin 0 -> 4373 bytes .../Call/CallEnableHD.imageset/Contents.json | 12 + .../CallEnableHD.imageset/ic_menu_hdon.pdf | Bin 0 -> 4193 bytes .../CallToastBattery.imageset/Contents.json | 12 + .../ic_call_batteryislow.pdf | Bin 0 -> 3994 bytes .../CallToastCamera.imageset/Contents.json | 12 + .../ic_call_cameraoff.pdf} | Bin 4463 -> 4248 bytes .../Contents.json | 12 + .../ic_call_microphoneoff.pdf | Bin 0 -> 4439 bytes .../VideoCallButton.imageset/Contents.json | 12 + .../ic_videocallchat.pdf | Bin 0 -> 4347 bytes .../Resources/PresentationStrings.mapping | Bin 154363 -> 154644 bytes .../TelegramUI/Sources/ChatController.swift | 2 +- .../ChatMessageCallBubbleContentNode.swift | 12 +- .../Sources/ComposeController.swift | 4 +- .../ContactMultiselectionControllerNode.swift | 4 +- .../Sources/ContactSelectionController.swift | 18 +- .../ContactSelectionControllerNode.swift | 8 +- .../Sources/PeerInfo/PeerInfoScreen.swift | 2 +- .../Sources/PeerSelectionControllerNode.swift | 2 +- .../Sources/OngoingCallContext.swift | 25 +- .../TgVoip/OngoingCallThreadLocalContext.h | 1 + .../Sources/OngoingCallThreadLocalContext.mm | 6 + .../TgVoip/OngoingCallThreadLocalContext.h | 7 +- .../Sources/OngoingCallThreadLocalContext.mm | 30 +- submodules/TgVoipWebrtc/tgcalls | 2 +- .../TooltipUI/Sources/TooltipScreen.swift | 112 +- 73 files changed, 4787 insertions(+), 3835 deletions(-) create mode 100644 submodules/TelegramUI/Images.xcassets/Call List/OutgoingIcon.imageset/ic_outvoice.pdf create mode 100644 submodules/TelegramUI/Images.xcassets/Call List/OutgoingVideoIcon.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Call List/OutgoingVideoIcon.imageset/ic_outvideo (2).pdf create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallAirpodsButton.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallAirpodsButton.imageset/ic_call_audioairpods.pdf create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallAirpodsProButton.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallAirpodsProButton.imageset/ic_call_audioairpodspro.pdf delete mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/CallBluetoothIcon@2x.png delete mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/CallBluetoothIcon@3x.png create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/ic_call_audiobt.pdf create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallCameraHDButton.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallCameraHDButton.imageset/ic_call_camerahd.pdf create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallDisableHD.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallDisableHD.imageset/ic_menu_hdoff.pdf create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallEnableHD.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallEnableHD.imageset/ic_menu_hdon.pdf create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallToastBattery.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallToastBattery.imageset/ic_call_batteryislow.pdf create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallToastCamera.imageset/Contents.json rename submodules/TelegramUI/Images.xcassets/{Call List/OutgoingIcon.imageset/ic_outgoingcall.pdf => Call/CallToastCamera.imageset/ic_call_cameraoff.pdf} (73%) create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallToastMicrophone.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Call/CallToastMicrophone.imageset/ic_call_microphoneoff.pdf create mode 100644 submodules/TelegramUI/Images.xcassets/Chat/Info/VideoCallButton.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Chat/Info/VideoCallButton.imageset/ic_videocallchat.pdf diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index 1a6a18b422..2f88caa699 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -5718,3 +5718,15 @@ Any member of this group will be able to see messages in the channel."; "Stats.MessageOverview" = "Overview"; "Stats.MessageInteractionsTitle" = "Interactions"; "Stats.MessagePublicForwardsTitle" = "Public Shares"; + +"Call.CameraTooltip" = "Tap here to turn on your camera"; +"Call.CameraConfirmationText" = "Switch to video call?"; +"Call.CameraConfirmationConfirm" = "Switch"; + +"Call.YourMicrophoneOff" = "Your microphone is off"; +"Call.MicrophoneOff" = "%@'s microphone is off"; +"Call.CameraOff" = "%@'s camera is off"; +"Call.BatteryLow" = "%@'s battery level is low"; + +"Call.Audio" = "audio"; +"Call.AudioRouteMute" = "Mute Yourself"; diff --git a/submodules/AccountContext/Sources/AccountContext.swift b/submodules/AccountContext/Sources/AccountContext.swift index f163129c60..ed6306da0d 100644 --- a/submodules/AccountContext/Sources/AccountContext.swift +++ b/submodules/AccountContext/Sources/AccountContext.swift @@ -394,6 +394,12 @@ public enum ContactListPeerId: Hashable { case deviceContact(DeviceContactStableId) } +public enum ContactListAction: Equatable { + case generic + case voiceCall + case videoCall +} + public enum ContactListPeer: Equatable { case peer(peer: Peer, isGlobal: Bool, participantCount: Int32?) case deviceContact(DeviceContactStableId, DeviceContactBasicData) @@ -440,14 +446,16 @@ public final class ContactSelectionControllerParams { public let title: (PresentationStrings) -> String public let options: [ContactListAdditionalOption] public let displayDeviceContacts: Bool + public let displayCallIcons: Bool public let confirmation: (ContactListPeer) -> Signal - public init(context: AccountContext, autoDismiss: Bool = true, title: @escaping (PresentationStrings) -> String, options: [ContactListAdditionalOption] = [], displayDeviceContacts: Bool = false, confirmation: @escaping (ContactListPeer) -> Signal = { _ in .single(true) }) { + public init(context: AccountContext, autoDismiss: Bool = true, title: @escaping (PresentationStrings) -> String, options: [ContactListAdditionalOption] = [], displayDeviceContacts: Bool = false, displayCallIcons: Bool = false, confirmation: @escaping (ContactListPeer) -> Signal = { _ in .single(true) }) { self.context = context self.autoDismiss = autoDismiss self.title = title self.options = options self.displayDeviceContacts = displayDeviceContacts + self.displayCallIcons = displayCallIcons self.confirmation = confirmation } } diff --git a/submodules/AccountContext/Sources/ContactSelectionController.swift b/submodules/AccountContext/Sources/ContactSelectionController.swift index f480206f36..b99e4c7252 100644 --- a/submodules/AccountContext/Sources/ContactSelectionController.swift +++ b/submodules/AccountContext/Sources/ContactSelectionController.swift @@ -3,7 +3,7 @@ import Display import SwiftSignalKit public protocol ContactSelectionController: ViewController { - var result: Signal { get } + var result: Signal<(ContactListPeer, ContactListAction)?, NoError> { get } var displayProgress: Bool { get set } var dismissed: (() -> Void)? { get set } diff --git a/submodules/AccountContext/Sources/PresentationCallManager.swift b/submodules/AccountContext/Sources/PresentationCallManager.swift index a011a447be..5480b0d839 100644 --- a/submodules/AccountContext/Sources/PresentationCallManager.swift +++ b/submodules/AccountContext/Sources/PresentationCallManager.swift @@ -57,14 +57,21 @@ public struct PresentationCallState: Equatable { case active } + public enum RemoteBatteryLevel: Equatable { + case normal + case low + } + public var state: State public var videoState: VideoState public var remoteVideoState: RemoteVideoState + public var remoteBatteryLevel: RemoteBatteryLevel - public init(state: State, videoState: VideoState, remoteVideoState: RemoteVideoState) { + public init(state: State, videoState: VideoState, remoteVideoState: RemoteVideoState, remoteBatteryLevel: RemoteBatteryLevel) { self.state = state self.videoState = videoState self.remoteVideoState = remoteVideoState + self.remoteBatteryLevel = remoteBatteryLevel } } @@ -77,7 +84,7 @@ public final class PresentationCallVideoView { } public let view: UIView - public let setOnFirstFrameReceived: ((() -> Void)?) -> Void + public let setOnFirstFrameReceived: (((Float) -> Void)?) -> Void public let getOrientation: () -> Orientation public let setOnOrientationUpdated: (((Orientation) -> Void)?) -> Void @@ -85,7 +92,7 @@ public final class PresentationCallVideoView { public init( view: UIView, - setOnFirstFrameReceived: @escaping ((() -> Void)?) -> Void, + setOnFirstFrameReceived: @escaping (((Float) -> Void)?) -> Void, getOrientation: @escaping () -> Orientation, setOnOrientationUpdated: @escaping (((Orientation) -> Void)?) -> Void, setOnIsMirroredUpdated: @escaping (((Bool) -> Void)?) -> Void diff --git a/submodules/CallListUI/Sources/CallListCallItem.swift b/submodules/CallListUI/Sources/CallListCallItem.swift index a5ef89767c..3217d1d572 100644 --- a/submodules/CallListUI/Sources/CallListCallItem.swift +++ b/submodules/CallListUI/Sources/CallListCallItem.swift @@ -368,6 +368,7 @@ class CallListCallItemNode: ItemListRevealOptionsItemNode { var hasMissed = false var hasIncoming = false var hasOutgoing = false + var isVideo = false var hadDuration = false var callDuration: Int32? @@ -375,7 +376,8 @@ class CallListCallItemNode: ItemListRevealOptionsItemNode { for message in item.messages { inner: for media in message.media { if let action = media as? TelegramMediaAction { - if case let .phoneCall(_, discardReason, duration, _) = action.action { + if case let .phoneCall(_, discardReason, duration, video) = action.action { + isVideo = video if message.flags.contains(.Incoming) { hasIncoming = true @@ -459,9 +461,12 @@ class CallListCallItemNode: ItemListRevealOptionsItemNode { let nodeLayout = ListViewItemNodeLayout(contentSize: CGSize(width: params.width, height: titleLayout.size.height + titleSpacing + statusLayout.size.height + verticalInset * 2.0), insets: UIEdgeInsets(top: firstWithHeader ? 29.0 : 0.0, left: 0.0, bottom: 0.0, right: 0.0)) - let outgoingIcon = PresentationResourcesCallList.outgoingIcon(item.presentationData.theme) + let outgoingVoiceIcon = PresentationResourcesCallList.outgoingIcon(item.presentationData.theme) + let outgoingVideoIcon = PresentationResourcesCallList.outgoingVideoIcon(item.presentationData.theme) let infoIcon = PresentationResourcesCallList.infoButton(item.presentationData.theme) + let outgoingIcon = isVideo ? outgoingVideoIcon : outgoingVoiceIcon + let contentSize = nodeLayout.contentSize return (nodeLayout, { [weak self] synchronousLoads in @@ -582,7 +587,7 @@ class CallListCallItemNode: ItemListRevealOptionsItemNode { if strongSelf.typeIconNode.image !== outgoingIcon { strongSelf.typeIconNode.image = outgoingIcon } - transition.updateFrameAdditive(node: strongSelf.typeIconNode, frame: CGRect(origin: CGPoint(x: revealOffset + leftInset - 81.0, y: floor((nodeLayout.contentSize.height - outgoingIcon.size.height) / 2.0)), size: outgoingIcon.size)) + transition.updateFrameAdditive(node: strongSelf.typeIconNode, frame: CGRect(origin: CGPoint(x: revealOffset + leftInset - 79.0, y: floor((nodeLayout.contentSize.height - outgoingIcon.size.height) / 2.0)), size: outgoingIcon.size)) } strongSelf.typeIconNode.isHidden = !hasOutgoing diff --git a/submodules/CallListUI/Sources/CallListController.swift b/submodules/CallListUI/Sources/CallListController.swift index 1135392f4c..790d68f497 100644 --- a/submodules/CallListUI/Sources/CallListController.swift +++ b/submodules/CallListUI/Sources/CallListController.swift @@ -11,7 +11,6 @@ import ItemListUI import PresentationDataUtils import AccountContext import AlertUI -import PresentationDataUtils import AppBundle import LocalizedPeerData @@ -201,18 +200,18 @@ public final class CallListController: ViewController { } @objc func callPressed() { - self.beginCallImpl(isVideo: false) + self.beginCallImpl() } - private func beginCallImpl(isVideo: Bool) { - let controller = self.context.sharedContext.makeContactSelectionController(ContactSelectionControllerParams(context: self.context, title: { $0.Calls_NewCall })) + private func beginCallImpl() { + let controller = self.context.sharedContext.makeContactSelectionController(ContactSelectionControllerParams(context: self.context, title: { $0.Calls_NewCall }, displayCallIcons: true)) controller.navigationPresentation = .modal self.createActionDisposable.set((controller.result |> take(1) |> deliverOnMainQueue).start(next: { [weak controller, weak self] peer in controller?.dismissSearch() - if let strongSelf = self, let contactPeer = peer, case let .peer(peer, _, _) = contactPeer { - strongSelf.call(peer.id, isVideo: isVideo, began: { + if let strongSelf = self, let (contactPeer, action) = peer, case let .peer(peer, _, _) = contactPeer { + strongSelf.call(peer.id, isVideo: action == .videoCall, began: { if let strongSelf = self { let _ = (strongSelf.context.sharedContext.hasOngoingCall.get() |> filter { $0 } diff --git a/submodules/ContactListUI/Sources/ContactListNode.swift b/submodules/ContactListUI/Sources/ContactListNode.swift index e68a12766a..fcbcb783e8 100644 --- a/submodules/ContactListUI/Sources/ContactListNode.swift +++ b/submodules/ContactListUI/Sources/ContactListNode.swift @@ -101,12 +101,12 @@ private final class ContactListNodeInteraction { fileprivate let openSortMenu: () -> Void fileprivate let authorize: () -> Void fileprivate let suppressWarning: () -> Void - fileprivate let openPeer: (ContactListPeer) -> Void + fileprivate let openPeer: (ContactListPeer, ContactListAction) -> Void fileprivate let contextAction: ((Peer, ASDisplayNode, ContextGesture?) -> Void)? let itemHighlighting = ContactItemHighlighting() - init(activateSearch: @escaping () -> Void, openSortMenu: @escaping () -> Void, authorize: @escaping () -> Void, suppressWarning: @escaping () -> Void, openPeer: @escaping (ContactListPeer) -> Void, contextAction: ((Peer, ASDisplayNode, ContextGesture?) -> Void)?) { + init(activateSearch: @escaping () -> Void, openSortMenu: @escaping () -> Void, authorize: @escaping () -> Void, suppressWarning: @escaping () -> Void, openPeer: @escaping (ContactListPeer, ContactListAction) -> Void, contextAction: ((Peer, ASDisplayNode, ContextGesture?) -> Void)?) { self.activateSearch = activateSearch self.openSortMenu = openSortMenu self.authorize = authorize @@ -128,7 +128,7 @@ private enum ContactListNodeEntry: Comparable, Identifiable { case permissionInfo(PresentationTheme, String, String, Bool) case permissionEnable(PresentationTheme, String) case option(Int, ContactListAdditionalOption, ListViewItemHeader?, PresentationTheme, PresentationStrings) - case peer(Int, ContactListPeer, PeerPresence?, ListViewItemHeader?, ContactsPeerItemSelection, PresentationTheme, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, PresentationPersonNameOrder, Bool) + case peer(Int, ContactListPeer, PeerPresence?, ListViewItemHeader?, ContactsPeerItemSelection, PresentationTheme, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, PresentationPersonNameOrder, Bool, Bool) var stableId: ContactListNodeEntryId { switch self { @@ -142,7 +142,7 @@ private enum ContactListNodeEntry: Comparable, Identifiable { return .permission(action: true) case let .option(index, _, _, _, _): return .option(index: index) - case let .peer(_, peer, _, _, _, _, _, _, _, _, _): + case let .peer(_, peer, _, _, _, _, _, _, _, _, _, _): switch peer { case let .peer(peer, _, _): return .peerId(peer.id.toInt64()) @@ -176,7 +176,7 @@ private enum ContactListNodeEntry: Comparable, Identifiable { }) case let .option(_, option, header, theme, _): return ContactListActionItem(presentationData: ItemListPresentationData(presentationData), title: option.title, icon: option.icon, clearHighlightAutomatically: false, header: header, action: option.action) - case let .peer(_, peer, presence, header, selection, theme, strings, dateTimeFormat, nameSortOrder, nameDisplayOrder, enabled): + case let .peer(_, peer, presence, header, selection, theme, strings, dateTimeFormat, nameSortOrder, nameDisplayOrder, displayCallIcons, enabled): var status: ContactsPeerItemStatus let itemPeer: ContactsPeerItemPeer var isContextActionEnabled = false @@ -230,8 +230,18 @@ private enum ContactListNodeEntry: Comparable, Identifiable { } } } - return ContactsPeerItem(presentationData: ItemListPresentationData(presentationData), sortOrder: nameSortOrder, displayOrder: nameDisplayOrder, context: context, peerMode: isSearch ? .generalSearch : .peer, peer: itemPeer, status: status, enabled: enabled, selection: selection, editing: ContactsPeerItemEditing(editable: false, editing: false, revealed: false), index: nil, header: header, action: { _ in - interaction.openPeer(peer) + + var additionalActions: [ContactsPeerItemAction] = [] + if displayCallIcons { + additionalActions = [ContactsPeerItemAction(icon: .voiceCall, action: { _ in + interaction.openPeer(peer, .voiceCall) + }), ContactsPeerItemAction(icon: .videoCall, action: { _ in + interaction.openPeer(peer, .videoCall) + })] + } + + return ContactsPeerItem(presentationData: ItemListPresentationData(presentationData), sortOrder: nameSortOrder, displayOrder: nameDisplayOrder, context: context, peerMode: isSearch ? .generalSearch : .peer, peer: itemPeer, status: status, enabled: enabled, selection: selection, editing: ContactsPeerItemEditing(editable: false, editing: false, revealed: false), additionalActions: additionalActions, index: nil, header: header, action: { _ in + interaction.openPeer(peer, .generic) }, itemHighlighting: interaction.itemHighlighting, contextAction: itemContextAction) } } @@ -268,9 +278,9 @@ private enum ContactListNodeEntry: Comparable, Identifiable { } else { return false } - case let .peer(lhsIndex, lhsPeer, lhsPresence, lhsHeader, lhsSelection, lhsTheme, lhsStrings, lhsTimeFormat, lhsSortOrder, lhsDisplayOrder, lhsEnabled): + case let .peer(lhsIndex, lhsPeer, lhsPresence, lhsHeader, lhsSelection, lhsTheme, lhsStrings, lhsTimeFormat, lhsSortOrder, lhsDisplayOrder, lhsDisplayCallIcons, lhsEnabled): switch rhs { - case let .peer(rhsIndex, rhsPeer, rhsPresence, rhsHeader, rhsSelection, rhsTheme, rhsStrings, rhsTimeFormat, rhsSortOrder, rhsDisplayOrder, rhsEnabled): + case let .peer(rhsIndex, rhsPeer, rhsPresence, rhsHeader, rhsSelection, rhsTheme, rhsStrings, rhsTimeFormat, rhsSortOrder, rhsDisplayOrder, rhsDisplayCallIcons, rhsEnabled): if lhsIndex != rhsIndex { return false } @@ -305,6 +315,9 @@ private enum ContactListNodeEntry: Comparable, Identifiable { if lhsDisplayOrder != rhsDisplayOrder { return false } + if lhsDisplayCallIcons != rhsDisplayCallIcons { + return false + } if lhsEnabled != rhsEnabled { return false } @@ -349,11 +362,11 @@ private enum ContactListNodeEntry: Comparable, Identifiable { case .peer: return true } - case let .peer(lhsIndex, _, _, _, _, _, _, _, _, _, _): + case let .peer(lhsIndex, _, _, _, _, _, _, _, _, _, _, _): switch rhs { case .search, .sort, .permissionInfo, .permissionEnable, .option: return false - case let .peer(rhsIndex, _, _, _, _, _, _, _, _, _, _): + case let .peer(rhsIndex, _, _, _, _, _, _, _, _, _, _, _): return lhsIndex < rhsIndex } } @@ -426,7 +439,7 @@ private extension PeerIndexNameRepresentation { } } -private func contactListNodeEntries(accountPeer: Peer?, peers: [ContactListPeer], presences: [PeerId: PeerPresence], presentation: ContactListPresentation, selectionState: ContactListNodeGroupSelectionState?, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, sortOrder: PresentationPersonNameOrder, displayOrder: PresentationPersonNameOrder, disabledPeerIds:Set, authorizationStatus: AccessType, warningSuppressed: (Bool, Bool), displaySortOptions: Bool) -> [ContactListNodeEntry] { +private func contactListNodeEntries(accountPeer: Peer?, peers: [ContactListPeer], presences: [PeerId: PeerPresence], presentation: ContactListPresentation, selectionState: ContactListNodeGroupSelectionState?, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, sortOrder: PresentationPersonNameOrder, displayOrder: PresentationPersonNameOrder, disabledPeerIds:Set, authorizationStatus: AccessType, warningSuppressed: (Bool, Bool), displaySortOptions: Bool, displayCallIcons: Bool) -> [ContactListNodeEntry] { var entries: [ContactListNodeEntry] = [] var commonHeader: ListViewItemHeader? @@ -606,7 +619,7 @@ private func contactListNodeEntries(accountPeer: Peer?, peers: [ContactListPeer] default: enabled = true } - entries.append(.peer(i, orderedPeers[i], presence, header, selection, theme, strings, dateTimeFormat, sortOrder, displayOrder, enabled)) + entries.append(.peer(i, orderedPeers[i], presence, header, selection, theme, strings, dateTimeFormat, sortOrder, displayOrder, displayCallIcons, enabled)) } return entries } @@ -629,7 +642,7 @@ private func preparedContactListNodeTransition(context: AccountContext, presenta case .search: //indexSections.apend(CollectionIndexNode.searchIndex) break - case let .peer(_, _, _, header, _, _, _, _, _, _, _): + case let .peer(_, _, _, header, _, _, _, _, _, _, _, _): if let header = header as? ContactListNameIndexHeader { if !existingSections.contains(header.letter) { existingSections.insert(header.letter) @@ -771,7 +784,7 @@ public final class ContactListNode: ASDisplayNode { public var activateSearch: (() -> Void)? public var openSortMenu: (() -> Void)? - public var openPeer: ((ContactListPeer) -> Void)? + public var openPeer: ((ContactListPeer, ContactListAction) -> Void)? public var openPrivacyPolicy: (() -> Void)? public var suppressPermissionWarning: (() -> Void)? private let contextAction: ((Peer, ASDisplayNode, ContextGesture?) -> Void)? @@ -786,7 +799,7 @@ public final class ContactListNode: ASDisplayNode { private var authorizationNode: PermissionContentNode private let displayPermissionPlaceholder: Bool - public init(context: AccountContext, presentation: Signal, filters: [ContactListFilter] = [.excludeSelf], selectionState: ContactListNodeGroupSelectionState? = nil, displayPermissionPlaceholder: Bool = true, displaySortOptions: Bool = false, contextAction: ((Peer, ASDisplayNode, ContextGesture?) -> Void)? = nil, isSearch: Bool = false) { + public init(context: AccountContext, presentation: Signal, filters: [ContactListFilter] = [.excludeSelf], selectionState: ContactListNodeGroupSelectionState? = nil, displayPermissionPlaceholder: Bool = true, displaySortOptions: Bool = false, displayCallIcons: Bool = false, contextAction: ((Peer, ASDisplayNode, ContextGesture?) -> Void)? = nil, isSearch: Bool = false) { self.context = context self.filters = filters self.displayPermissionPlaceholder = displayPermissionPlaceholder @@ -856,8 +869,8 @@ public final class ContactListNode: ASDisplayNode { authorizeImpl?() }, suppressWarning: { [weak self] in self?.suppressPermissionWarning?() - }, openPeer: { [weak self] peer in - self?.openPeer?(peer) + }, openPeer: { [weak self] peer, action in + self?.openPeer?(peer, action) }, contextAction: contextAction) self.indexNode.indexSelected = { [weak self] section in @@ -885,7 +898,7 @@ public final class ContactListNode: ASDisplayNode { strongSelf.listNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.PreferSynchronousDrawing, .PreferSynchronousResourceLoading], scrollToItem: ListViewScrollToItem(index: index, position: .top(-navigationBarSearchContentHeight), animated: false, curve: .Default(duration: nil), directionHint: .Down), additionalScrollDistance: 0.0, updateSizeAndInsets: updateSizeAndInsets, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in }) break loop } - case let .peer(_, _, _, header, _, _, _, _, _, _, _): + case let .peer(_, _, _, header, _, _, _, _, _, _, _, _): if let header = header as? ContactListNameIndexHeader { if let scalar = UnicodeScalar(header.letter) { let title = "\(Character(scalar))" @@ -1113,7 +1126,7 @@ public final class ContactListNode: ASDisplayNode { peers.append(.deviceContact(stableId, contact.0)) } - let entries = contactListNodeEntries(accountPeer: nil, peers: peers, presences: localPeersAndStatuses.1, presentation: presentation, selectionState: selectionState, theme: presentationData.theme, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, sortOrder: presentationData.nameSortOrder, displayOrder: presentationData.nameDisplayOrder, disabledPeerIds: disabledPeerIds, authorizationStatus: .allowed, warningSuppressed: (true, true), displaySortOptions: false) + let entries = contactListNodeEntries(accountPeer: nil, peers: peers, presences: localPeersAndStatuses.1, presentation: presentation, selectionState: selectionState, theme: presentationData.theme, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, sortOrder: presentationData.nameSortOrder, displayOrder: presentationData.nameDisplayOrder, disabledPeerIds: disabledPeerIds, authorizationStatus: .allowed, warningSuppressed: (true, true), displaySortOptions: false, displayCallIcons: displayCallIcons) let previous = previousEntries.swap(entries) return .single(preparedContactListNodeTransition(context: context, presentationData: presentationData, from: previous ?? [], to: entries, interaction: interaction, firstTime: previous == nil, isEmpty: false, generateIndexSections: generateSections, animation: .none, isSearch: isSearch)) } @@ -1191,7 +1204,7 @@ public final class ContactListNode: ASDisplayNode { if (authorizationStatus == .notDetermined || authorizationStatus == .denied) && peers.isEmpty { isEmpty = true } - let entries = contactListNodeEntries(accountPeer: view.accountPeer, peers: peers, presences: view.peerPresences, presentation: presentation, selectionState: selectionState, theme: presentationData.theme, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, sortOrder: presentationData.nameSortOrder, displayOrder: presentationData.nameDisplayOrder, disabledPeerIds: disabledPeerIds, authorizationStatus: authorizationStatus, warningSuppressed: warningSuppressed, displaySortOptions: displaySortOptions) + let entries = contactListNodeEntries(accountPeer: view.accountPeer, peers: peers, presences: view.peerPresences, presentation: presentation, selectionState: selectionState, theme: presentationData.theme, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, sortOrder: presentationData.nameSortOrder, displayOrder: presentationData.nameDisplayOrder, disabledPeerIds: disabledPeerIds, authorizationStatus: authorizationStatus, warningSuppressed: warningSuppressed, displaySortOptions: displaySortOptions, displayCallIcons: displayCallIcons) let previous = previousEntries.swap(entries) var hadPermissionInfo = false diff --git a/submodules/ContactListUI/Sources/ContactsController.swift b/submodules/ContactListUI/Sources/ContactsController.swift index 9fb455bd83..1f94a7f57f 100644 --- a/submodules/ContactListUI/Sources/ContactsController.swift +++ b/submodules/ContactListUI/Sources/ContactsController.swift @@ -275,7 +275,7 @@ public class ContactsController: ViewController { self?.activateSearch() } - self.contactsNode.contactListNode.openPeer = { peer in + self.contactsNode.contactListNode.openPeer = { peer, _ in openPeer(peer, false) } diff --git a/submodules/ContactsPeerItem/Sources/ContactsPeerItem.swift b/submodules/ContactsPeerItem/Sources/ContactsPeerItem.swift index 59f22e7059..8623c54638 100644 --- a/submodules/ContactsPeerItem/Sources/ContactsPeerItem.swift +++ b/submodules/ContactsPeerItem/Sources/ContactsPeerItem.swift @@ -75,6 +75,18 @@ public struct ContactsPeerItemBadge { public enum ContactsPeerItemActionIcon { case none case add + case voiceCall + case videoCall +} + +public struct ContactsPeerItemAction { + public let icon: ContactsPeerItemActionIcon + public let action: ((ContactsPeerItemPeer) -> Void)? + + public init(icon: ContactsPeerItemActionIcon, action: @escaping (ContactsPeerItemPeer) -> Void) { + self.icon = icon + self.action = action + } } public enum ContactsPeerItemPeer: Equatable { @@ -120,6 +132,7 @@ public class ContactsPeerItem: ItemListItem, ListViewItemWithHeader { let selection: ContactsPeerItemSelection let editing: ContactsPeerItemEditing let options: [ItemListPeerItemRevealOption] + let additionalActions: [ContactsPeerItemAction] let actionIcon: ContactsPeerItemActionIcon let action: (ContactsPeerItemPeer) -> Void let disabledAction: ((ContactsPeerItemPeer) -> Void)? @@ -134,7 +147,7 @@ public class ContactsPeerItem: ItemListItem, ListViewItemWithHeader { public let header: ListViewItemHeader? - public init(presentationData: ItemListPresentationData, style: ItemListStyle = .plain, sectionId: ItemListSectionId = 0, sortOrder: PresentationPersonNameOrder, displayOrder: PresentationPersonNameOrder, context: AccountContext, peerMode: ContactsPeerItemPeerMode, peer: ContactsPeerItemPeer, status: ContactsPeerItemStatus, badge: ContactsPeerItemBadge? = nil, enabled: Bool, selection: ContactsPeerItemSelection, editing: ContactsPeerItemEditing, options: [ItemListPeerItemRevealOption] = [], actionIcon: ContactsPeerItemActionIcon = .none, index: PeerNameIndex?, header: ListViewItemHeader?, action: @escaping (ContactsPeerItemPeer) -> Void, disabledAction: ((ContactsPeerItemPeer) -> Void)? = nil, setPeerIdWithRevealedOptions: ((PeerId?, PeerId?) -> Void)? = nil, deletePeer: ((PeerId) -> Void)? = nil, itemHighlighting: ContactItemHighlighting? = nil, contextAction: ((ASDisplayNode, ContextGesture?) -> Void)? = nil) { + public init(presentationData: ItemListPresentationData, style: ItemListStyle = .plain, sectionId: ItemListSectionId = 0, sortOrder: PresentationPersonNameOrder, displayOrder: PresentationPersonNameOrder, context: AccountContext, peerMode: ContactsPeerItemPeerMode, peer: ContactsPeerItemPeer, status: ContactsPeerItemStatus, badge: ContactsPeerItemBadge? = nil, enabled: Bool, selection: ContactsPeerItemSelection, editing: ContactsPeerItemEditing, options: [ItemListPeerItemRevealOption] = [], additionalActions: [ContactsPeerItemAction] = [], actionIcon: ContactsPeerItemActionIcon = .none, index: PeerNameIndex?, header: ListViewItemHeader?, action: @escaping (ContactsPeerItemPeer) -> Void, disabledAction: ((ContactsPeerItemPeer) -> Void)? = nil, setPeerIdWithRevealedOptions: ((PeerId?, PeerId?) -> Void)? = nil, deletePeer: ((PeerId) -> Void)? = nil, itemHighlighting: ContactItemHighlighting? = nil, contextAction: ((ASDisplayNode, ContextGesture?) -> Void)? = nil) { self.presentationData = presentationData self.style = style self.sectionId = sectionId @@ -149,6 +162,7 @@ public class ContactsPeerItem: ItemListItem, ListViewItemWithHeader { self.selection = selection self.editing = editing self.options = options + self.additionalActions = additionalActions self.actionIcon = actionIcon self.action = action self.disabledAction = disabledAction @@ -303,7 +317,7 @@ public class ContactsPeerItemNode: ItemListRevealOptionsItemNode { private var badgeBackgroundNode: ASImageNode? private var badgeTextNode: TextNode? private var selectionNode: CheckNode? - private var actionIconNode: ASImageNode? + private var actionButtonNodes: [HighlightableButtonNode]? private var isHighlighted: Bool = false @@ -325,7 +339,7 @@ public class ContactsPeerItemNode: ItemListRevealOptionsItemNode { public var item: ContactsPeerItem? { return self.layoutParams?.0 } - + required public init() { self.backgroundNode = ASDisplayNode() self.backgroundNode.isLayerBacked = true @@ -489,12 +503,32 @@ public class ContactsPeerItemNode: ItemListRevealOptionsItemNode { break } - let actionIconImage: UIImage? - switch item.actionIcon { - case .none: - actionIconImage = nil - case .add: - actionIconImage = PresentationResourcesItemList.plusIconImage(item.presentationData.theme) + var actionButtons: [ActionButton]? + struct ActionButton { + let image: UIImage? + let action: ((ContactsPeerItemPeer) -> Void)? + + init(theme: PresentationTheme, icon: ContactsPeerItemActionIcon, action: ((ContactsPeerItemPeer) -> Void)?) { + let image: UIImage? + switch icon { + case .none: + image = nil + case .add: + image = PresentationResourcesItemList.plusIconImage(theme) + case .voiceCall: + image = PresentationResourcesItemList.voiceCallIcon(theme) + case .videoCall: + image = PresentationResourcesItemList.videoCallIcon(theme) + } + self.image = image + self.action = action + } + } + + if item.actionIcon != .none { + actionButtons = [ActionButton(theme: item.presentationData.theme, icon: item.actionIcon, action: nil)] + } else if !item.additionalActions.isEmpty { + actionButtons = item.additionalActions.map { ActionButton(theme: item.presentationData.theme, icon: $0.icon, action: $0.action) } } var titleAttributedString: NSAttributedString? @@ -620,8 +654,13 @@ public class ContactsPeerItemNode: ItemListRevealOptionsItemNode { if let verificationIconImage = verificationIconImage { additionalTitleInset += 3.0 + verificationIconImage.size.width } - if let actionIconImage = actionIconImage { - additionalTitleInset += 3.0 + actionIconImage.size.width + if let actionButtons = actionButtons { + additionalTitleInset += 3.0 + for actionButton in actionButtons { + if let image = actionButton.image { + additionalTitleInset += image.size.width + 12.0 + } + } } additionalTitleInset += badgeSize @@ -784,23 +823,37 @@ public class ContactsPeerItemNode: ItemListRevealOptionsItemNode { verificationIconNode.removeFromSupernode() } - if let actionIconImage = actionIconImage { - if strongSelf.actionIconNode == nil { - let actionIconNode = ASImageNode() - actionIconNode.isLayerBacked = true - actionIconNode.displayWithoutProcessing = true - actionIconNode.displaysAsynchronously = false - strongSelf.actionIconNode = actionIconNode - strongSelf.containerNode.addSubnode(actionIconNode) + if let actionButtons = actionButtons { + if strongSelf.actionButtonNodes == nil { + var actionButtonNodes: [HighlightableButtonNode] = [] + for action in actionButtons { + let actionButtonNode = HighlightableButtonNode() + actionButtonNode.isUserInteractionEnabled = action.action != nil + actionButtonNode.addTarget(strongSelf, action: #selector(strongSelf.actionButtonPressed(_:)), forControlEvents: .touchUpInside) + strongSelf.containerNode.addSubnode(actionButtonNode) + + actionButtonNodes.append(actionButtonNode) + } + strongSelf.actionButtonNodes = actionButtonNodes } - if let actionIconNode = strongSelf.actionIconNode { - actionIconNode.image = actionIconImage - - transition.updateFrame(node: actionIconNode, frame: CGRect(origin: CGPoint(x: revealOffset + params.width - params.rightInset - 12.0 - actionIconImage.size.width, y: floor((nodeLayout.contentSize.height - actionIconImage.size.height) / 2.0)), size: actionIconImage.size)) + if let actionButtonNodes = strongSelf.actionButtonNodes { + var offset: CGFloat = 0.0 + if actionButtons.count > 1 { + offset += 12.0 + } + for (actionButtonNode, actionButton) in zip(actionButtonNodes, actionButtons).reversed() { + guard let actionButtonImage = actionButton.image else { + continue + } + actionButtonNode.setImage(actionButton.image, for: .normal) + transition.updateFrame(node: actionButtonNode, frame: CGRect(origin: CGPoint(x: revealOffset + params.width - params.rightInset - 12.0 - actionButtonImage.size.width - offset, y: floor((nodeLayout.contentSize.height - actionButtonImage.size.height) / 2.0)), size: actionButtonImage.size)) + + offset += actionButtonImage.size.width + 12.0 + } } - } else if let actionIconNode = strongSelf.actionIconNode { - strongSelf.actionIconNode = nil - actionIconNode.removeFromSupernode() + } else if let actionButtonNodes = strongSelf.actionButtonNodes { + strongSelf.actionButtonNodes = nil + actionButtonNodes.forEach { $0.removeFromSupernode() } } let badgeBackgroundWidth: CGFloat @@ -893,6 +946,13 @@ public class ContactsPeerItemNode: ItemListRevealOptionsItemNode { } } + @objc private func actionButtonPressed(_ sender: HighlightableButtonNode) { + guard let actionButtonNodes = self.actionButtonNodes, let index = actionButtonNodes.firstIndex(of: sender), let item = self.item, index < item.additionalActions.count else { + return + } + item.additionalActions[index].action?(item.peer) + } + override public func updateRevealOffset(offset: CGFloat, transition: ContainedViewLayoutTransition) { super.updateRevealOffset(offset: offset, transition: transition) diff --git a/submodules/Display/Source/GenerateImage.swift b/submodules/Display/Source/GenerateImage.swift index fc8437bd5c..d49becba95 100644 --- a/submodules/Display/Source/GenerateImage.swift +++ b/submodules/Display/Source/GenerateImage.swift @@ -383,6 +383,29 @@ public func generateGradientTintedImage(image: UIImage?, colors: [UIColor]) -> U return tintedImage } +public func generateGradientImage(size: CGSize, colors: [UIColor], locations: [CGFloat]) -> UIImage? { + guard colors.count == locations.count else { + return nil + } + UIGraphicsBeginImageContextWithOptions(size, false, 0.0) + if let context = UIGraphicsGetCurrentContext() { + let gradientColors = colors.map { $0.cgColor } as CFArray + let colorSpace = CGColorSpaceCreateDeviceRGB() + + var locations = locations + let gradient = CGGradient(colorsSpace: colorSpace, colors: gradientColors, locations: &locations)! + + context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) + + context.restoreGState() + } + + let image = UIGraphicsGetImageFromCurrentImageContext()! + UIGraphicsEndImageContext() + + return image +} + public func generateScaledImage(image: UIImage?, size: CGSize, opaque: Bool = true, scale: CGFloat? = nil) -> UIImage? { guard let image = image else { return nil diff --git a/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift b/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift index 8214eac6eb..5bca16d65f 100644 --- a/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift +++ b/submodules/PeerInfoUI/Sources/DeviceContactInfoController.swift @@ -1336,7 +1336,7 @@ private func addContactToExisting(context: AccountContext, parentController: Vie (parentController.navigationController as? NavigationController)?.pushViewController(contactsController) let _ = (contactsController.result |> deliverOnMainQueue).start(next: { peer in - if let peer = peer { + if let (peer, _) = peer { let dataSignal: Signal<(Peer?, DeviceContactStableId?), NoError> switch peer { case let .peer(contact, _, _): diff --git a/submodules/PeerInfoUI/Sources/GroupInfoController.swift b/submodules/PeerInfoUI/Sources/GroupInfoController.swift index f398e98e0f..a9b1029dfd 100644 --- a/submodules/PeerInfoUI/Sources/GroupInfoController.swift +++ b/submodules/PeerInfoUI/Sources/GroupInfoController.swift @@ -1896,7 +1896,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: if let contactsController = contactsController as? ContactSelectionController { selectAddMemberDisposable.set((contactsController.result |> deliverOnMainQueue).start(next: { [weak contactsController] memberPeer in - guard let memberPeer = memberPeer else { + guard let (memberPeer, _) = memberPeer else { return } diff --git a/submodules/PeerInfoUI/Sources/ItemListCallListItem.swift b/submodules/PeerInfoUI/Sources/ItemListCallListItem.swift index efa01b0b08..49d6835f9b 100644 --- a/submodules/PeerInfoUI/Sources/ItemListCallListItem.swift +++ b/submodules/PeerInfoUI/Sources/ItemListCallListItem.swift @@ -68,14 +68,30 @@ private func stringForCallType(message: Message, strings: PresentationStrings) - switch media { case let action as TelegramMediaAction: switch action.action { - case let .phoneCall(_, discardReason, _, _): + case let .phoneCall(_, discardReason, _, isVideo): let incoming = message.flags.contains(.Incoming) if let discardReason = discardReason { switch discardReason { case .busy, .disconnect: - string = strings.Notification_CallCanceled + if isVideo { + string = strings.Notification_VideoCallCanceled + } else { + string = strings.Notification_CallCanceled + } case .missed: - string = incoming ? strings.Notification_CallMissed : strings.Notification_CallCanceled + if incoming { + if isVideo { + string = strings.Notification_VideoCallMissed + } else { + string = strings.Notification_CallMissed + } + } else { + if isVideo { + string = strings.Notification_VideoCallCanceled + } else { + string = strings.Notification_CallCanceled + } + } case .hangup: break } @@ -83,9 +99,17 @@ private func stringForCallType(message: Message, strings: PresentationStrings) - if string.isEmpty { if incoming { - string = strings.Notification_CallIncoming + if isVideo { + string = strings.Notification_VideoCallIncoming + } else { + string = strings.Notification_CallIncoming + } } else { - string = strings.Notification_CallOutgoing + if isVideo { + string = strings.Notification_VideoCallOutgoing + } else { + string = strings.Notification_CallOutgoing + } } } default: diff --git a/submodules/PresentationDataUtils/Sources/AlertTheme.swift b/submodules/PresentationDataUtils/Sources/AlertTheme.swift index cc5f0907fc..ada3ded9b5 100644 --- a/submodules/PresentationDataUtils/Sources/AlertTheme.swift +++ b/submodules/PresentationDataUtils/Sources/AlertTheme.swift @@ -8,6 +8,10 @@ public func textAlertController(context: AccountContext, title: String?, text: S return textAlertController(alertContext: AlertControllerContext(theme: AlertControllerTheme(presentationData: context.sharedContext.currentPresentationData.with { $0 }), themeSignal: context.sharedContext.presentationData |> map { presentationData in AlertControllerTheme(presentationData: presentationData) }), title: title, text: text, actions: actions, actionLayout: actionLayout, allowInputInset: allowInputInset, dismissOnOutsideTap: dismissOnOutsideTap) } +public func textAlertController(sharedContext: SharedAccountContext, title: String?, text: String, actions: [TextAlertAction], actionLayout: TextAlertContentActionLayout = .horizontal, allowInputInset: Bool = true, dismissOnOutsideTap: Bool = true) -> AlertController { + return textAlertController(alertContext: AlertControllerContext(theme: AlertControllerTheme(presentationData: sharedContext.currentPresentationData.with { $0 }), themeSignal: sharedContext.presentationData |> map { presentationData in AlertControllerTheme(presentationData: presentationData) }), title: title, text: text, actions: actions, actionLayout: actionLayout, allowInputInset: allowInputInset, dismissOnOutsideTap: dismissOnOutsideTap) +} + public func richTextAlertController(context: AccountContext, title: NSAttributedString?, text: NSAttributedString, actions: [TextAlertAction], actionLayout: TextAlertContentActionLayout = .horizontal, allowInputInset: Bool = true, dismissAutomatically: Bool = true) -> AlertController { return richTextAlertController(alertContext: AlertControllerContext(theme: AlertControllerTheme(presentationData: context.sharedContext.currentPresentationData.with { $0 }), themeSignal: context.sharedContext.presentationData |> map { presentationData in AlertControllerTheme(presentationData: presentationData) }), title: title, text: text, actions: actions, actionLayout: actionLayout, allowInputInset: allowInputInset, dismissAutomatically: dismissAutomatically) } diff --git a/submodules/TelegramAudio/Sources/ManagedAudioSession.swift b/submodules/TelegramAudio/Sources/ManagedAudioSession.swift index 5624714423..a1fcb3c8b8 100644 --- a/submodules/TelegramAudio/Sources/ManagedAudioSession.swift +++ b/submodules/TelegramAudio/Sources/ManagedAudioSession.swift @@ -8,6 +8,7 @@ public enum ManagedAudioSessionType: Equatable { case playWithPossiblePortOverride case record(speaker: Bool) case voiceCall + case videoCall var isPlay: Bool { switch self { @@ -23,7 +24,7 @@ private func nativeCategoryForType(_ type: ManagedAudioSessionType, headphones: switch type { case .play: return .playback - case .record, .voiceCall: + case .record, .voiceCall, .videoCall: return .playAndRecord case .playWithPossiblePortOverride: if headphones { @@ -244,6 +245,7 @@ public final class ManagedAudioSession { if let availableInputs = audioSession.availableInputs { var hasHeadphones = false + var hasBluetoothHeadphones = false var headphonesAreActive = false loop: for currentOutput in audioSession.currentRoute.outputs { @@ -251,6 +253,7 @@ public final class ManagedAudioSession { case .headphones, .bluetoothA2DP, .bluetoothHFP: headphonesAreActive = true hasHeadphones = true + hasBluetoothHeadphones = [.bluetoothA2DP, .bluetoothHFP].contains(currentOutput.portType) activeOutput = .headphones break loop default: @@ -296,7 +299,7 @@ public final class ManagedAudioSession { availableOutputs.insert(.speaker, at: 0) } - if hasHeadphones { + if hasHeadphones && !hasBluetoothHeadphones { availableOutputs.insert(.headphones, at: 0) } availableOutputs.insert(.builtin, at: 0) @@ -672,15 +675,24 @@ public final class ManagedAudioSession { options.insert(.allowBluetooth) } } - case .record, .voiceCall: + case .record, .voiceCall, .videoCall: options.insert(.allowBluetooth) } print("ManagedAudioSession setting active true") + let mode: AVAudioSession.Mode + switch type { + case .voiceCall: + mode = .voiceChat + case .videoCall: + mode = .videoChat + default: + mode = .default + } if #available(iOSApplicationExtension 11.0, iOS 11.0, *) { - try AVAudioSession.sharedInstance().setCategory(nativeCategory, mode: type == .voiceCall ? .voiceChat : .default, policy: .default, options: options) + try AVAudioSession.sharedInstance().setCategory(nativeCategory, mode: mode, policy: .default, options: options) } else { AVAudioSession.sharedInstance().perform(NSSelectorFromString("setCategory:error:"), with: nativeCategory) - try AVAudioSession.sharedInstance().setMode(type == .voiceCall ? .voiceChat : .default) + try AVAudioSession.sharedInstance().setMode(mode) } } catch let error { print("ManagedAudioSession setup error \(error)") diff --git a/submodules/TelegramCallsUI/BUILD b/submodules/TelegramCallsUI/BUILD index e6f06819d5..3e6639c620 100644 --- a/submodules/TelegramCallsUI/BUILD +++ b/submodules/TelegramCallsUI/BUILD @@ -23,6 +23,7 @@ swift_library( "//submodules/PresentationDataUtils:PresentationDataUtils", "//submodules/TelegramCallsUI/CallsEmoji:CallsEmoji", "//submodules/SemanticStatusNode:SemanticStatusNode", + "//submodules/TooltipUI:TooltipUI", ], visibility = [ "//visibility:public", diff --git a/submodules/TelegramCallsUI/Sources/CallController.swift b/submodules/TelegramCallsUI/Sources/CallController.swift index 45891d7192..0e9856a450 100644 --- a/submodules/TelegramCallsUI/Sources/CallController.swift +++ b/submodules/TelegramCallsUI/Sources/CallController.swift @@ -19,12 +19,13 @@ protocol CallControllerNodeProtocol: class { var toggleMute: (() -> Void)? { get set } var setCurrentAudioOutput: ((AudioSessionOutput) -> Void)? { get set } - var beginAudioOuputSelection: (() -> Void)? { get set } + var beginAudioOuputSelection: ((Bool) -> Void)? { get set } var acceptCall: (() -> Void)? { get set } var endCall: (() -> Void)? { get set } var setIsVideoPaused: ((Bool) -> Void)? { get set } var back: (() -> Void)? { get set } var presentCallRating: ((CallId) -> Void)? { get set } + var present: ((ViewController) -> Void)? { get set } var callEnded: ((Bool) -> Void)? { get set } var dismissedInteractively: (() -> Void)? { get set } @@ -149,7 +150,7 @@ public final class CallController: ViewController { self?.call.setCurrentAudioOutput(output) } - self.controllerNode.beginAudioOuputSelection = { [weak self] in + self.controllerNode.beginAudioOuputSelection = { [weak self] hasMute in guard let strongSelf = self, let (availableOutputs, currentOutput) = strongSelf.audioOutputState else { return } @@ -174,13 +175,20 @@ public final class CallController: ViewController { title = UIDevice.current.model case .speaker: title = strongSelf.presentationData.strings.Call_AudioRouteSpeaker - icon = UIImage(bundleImageName: "Call/CallRouteSpeaker") + icon = generateScaledImage(image: UIImage(bundleImageName: "Call/CallSpeakerButton"), size: CGSize(width: 48.0, height: 48.0), opaque: false) case .headphones: title = strongSelf.presentationData.strings.Call_AudioRouteHeadphones case let .port(port): title = port.name if port.type == .bluetooth { - icon = UIImage(bundleImageName: "Call/CallRouteBluetooth") + var image = UIImage(bundleImageName: "Call/CallBluetoothButton") + let portName = port.name.lowercased() + if portName.contains("airpods pro") { + image = UIImage(bundleImageName: "Call/CallAirpodsProButton") + } else if portName.contains("airpods") { + image = UIImage(bundleImageName: "Call/CallAirpodsButton") + } + icon = generateScaledImage(image: image, size: CGSize(width: 48.0, height: 48.0), opaque: false) } } items.append(CallRouteActionSheetItem(title: title, icon: icon, selected: output == currentOutput, action: { [weak actionSheet] in @@ -189,8 +197,15 @@ public final class CallController: ViewController { })) } + if hasMute { + items.append(CallRouteActionSheetItem(title: strongSelf.presentationData.strings.Call_AudioRouteMute, icon: generateScaledImage(image: UIImage(bundleImageName: "Call/CallMuteButton"), size: CGSize(width: 48.0, height: 48.0), opaque: false), selected: strongSelf.isMuted, action: { [weak actionSheet] in + actionSheet?.dismissAnimated() + self?.call.toggleIsMuted() + })) + } + actionSheet.setItemGroups([ActionSheetItemGroup(items: items), ActionSheetItemGroup(items: [ - ActionSheetButtonItem(title: strongSelf.presentationData.strings.Common_Cancel, color: .accent, font: .bold, action: { [weak actionSheet] in + ActionSheetButtonItem(title: strongSelf.presentationData.strings.Call_AudioRouteHide, color: .accent, font: .bold, action: { [weak actionSheet] in actionSheet?.dismissAnimated() }) ]) @@ -236,6 +251,12 @@ public final class CallController: ViewController { } } + self.controllerNode.present = { [weak self] controller in + if let strongSelf = self { + strongSelf.present(controller, in: .window(.root)) + } + } + self.controllerNode.callEnded = { [weak self] didPresentRating in if let strongSelf = self, !didPresentRating { let _ = (combineLatest(strongSelf.sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.callListSettings]), ApplicationSpecificNotice.getCallsTabTip(accountManager: strongSelf.sharedContext.accountManager)) diff --git a/submodules/TelegramCallsUI/Sources/CallControllerButton.swift b/submodules/TelegramCallsUI/Sources/CallControllerButton.swift index f9c4b0326e..e97035e9b0 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerButton.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerButton.swift @@ -18,6 +18,14 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { case blurred(isFilled: Bool) case color(Color) + + var isFilled: Bool { + if case let .blurred(isFilled) = self { + return isFilled + } else { + return false + } + } } enum Image { @@ -26,6 +34,8 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { case flipCamera case bluetooth case speaker + case airpods + case airpodsPro case accept case end } @@ -150,7 +160,7 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { self.effectView.isHidden = true } - self.alpha = content.isEnabled ? 1.0 : 0.7 + transition.updateAlpha(node: self, alpha: content.isEnabled ? 1.0 : 0.4) self.isUserInteractionEnabled = content.isEnabled let contentBackgroundImage: UIImage? = nil @@ -204,6 +214,10 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { image = generateTintedImage(image: UIImage(bundleImageName: "Call/CallBluetoothButton"), color: imageColor) case .speaker: image = generateTintedImage(image: UIImage(bundleImageName: "Call/CallSpeakerButton"), color: imageColor) + case .airpods: + image = generateTintedImage(image: UIImage(bundleImageName: "Call/CallAirpodsButton"), color: imageColor) + case .airpodsPro: + image = generateTintedImage(image: UIImage(bundleImageName: "Call/CallAirpodsProButton"), color: imageColor) case .accept: image = generateTintedImage(image: UIImage(bundleImageName: "Call/CallAcceptButton"), color: imageColor) case .end: @@ -227,6 +241,11 @@ final class CallControllerButtonItemNode: HighlightTrackingButtonNode { } }) +// if transition.isAnimated, let previousContent = previousContent, content.image == .camera, !previousContent.appearance.isFilled && content.appearance.isFilled { +// self.contentBackgroundNode.image = contentBackgroundImage +// self.contentBackgroundNode.layer.animateSpring(from: 0.01 as NSNumber, to: 1.0 as NSNumber, keyPath: "transform.scale", duration: 1.25, damping: 105.0) +// } + if transition.isAnimated, let contentBackgroundImage = contentBackgroundImage, let previousContent = self.contentBackgroundNode.image { self.contentBackgroundNode.image = contentBackgroundImage self.contentBackgroundNode.layer.animate(from: previousContent.cgImage!, to: contentBackgroundImage.cgImage!, keyPath: "contents", timingFunction: CAMediaTimingFunctionName.easeInEaseOut.rawValue, duration: 0.2) diff --git a/submodules/TelegramCallsUI/Sources/CallControllerButtonsNode.swift b/submodules/TelegramCallsUI/Sources/CallControllerButtonsNode.swift index 4c9ebab539..b01d8af9d6 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerButtonsNode.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerButtonsNode.swift @@ -6,12 +6,18 @@ import SwiftSignalKit import MediaPlayer import TelegramPresentationData -enum CallControllerButtonsSpeakerMode { +enum CallControllerButtonsSpeakerMode: Equatable { + enum BluetoothType: Equatable { + case generic + case airpods + case airpodsPro + } + case none case builtin case speaker case headphones - case bluetooth + case bluetooth(BluetoothType) } enum CallControllerButtonsMode: Equatable { @@ -23,9 +29,9 @@ enum CallControllerButtonsMode: Equatable { case active } - case active(speakerMode: CallControllerButtonsSpeakerMode, videoState: VideoState) - case incoming(speakerMode: CallControllerButtonsSpeakerMode, videoState: VideoState) - case outgoingRinging(speakerMode: CallControllerButtonsSpeakerMode, videoState: VideoState) + case active(speakerMode: CallControllerButtonsSpeakerMode, hasAudioRouteMenu: Bool, videoState: VideoState) + case incoming(speakerMode: CallControllerButtonsSpeakerMode, hasAudioRouteMenu: Bool, videoState: VideoState) + case outgoingRinging(speakerMode: CallControllerButtonsSpeakerMode, hasAudioRouteMenu: Bool, videoState: VideoState) } private enum ButtonDescription: Equatable { @@ -43,6 +49,8 @@ private enum ButtonDescription: Equatable { case builtin case speaker case bluetooth + case airpods + case airpodsPro } enum EndType { @@ -54,7 +62,7 @@ private enum ButtonDescription: Equatable { case accept case end(EndType) case enableCamera(Bool, Bool, Bool) - case switchCamera + case switchCamera(Bool) case soundOutput(SoundOutput) case mute(Bool) @@ -160,10 +168,12 @@ final class CallControllerButtonsNode: ASDisplayNode { let speakerMode: CallControllerButtonsSpeakerMode var videoState: CallControllerButtonsMode.VideoState + let hasAudioRouteMenu: Bool switch mode { - case .incoming(let speakerModeValue, let videoStateValue), .outgoingRinging(let speakerModeValue, let videoStateValue), .active(let speakerModeValue, let videoStateValue): + case .incoming(let speakerModeValue, let hasAudioRouteMenuValue, let videoStateValue), .outgoingRinging(let speakerModeValue, let hasAudioRouteMenuValue, let videoStateValue), .active(let speakerModeValue, let hasAudioRouteMenuValue, let videoStateValue): speakerMode = speakerModeValue videoState = videoStateValue + hasAudioRouteMenu = hasAudioRouteMenuValue } enum MappedState { @@ -178,7 +188,7 @@ final class CallControllerButtonsNode: ASDisplayNode { mappedState = .incomingRinging case .outgoingRinging: mappedState = .outgoingRinging - case let .active(_, videoStateValue): + case let .active(_, _, videoStateValue): switch videoStateValue { case let .incomingRequested(sendsVideo): mappedState = .active @@ -199,14 +209,21 @@ final class CallControllerButtonsNode: ASDisplayNode { let soundOutput: ButtonDescription.SoundOutput switch speakerMode { - case .none, .builtin: - soundOutput = .builtin - case .speaker: - soundOutput = .speaker - case .headphones: - soundOutput = .bluetooth - case .bluetooth: - soundOutput = .bluetooth + case .none, .builtin: + soundOutput = .builtin + case .speaker: + soundOutput = .speaker + case .headphones: + soundOutput = .bluetooth + case let .bluetooth(type): + switch type { + case .generic: + soundOutput = .bluetooth + case .airpods: + soundOutput = .airpods + case .airpodsPro: + soundOutput = .airpodsPro + } } switch videoState { @@ -223,12 +240,17 @@ final class CallControllerButtonsNode: ASDisplayNode { isCameraEnabled = true isCameraInitializing = false } - topButtons.append(.enableCamera(isCameraActive, isCameraEnabled, isCameraInitializing)) - topButtons.append(.mute(self.isMuted)) + topButtons.append(.enableCamera(isCameraActive, false, isCameraInitializing)) if case .possible = videoState { + topButtons.append(.mute(self.isMuted)) topButtons.append(.soundOutput(soundOutput)) } else { - topButtons.append(.switchCamera) + if hasAudioRouteMenu { + topButtons.append(.soundOutput(soundOutput)) + } else { + topButtons.append(.mute(self.isMuted)) + } + topButtons.append(.switchCamera(isCameraActive && !isCameraInitializing)) } case .notAvailable: topButtons.append(.mute(self.isMuted)) @@ -287,14 +309,21 @@ final class CallControllerButtonsNode: ASDisplayNode { let soundOutput: ButtonDescription.SoundOutput switch speakerMode { - case .none, .builtin: - soundOutput = .builtin - case .speaker: - soundOutput = .speaker - case .headphones: - soundOutput = .builtin - case .bluetooth: - soundOutput = .bluetooth + case .none, .builtin: + soundOutput = .builtin + case .speaker: + soundOutput = .speaker + case .headphones: + soundOutput = .builtin + case let .bluetooth(type): + switch type { + case .generic: + soundOutput = .bluetooth + case .airpods: + soundOutput = .airpods + case .airpodsPro: + soundOutput = .airpodsPro + } } if case let .outgoingRequested(isInitializing) = videoState { @@ -302,8 +331,12 @@ final class CallControllerButtonsNode: ASDisplayNode { } topButtons.append(.enableCamera(isCameraActive, isCameraEnabled, isCameraInitializing)) - topButtons.append(.mute(isMuted)) - topButtons.append(.switchCamera) + if hasAudioRouteMenu { + topButtons.append(.soundOutput(soundOutput)) + } else { + topButtons.append(.mute(isMuted)) + } + topButtons.append(.switchCamera(isCameraActive && !isCameraInitializing)) topButtons.append(.end(.end)) let topButtonsContentWidth = CGFloat(topButtons.count) * smallButtonSize @@ -336,14 +369,21 @@ final class CallControllerButtonsNode: ASDisplayNode { let soundOutput: ButtonDescription.SoundOutput switch speakerMode { - case .none, .builtin: - soundOutput = .builtin - case .speaker: - soundOutput = .speaker - case .headphones: - soundOutput = .bluetooth - case .bluetooth: - soundOutput = .bluetooth + case .none, .builtin: + soundOutput = .builtin + case .speaker: + soundOutput = .speaker + case .headphones: + soundOutput = .bluetooth + case let .bluetooth(type): + switch type { + case .generic: + soundOutput = .bluetooth + case .airpods: + soundOutput = .airpods + case .airpodsPro: + soundOutput = .airpodsPro + } } topButtons.append(.enableCamera(isCameraActive, isCameraEnabled, isCameraInitializing)) @@ -423,15 +463,17 @@ final class CallControllerButtonsNode: ASDisplayNode { hasProgress: isInitializing ) buttonText = strings.Call_Camera - case .switchCamera: + case let .switchCamera(isEnabled): buttonContent = CallControllerButtonItemNode.Content( appearance: .blurred(isFilled: false), - image: .flipCamera + image: .flipCamera, + isEnabled: isEnabled ) buttonText = strings.Call_Flip case let .soundOutput(value): let image: CallControllerButtonItemNode.Content.Image var isFilled = false + var title: String = strings.Call_Speaker switch value { case .builtin: image = .speaker @@ -440,12 +482,19 @@ final class CallControllerButtonsNode: ASDisplayNode { isFilled = true case .bluetooth: image = .bluetooth + title = strings.Call_Audio + case .airpods: + image = .airpods + title = strings.Call_Audio + case .airpodsPro: + image = .airpodsPro + title = strings.Call_Audio } buttonContent = CallControllerButtonItemNode.Content( appearance: .blurred(isFilled: isFilled), image: image ) - buttonText = strings.Call_Speaker + buttonText = title case let .mute(isMuted): buttonContent = CallControllerButtonItemNode.Content( appearance: .blurred(isFilled: isMuted), diff --git a/submodules/TelegramCallsUI/Sources/CallControllerKeyPreviewNode.swift b/submodules/TelegramCallsUI/Sources/CallControllerKeyPreviewNode.swift index 801e5c1d0a..eaa034766f 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerKeyPreviewNode.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerKeyPreviewNode.swift @@ -83,7 +83,7 @@ final class CallControllerKeyPreviewNode: ASDisplayNode { } func animateOut(to rect: CGRect, toNode: ASDisplayNode, completion: @escaping () -> Void) { - self.keyTextNode.layer.animatePosition(from: self.keyTextNode.layer.position, to: CGPoint(x: rect.midX, y: rect.midY), duration: 0.3, timingFunction: kCAMediaTimingFunctionSpring, removeOnCompletion: false, completion: { _ in + self.keyTextNode.layer.animatePosition(from: self.keyTextNode.layer.position, to: CGPoint(x: rect.midX + 2.0, y: rect.midY), duration: 0.3, timingFunction: kCAMediaTimingFunctionSpring, removeOnCompletion: false, completion: { _ in completion() }) self.keyTextNode.layer.animateScale(from: 1.0, to: rect.size.width / self.keyTextNode.frame.size.width, duration: 0.3, timingFunction: kCAMediaTimingFunctionSpring, removeOnCompletion: false) diff --git a/submodules/TelegramCallsUI/Sources/CallControllerNode.swift b/submodules/TelegramCallsUI/Sources/CallControllerNode.swift index 77dc6ba901..5762c832ce 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerNode.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerNode.swift @@ -13,6 +13,9 @@ import AccountContext import LocalizedPeerData import PhotoResources import CallsEmoji +import TooltipUI +import AlertUI +import PresentationDataUtils private func interpolateFrame(from fromValue: CGRect, to toValue: CGRect, t: CGFloat) -> CGRect { return CGRect(x: floorToScreenPixels(toValue.origin.x * t + fromValue.origin.x * (1.0 - t)), y: floorToScreenPixels(toValue.origin.y * t + fromValue.origin.y * (1.0 - t)), width: floorToScreenPixels(toValue.size.width * t + fromValue.size.width * (1.0 - t)), height: floorToScreenPixels(toValue.size.height * t + fromValue.size.height * (1.0 - t))) @@ -52,10 +55,15 @@ private final class CallVideoNode: ASDisplayNode { super.init() + if #available(iOS 13.0, *) { + self.layer.cornerCurve = .continuous + self.videoTransformContainer.layer.cornerCurve = .continuous + } + self.videoTransformContainer.view.addSubview(self.videoView.view) self.addSubnode(self.videoTransformContainer) - self.videoView.setOnFirstFrameReceived { [weak self] in + self.videoView.setOnFirstFrameReceived { [weak self] aspectRatio in Queue.mainQueue().async { guard let strongSelf = self else { return @@ -219,7 +227,7 @@ private final class CallVideoNode: ASDisplayNode { transition.updateCornerRadius(layer: self.layer, cornerRadius: self.currentCornerRadius) } - func updateIsBlurred(isBlurred: Bool) { + func updateIsBlurred(isBlurred: Bool, light: Bool = false, animated: Bool = true) { if self.isBlurred == isBlurred { return } @@ -231,12 +239,16 @@ private final class CallVideoNode: ASDisplayNode { effectView.clipsToBounds = true effectView.layer.cornerRadius = self.currentCornerRadius self.effectView = effectView - effectView.frame = self.videoView.view.frame - self.view.addSubview(effectView) + effectView.frame = self.videoTransformContainer.bounds + self.videoTransformContainer.view.addSubview(effectView) + } + if animated { + UIView.animate(withDuration: 0.3, animations: { + self.effectView?.effect = UIBlurEffect(style: light ? .light : .dark) + }) + } else { + self.effectView?.effect = UIBlurEffect(style: light ? .light : .dark) } - UIView.animate(withDuration: 0.3, animations: { - self.effectView?.effect = UIBlurEffect(style: .dark) - }) } else if let effectView = self.effectView { self.effectView = nil UIView.animate(withDuration: 0.3, animations: { @@ -246,6 +258,22 @@ private final class CallVideoNode: ASDisplayNode { }) } } + + func flip(withBackground: Bool) { + if withBackground { + self.backgroundColor = .black + } + UIView.transition(with: self.videoTransformContainer.view, duration: 0.4, options: [.transitionFlipFromLeft, .curveEaseOut], animations: { + UIView.performWithoutAnimation { + self.updateIsBlurred(isBlurred: true, light: true, animated: false) + } + }) { finished in + self.backgroundColor = nil + Queue.mainQueue().after(0.5) { + self.updateIsBlurred(isBlurred: false) + } + } + } } final class CallControllerNode: ViewControllerTracingNode, CallControllerNodeProtocol { @@ -272,7 +300,7 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro private let containerNode: ASDisplayNode private let imageNode: TransformImageNode - private let dimNode: ASDisplayNode + private let dimNode: ASImageNode private var incomingVideoNodeValue: CallVideoNode? private var incomingVideoViewRequested: Bool = false @@ -283,6 +311,8 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro private var isRequestingVideo: Bool = false private var animateRequestedVideoOnce: Bool = false + private var displayedCameraTooltip: Bool = false + private var expandedVideoNode: CallVideoNode? private var minimizedVideoNode: CallVideoNode? private var disableAnimationForExpandedVideoOnce: Bool = false @@ -293,6 +323,7 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro private let backButtonNode: HighlightableButtonNode private let statusNode: CallControllerStatusNode private let videoPausedNode: ImmediateTextNode + private let toastNode: CallControllerToastContainerNode private let buttonsNode: CallControllerButtonsNode private var keyPreviewNode: CallControllerKeyPreviewNode? @@ -320,7 +351,7 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro var toggleMute: (() -> Void)? var setCurrentAudioOutput: ((AudioSessionOutput) -> Void)? - var beginAudioOuputSelection: (() -> Void)? + var beginAudioOuputSelection: ((Bool) -> Void)? var acceptCall: (() -> Void)? var endCall: (() -> Void)? var setIsVideoPaused: ((Bool) -> Void)? @@ -328,7 +359,9 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro var presentCallRating: ((CallId) -> Void)? var callEnded: ((Bool) -> Void)? var dismissedInteractively: (() -> Void)? + var present: ((ViewController) -> Void)? + private var toastContent: CallControllerToastContent? private var buttonsMode: CallControllerButtonsMode? private var isUIHidden: Bool = false @@ -364,9 +397,10 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro self.imageNode = TransformImageNode() self.imageNode.contentAnimations = [.subsequentUpdates] - self.dimNode = ASDisplayNode() + self.dimNode = ASImageNode() + self.dimNode.contentMode = .scaleToFill self.dimNode.isUserInteractionEnabled = false - self.dimNode.backgroundColor = UIColor(white: 0.0, alpha: 0.4) + self.dimNode.backgroundColor = UIColor(white: 0.0, alpha: 0.3) self.backButtonArrowNode = ASImageNode() self.backButtonArrowNode.displayWithoutProcessing = true @@ -380,6 +414,7 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro self.videoPausedNode.alpha = 0.0 self.buttonsNode = CallControllerButtonsNode(strings: self.presentationData.strings) + self.toastNode = CallControllerToastContainerNode(strings: self.presentationData.strings) self.keyButtonNode = CallControllerKeyButton() super.init() @@ -421,7 +456,7 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro } self.buttonsNode.speaker = { [weak self] in - self?.beginAudioOuputSelection?() + self?.beginAudioOuputSelection?(true) } self.buttonsNode.acceptOrEnd = { [weak self] in @@ -456,19 +491,25 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro switch callState.state { case .active: if strongSelf.outgoingVideoNodeValue == nil { - switch callState.videoState { - case .possible: - strongSelf.isRequestingVideo = true - strongSelf.updateButtonsMode() - default: - break - } - switch callState.videoState { - case .incomingRequested: - strongSelf.call.acceptVideo() - default: - strongSelf.call.requestVideo() + let proceed = { + switch callState.videoState { + case .possible: + strongSelf.isRequestingVideo = true + strongSelf.updateButtonsMode() + default: + break + } + switch callState.videoState { + case .incomingRequested: + strongSelf.call.acceptVideo() + default: + strongSelf.call.requestVideo() + } } + + strongSelf.present?(textAlertController(sharedContext: strongSelf.sharedContext, title: nil, text: strongSelf.presentationData.strings.Call_CameraConfirmationText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Call_CameraConfirmationConfirm, action: { + proceed() + })])) } else { strongSelf.isVideoPaused = !strongSelf.isVideoPaused strongSelf.outgoingVideoNodeValue?.updateIsBlurred(isBlurred: strongSelf.isVideoPaused) @@ -488,6 +529,9 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro guard let strongSelf = self else { return } + if let outgoingVideoNode = strongSelf.outgoingVideoNodeValue, let (layout, _) = strongSelf.validLayout { + outgoingVideoNode.flip(withBackground: outgoingVideoNode.frame.width == layout.size.width) + } strongSelf.call.switchVideoCamera() if let _ = strongSelf.outgoingVideoNodeValue { if let (layout, navigationBarHeight) = strongSelf.validLayout { @@ -501,6 +545,18 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro self.backButtonNode.addTarget(self, action: #selector(self.backPressed), forControlEvents: .touchUpInside) } + func displayCameraTooltip() { + guard let location = self.buttonsNode.videoButtonFrame().flatMap({ frame -> CGRect in + return self.buttonsNode.view.convert(frame, to: self.view) + }) else { + return + } + + self.present?(TooltipScreen(text: self.presentationData.strings.Call_CameraTooltip, style: .light, icon: nil, location: .point(location.offsetBy(dx: 0.0, dy: -14.0)), displayDuration: .custom(5.0), shouldDismissOnTouch: { _ in + return .dismiss(consume: false) + })) + } + override func didLoad() { super.didLoad() @@ -532,11 +588,12 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro self.dimNode.isHidden = true } + self.toastNode.title = peer.compactDisplayTitle self.statusNode.title = peer.displayTitle(strings: self.presentationData.strings, displayOrder: self.presentationData.nameDisplayOrder) if hasOther { self.statusNode.subtitle = self.presentationData.strings.Call_AnsweringWithAccount(accountPeer.displayTitle(strings: self.presentationData.strings, displayOrder: self.presentationData.nameDisplayOrder)).0 - if let callState = callState { + if let callState = self.callState { self.updateCallState(callState) } } @@ -606,7 +663,7 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro }) strongSelf.incomingVideoNodeValue = incomingVideoNode strongSelf.expandedVideoNode = incomingVideoNode - strongSelf.containerNode.insertSubnode(incomingVideoNode, aboveSubnode: strongSelf.dimNode) + strongSelf.containerNode.insertSubnode(incomingVideoNode, belowSubnode: strongSelf.dimNode) if let (layout, navigationBarHeight) = strongSelf.validLayout { strongSelf.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, transition: .animated(duration: 0.5, curve: .spring)) } @@ -647,7 +704,7 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro if let expandedVideoNode = strongSelf.expandedVideoNode { strongSelf.containerNode.insertSubnode(outgoingVideoNode, aboveSubnode: expandedVideoNode) } else { - strongSelf.containerNode.insertSubnode(outgoingVideoNode, aboveSubnode: strongSelf.dimNode) + strongSelf.containerNode.insertSubnode(outgoingVideoNode, belowSubnode: strongSelf.dimNode) } strongSelf.updateButtonsMode(transition: .animated(duration: 0.4, curve: .spring)) } @@ -725,7 +782,7 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro } } } - + switch callState.state { case .waiting, .connecting: statusValue = .text(string: self.presentationData.strings.Call_StatusConnecting, displayLogo: false) @@ -826,7 +883,27 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro } } + var toastContent: CallControllerToastContent = [] + if case .inactive = callState.remoteVideoState { + toastContent.insert(.camera) + } + if case .muted = callState.remoteAudioState { + toastContent.insert(.microphone) + } + if case .low = callState.remoteBatteryLevel { + toastContent.insert(.battery) + } + self.toastContent = toastContent + self.updateButtonsMode() + self.updateDimVisibility() + + if self.incomingVideoViewRequested && !self.outgoingVideoViewRequested && !self.displayedCameraTooltip { + self.displayedCameraTooltip = true + Queue.mainQueue().after(1.0) { + self.displayCameraTooltip() + } + } if case let .terminated(id, _, reportRating) = callState.state, let callId = id { let presentRating = reportRating || self.forceReportRating @@ -837,6 +914,32 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro } } + private func updateDimVisibility(transition: ContainedViewLayoutTransition = .animated(duration: 0.3, curve: .easeInOut)) { + guard let callState = self.callState else { + return + } + + var visible = true + if case .active = callState.state, self.incomingVideoNodeValue != nil || self.outgoingVideoNodeValue != nil { + visible = false + } + + let currentVisible = self.dimNode.image == nil + if visible != currentVisible { + let color = visible ? UIColor(rgb: 0x000000, alpha: 0.3) : UIColor.clear + let image: UIImage? = visible ? nil : generateGradientImage(size: CGSize(width: 1.0, height: 640.0), colors: [UIColor.black.withAlphaComponent(0.3), UIColor.clear, UIColor.clear, UIColor.black.withAlphaComponent(0.3)], locations: [0.0, 0.22, 0.7, 1.0]) + if transition.isAnimated { + UIView.transition(with: self.dimNode.view, duration: 0.3, options: .transitionCrossDissolve, animations: { + self.dimNode.backgroundColor = color + self.dimNode.image = image + }, completion: nil) + } else { + self.dimNode.backgroundColor = color + self.dimNode.image = image + } + } + } + private var buttonsTerminationMode: CallControllerButtonsMode? private func updateButtonsMode(transition: ContainedViewLayoutTransition = .animated(duration: 0.3, curve: .spring)) { @@ -845,7 +948,9 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro } var mode: CallControllerButtonsSpeakerMode = .none + var hasAudioRouteMenu: Bool = false if let (availableOutputs, maybeCurrentOutput) = self.audioOutputState, let currentOutput = maybeCurrentOutput { + hasAudioRouteMenu = availableOutputs.count >= 2 switch currentOutput { case .builtin: mode = .builtin @@ -853,8 +958,15 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro mode = .speaker case .headphones: mode = .headphones - case .port: - mode = .bluetooth + case let .port(port): + var type: CallControllerButtonsSpeakerMode.BluetoothType = .generic + let portName = port.name.lowercased() + if portName.contains("airpods pro") { + type = .airpodsPro + } else if portName.contains("airpods") { + type = .airpods + } + mode = .bluetooth(type) } if availableOutputs.count <= 1 { mode = .none @@ -887,22 +999,22 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro switch callState.state { case .ringing: - self.buttonsMode = .incoming(speakerMode: mode, videoState: mappedVideoState) + self.buttonsMode = .incoming(speakerMode: mode, hasAudioRouteMenu: hasAudioRouteMenu, videoState: mappedVideoState) self.buttonsTerminationMode = buttonsMode case .waiting, .requesting: - self.buttonsMode = .outgoingRinging(speakerMode: mode, videoState: mappedVideoState) + self.buttonsMode = .outgoingRinging(speakerMode: mode, hasAudioRouteMenu: hasAudioRouteMenu, videoState: mappedVideoState) self.buttonsTerminationMode = buttonsMode case .active, .connecting, .reconnecting: - self.buttonsMode = .active(speakerMode: mode, videoState: mappedVideoState) + self.buttonsMode = .active(speakerMode: mode, hasAudioRouteMenu: hasAudioRouteMenu, videoState: mappedVideoState) self.buttonsTerminationMode = buttonsMode case .terminating, .terminated: if let buttonsTerminationMode = self.buttonsTerminationMode { self.buttonsMode = buttonsTerminationMode } else { - self.buttonsMode = .active(speakerMode: mode, videoState: mappedVideoState) + self.buttonsMode = .active(speakerMode: mode, hasAudioRouteMenu: hasAudioRouteMenu, videoState: mappedVideoState) } } - + if let (layout, navigationHeight) = self.validLayout { self.containerLayoutUpdated(layout, navigationBarHeight: navigationHeight, transition: transition) } @@ -1043,6 +1155,8 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro let defaultButtonsOriginY = layout.size.height - buttonsHeight let buttonsOriginY = interpolate(from: layout.size.height + 10.0, to: defaultButtonsOriginY, value: uiDisplayTransition) + let toastHeight = self.toastNode.updateLayout(strings: self.presentationData.strings, content: self.toastContent, constrainedWidth: layout.size.width, bottomInset: layout.intrinsicInsets.bottom + buttonsHeight, transition: transition) + var overlayAlpha: CGFloat = uiDisplayTransition switch self.callState?.state { @@ -1110,7 +1224,8 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro let videoPausedSize = self.videoPausedNode.updateLayout(CGSize(width: layout.size.width - 16.0, height: 100.0)) transition.updateFrame(node: self.videoPausedNode, frame: CGRect(origin: CGPoint(x: floor((layout.size.width - videoPausedSize.width) / 2.0), y: floor((layout.size.height - videoPausedSize.height) / 2.0)), size: videoPausedSize)) - + + transition.updateFrame(node: self.toastNode, frame: CGRect(origin: CGPoint(x: 0.0, y: buttonsOriginY), size: CGSize(width: layout.size.width, height: buttonsHeight))) transition.updateFrame(node: self.buttonsNode, frame: CGRect(origin: CGPoint(x: 0.0, y: buttonsOriginY), size: CGSize(width: layout.size.width, height: buttonsHeight))) transition.updateAlpha(node: self.buttonsNode, alpha: overlayAlpha) @@ -1205,11 +1320,20 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro self?.keyButtonNode.isHidden = false keyPreviewNode?.removeFromSupernode() }) + } else if self.hasVideoNodes { + if let (layout, navigationHeight) = self.validLayout { + self.pictureInPictureTransitionFraction = 1.0 + self.containerLayoutUpdated(layout, navigationBarHeight: navigationHeight, transition: .animated(duration: 0.4, curve: .spring)) + } } else { self.back?() } } + private var hasVideoNodes: Bool { + return self.expandedVideoNode != nil || self.minimizedVideoNode != nil + } + private var debugTapCounter: (Double, Int) = (0.0, 0) private func areUserActionsDisabledNow() -> Bool { @@ -1429,7 +1553,7 @@ final class CallControllerNode: ViewControllerTracingNode, CallControllerNodePro } if self.pictureInPictureTransitionFraction.isZero, let expandedVideoNode = self.expandedVideoNode, let minimizedVideoNode = self.minimizedVideoNode, minimizedVideoNode.frame.contains(location), expandedVideoNode.frame != minimizedVideoNode.frame { self.minimizedVideoInitialPosition = minimizedVideoNode.position - } else if let _ = self.expandedVideoNode, let _ = self.minimizedVideoNode { + } else if let _ = self.minimizedVideoNode { self.minimizedVideoInitialPosition = nil if !self.pictureInPictureTransitionFraction.isZero { self.pictureInPictureGestureState = .dragging(initialPosition: self.containerTransformationNode.position, draggingPosition: self.containerTransformationNode.position) diff --git a/submodules/TelegramCallsUI/Sources/CallControllerToastNode.swift b/submodules/TelegramCallsUI/Sources/CallControllerToastNode.swift index 4d448f3648..fb7db40b10 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerToastNode.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerToastNode.swift @@ -3,13 +3,186 @@ import UIKit import Display import AsyncDisplayKit import SwiftSignalKit +import TelegramPresentationData private let labelFont = Font.regular(17.0) -final class CallControllerToastNode: ASDisplayNode { +private enum ToastDescription: Equatable { + enum Key: Hashable { + case camera + case microphone + case mute + case battery + } + + case camera + case microphone + case mute + case battery + + var key: Key { + switch self { + case .camera: + return .camera + case .microphone: + return .microphone + case .mute: + return .mute + case .battery: + return .battery + } + } +} + +struct CallControllerToastContent: OptionSet { + public var rawValue: Int32 + + public init(rawValue: Int32) { + self.rawValue = rawValue + } + + public static let camera = CallControllerToastContent(rawValue: 1 << 0) + public static let microphone = CallControllerToastContent(rawValue: 1 << 1) + public static let mute = CallControllerToastContent(rawValue: 1 << 2) + public static let battery = CallControllerToastContent(rawValue: 1 << 3) +} + +final class CallControllerToastContainerNode: ASDisplayNode { + private var toastNodes: [ToastDescription.Key: CallControllerToastItemNode] = [:] + + private let strings: PresentationStrings + + private var validLayout: (CGFloat, CGFloat)? + + private var content: CallControllerToastContent? + private var appliedContent: CallControllerToastContent? + var title: String = "" + + init(strings: PresentationStrings) { + self.strings = strings + + super.init() + } + + private func updateToastsLayout(strings: PresentationStrings, content: CallControllerToastContent, width: CGFloat, bottomInset: CGFloat, animated: Bool) -> CGFloat { + let transition: ContainedViewLayoutTransition + if animated { + transition = .animated(duration: 0.3, curve: .spring) + } else { + transition = .immediate + } + + let previousContent = self.appliedContent + self.appliedContent = content + + let spacing: CGFloat = 18.0 + let bottomSpacing: CGFloat = 22.0 + + var height: CGFloat = 0.0 + var toasts: [ToastDescription] = [] + + if content.contains(.camera) { + toasts.append(.camera) + } + if content.contains(.microphone) { + toasts.append(.microphone) + } + if content.contains(.mute) { + toasts.append(.mute) + } + if content.contains(.battery) { + toasts.append(.battery) + } + + var validKeys: [ToastDescription.Key] = [] + for toast in toasts { + validKeys.append(toast.key) + var toastTransition = transition + var animateToastIn = false + let toastNode: CallControllerToastItemNode + if let current = self.toastNodes[toast.key] { + toastNode = current + } else { + toastNode = CallControllerToastItemNode() + self.toastNodes[toast.key] = toastNode + self.addSubnode(toastNode) + toastTransition = .immediate + animateToastIn = transition.isAnimated + } + let toastContent: CallControllerToastItemNode.Content + let toastText: String + switch toast { + case .camera: + toastContent = CallControllerToastItemNode.Content( + image: .camera, + text: strings.Call_CameraOff(self.title).0 + ) + case .microphone: + toastContent = CallControllerToastItemNode.Content( + image: .microphone, + text: strings.Call_MicrophoneOff(self.title).0 + ) + case .mute: + toastContent = CallControllerToastItemNode.Content( + image: .microphone, + text: strings.Call_YourMicrophoneOff + ) + case .battery: + toastContent = CallControllerToastItemNode.Content( + image: .battery, + text: strings.Call_BatteryLow(self.title).0 + ) + } + let toastHeight = toastNode.update(width: width, content: buttonContent, text: buttonText, transition: buttonTransition) + let toastFrame = CGRect(x: 0.0, y: 0.0, width: 100.0, height: 20.0) + toastTransition.updateFrame(node: toastNode, frame: toastFrame) + + height += toastHeight + + + if animateToastIn { + toastNode.animateIn() + } + } + + var removedKeys: [ToastDescription.Key] = [] + for (key, toast) in self.toastNodes { + if !validKeys.contains(key) { + removedKeys.append(key) + if animated { + toast.animateOut(transition: transition) { [weak toast] in + toast?.removeFromSupernode() + } + } else { + toast.removeFromSupernode() + } + } + } + for key in removedKeys { + self.toastNodes.removeValue(forKey: key) + } + + return height + } + + func updateLayout(strings: PresentationStrings, content: CallControllerToastContent?, constrainedWidth: CGFloat, bottomInset: CGFloat, transition: ContainedViewLayoutTransition) -> CGFloat { + self.validLayout = (constrainedWidth, bottomInset) + + self.content = content + + if let content = self.content { + return self.updateToastsLayout(strings: strings, content: content, width: constrainedWidth, bottomInset: bottomInset, animated: transition.isAnimated) + } else { + return 0.0 + } + } +} + +final class CallControllerToastItemNode: ASDisplayNode { struct Content: Equatable { enum Image { - case cameraOff + case camera + case microphone + case battery } var image: Image @@ -22,6 +195,11 @@ final class CallControllerToastNode: ASDisplayNode { } let effectView: UIVisualEffectView + let iconNode: ASImageNode + let textNode: ImmediateTextNode + + private(set) var currentContent: Content? + private(set) var currentWidth: CGFloat? override init() { self.effectView = UIVisualEffectView() @@ -30,8 +208,74 @@ final class CallControllerToastNode: ASDisplayNode { self.effectView.clipsToBounds = true self.effectView.isUserInteractionEnabled = false + self.iconNode = ASImageNode() + self.iconNode.displaysAsynchronously = false + self.iconNode.displayWithoutProcessing = true + + self.textNode = ImmediateTextNode() + self.textNode.displaysAsynchronously = false + self.textNode.isUserInteractionEnabled = false + super.init() self.view.addSubview(self.effectView) + self.addSubnode(self.iconNode) + self.addSubnode(self.textNode) + } + + func update(width: CGFloat, content: Content, transition: ContainedViewLayoutTransition) -> CGFloat { + let inset: CGFloat = 24.0 + + self.currentWidth = size.width + + if self.currentContent != content { + let previousContent = self.currentContent + self.currentContent = content + + var image: UIImage? + switch content.image { + case .camera: + image = generateTintedImage(image: UIImage(bundleImageName: "Call/CallToastCamera"), color: .white) + case .microphone: + image = generateTintedImage(image: UIImage(bundleImageName: "Call/CallToastMicrophone"), color: .white) + case .battery: + image = generateTintedImage(image: UIImage(bundleImageName: "Call/CallToastBattery"), color: .white) + } + + if transition.isAnimated, let image = image, let previousContent = self.iconNode.image { + self.iconNode.image = image + self.iconNode.layer.animate(from: previousContent.cgImage!, to: image.cgImage!, keyPath: "contents", timingFunction: CAMediaTimingFunctionName.easeInEaseOut.rawValue, duration: 0.2) + } else { + self.iconNode.image = image + } + + if previousContent?.text != content.text { + let textSize = self.textNode.updateLayout(CGSize(width: size.width - inset * 2.0, height: 100.0)) + let textFrame = CGRect(origin: CGPoint(x: floor((size.width - textSize.width) / 2.0), y: size.height), size: textSize) + + if previousContent?.text.isEmpty ?? true { + self.textNode.frame = textFrame + if transition.isAnimated { + self.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.15) + } + } else { + transition.updateFrameAdditiveToCenter(node: self.textNode, frame: textFrame) + } + } + } + return 28.0 + } + + func animateIn() { + self.layer.animateSpring(from: 0.01 as NSNumber, to: 1.0 as NSNumber, keyPath: "transform.scale", duration: 0.45, damping: 105.0, completion: { _ in + + }) + } + + func animateOut(transition: ContainedViewLayoutTransition, completion: @escaping () -> Void) { + transition.updateTransformScale(node: self, scale: 0.1) + transition.updateAlpha(node: self, alpha: 0.0, completion: { _ in + completion() + }) } } diff --git a/submodules/TelegramCallsUI/Sources/CallKitIntegration.swift b/submodules/TelegramCallsUI/Sources/CallKitIntegration.swift index 932ff22c50..b148c695db 100644 --- a/submodules/TelegramCallsUI/Sources/CallKitIntegration.swift +++ b/submodules/TelegramCallsUI/Sources/CallKitIntegration.swift @@ -132,7 +132,7 @@ class CallKitProviderDelegate: NSObject, CXProviderDelegate { private static func providerConfiguration() -> CXProviderConfiguration { let providerConfiguration = CXProviderConfiguration(localizedName: "Telegram") - providerConfiguration.supportsVideo = false + providerConfiguration.supportsVideo = true providerConfiguration.maximumCallsPerCallGroup = 1 providerConfiguration.maximumCallGroups = 1 providerConfiguration.supportedHandleTypes = [.phoneNumber, .generic] diff --git a/submodules/TelegramCallsUI/Sources/LegacyCallControllerNode.swift b/submodules/TelegramCallsUI/Sources/LegacyCallControllerNode.swift index fcf202151b..5ff9e77cc3 100644 --- a/submodules/TelegramCallsUI/Sources/LegacyCallControllerNode.swift +++ b/submodules/TelegramCallsUI/Sources/LegacyCallControllerNode.swift @@ -131,7 +131,7 @@ final class LegacyCallControllerNode: ASDisplayNode, CallControllerNodeProtocol var toggleMute: (() -> Void)? var setCurrentAudioOutput: ((AudioSessionOutput) -> Void)? - var beginAudioOuputSelection: (() -> Void)? + var beginAudioOuputSelection: ((Bool) -> Void)? var acceptCall: (() -> Void)? var endCall: (() -> Void)? var toggleVideo: (() -> Void)? @@ -139,6 +139,7 @@ final class LegacyCallControllerNode: ASDisplayNode, CallControllerNodeProtocol var presentCallRating: ((CallId) -> Void)? var callEnded: ((Bool) -> Void)? var dismissedInteractively: (() -> Void)? + var present: ((ViewController) -> Void)? var setIsVideoPaused: ((Bool) -> Void)? init(sharedContext: SharedAccountContext, account: Account, presentationData: PresentationData, statusBar: StatusBar, debugInfo: Signal<(String, String), NoError>, shouldStayHiddenUntilConnection: Bool = false, easyDebugAccess: Bool, call: PresentationCall) { @@ -218,7 +219,7 @@ final class LegacyCallControllerNode: ASDisplayNode, CallControllerNodeProtocol } self.buttonsNode.speaker = { [weak self] in - self?.beginAudioOuputSelection?() + self?.beginAudioOuputSelection?(false) } self.buttonsNode.end = { [weak self] in diff --git a/submodules/TelegramCallsUI/Sources/PresentationCall.swift b/submodules/TelegramCallsUI/Sources/PresentationCall.swift index a044f3ceba..a040c6e0ee 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationCall.swift @@ -291,9 +291,9 @@ public final class PresentationCallImpl: PresentationCall { self.enableHighBitrateVideoCalls = enableHighBitrateVideoCalls if self.isVideo { self.videoCapturer = OngoingCallVideoCapturer() - self.statePromise.set(PresentationCallState(state: isOutgoing ? .waiting : .ringing, videoState: .outgoingRequested, remoteVideoState: .active)) + self.statePromise.set(PresentationCallState(state: isOutgoing ? .waiting : .ringing, videoState: .outgoingRequested, remoteVideoState: .active, remoteBatteryLevel: .normal)) } else { - self.statePromise.set(PresentationCallState(state: isOutgoing ? .waiting : .ringing, videoState: self.isVideoPossible ? .possible : .notAvailable, remoteVideoState: .active)) + self.statePromise.set(PresentationCallState(state: isOutgoing ? .waiting : .ringing, videoState: self.isVideoPossible ? .possible : .notAvailable, remoteAudioState: .active, remoteBatteryLevel: .normal)) } self.serializedData = serializedData @@ -444,7 +444,7 @@ public final class PresentationCallImpl: PresentationCall { switch previous.state { case .active: wasActive = true - case .terminated: + case .terminated, .dropping: wasTerminated = true default: break @@ -458,6 +458,7 @@ public final class PresentationCallImpl: PresentationCall { let mappedVideoState: PresentationCallState.VideoState let mappedRemoteVideoState: PresentationCallState.RemoteVideoState + let mappedRemoteBatteryLevel: PresentationCallState.RemoteBatteryLevel if let callContextState = callContextState { switch callContextState.videoState { case .notAvailable: @@ -478,6 +479,12 @@ public final class PresentationCallImpl: PresentationCall { case .active: mappedRemoteVideoState = .active } + switch callContextState.remoteBatteryLevel { + case .normal: + mappedRemoteBatteryLevel = .normal + case .low: + mappedRemoteBatteryLevel = .low + } } else { if self.isVideo { mappedVideoState = .outgoingRequested @@ -491,11 +498,12 @@ public final class PresentationCallImpl: PresentationCall { } else { mappedRemoteVideoState = .inactive } + mappedRemoteBatteryLevel = .normal } switch sessionState.state { case .ringing: - presentationState = PresentationCallState(state: .ringing, videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState) + presentationState = PresentationCallState(state: .ringing, videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState, remoteBatteryLevel: mappedRemoteBatteryLevel) if previous == nil || previousControl == nil { if !self.reportedIncomingCall { self.reportedIncomingCall = true @@ -522,19 +530,19 @@ public final class PresentationCallImpl: PresentationCall { } case .accepting: self.callWasActive = true - presentationState = PresentationCallState(state: .connecting(nil), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState) + presentationState = PresentationCallState(state: .connecting(nil), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState, remoteBatteryLevel: mappedRemoteBatteryLevel) case .dropping: - presentationState = PresentationCallState(state: .terminating, videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState) + presentationState = PresentationCallState(state: .terminating, videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState, remoteBatteryLevel: mappedRemoteBatteryLevel) case let .terminated(id, reason, options): - presentationState = PresentationCallState(state: .terminated(id, reason, self.callWasActive && (options.contains(.reportRating) || self.shouldPresentCallRating)), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState) + presentationState = PresentationCallState(state: .terminated(id, reason, self.callWasActive && (options.contains(.reportRating) || self.shouldPresentCallRating)), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState, remoteBatteryLevel: mappedRemoteBatteryLevel) case let .requesting(ringing): - presentationState = PresentationCallState(state: .requesting(ringing), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState) + presentationState = PresentationCallState(state: .requesting(ringing), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState, remoteBatteryLevel: mappedRemoteBatteryLevel) case let .active(_, _, keyVisualHash, _, _, _, _): self.callWasActive = true if let callContextState = callContextState { switch callContextState.state { case .initializing: - presentationState = PresentationCallState(state: .connecting(keyVisualHash), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState) + presentationState = PresentationCallState(state: .connecting(keyVisualHash), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState, remoteBatteryLevel: mappedRemoteBatteryLevel) case .failed: presentationState = nil self.callSessionManager.drop(internalId: self.internalId, reason: .disconnect, debugLog: .single(nil)) @@ -546,7 +554,7 @@ public final class PresentationCallImpl: PresentationCall { timestamp = CFAbsoluteTimeGetCurrent() self.activeTimestamp = timestamp } - presentationState = PresentationCallState(state: .active(timestamp, reception, keyVisualHash), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState) + presentationState = PresentationCallState(state: .active(timestamp, reception, keyVisualHash), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState, remoteBatteryLevel: mappedRemoteBatteryLevel) case .reconnecting: let timestamp: Double if let activeTimestamp = self.activeTimestamp { @@ -555,10 +563,10 @@ public final class PresentationCallImpl: PresentationCall { timestamp = CFAbsoluteTimeGetCurrent() self.activeTimestamp = timestamp } - presentationState = PresentationCallState(state: .reconnecting(timestamp, reception, keyVisualHash), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState) + presentationState = PresentationCallState(state: .reconnecting(timestamp, reception, keyVisualHash), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState, remoteBatteryLevel: mappedRemoteBatteryLevel) } } else { - presentationState = PresentationCallState(state: .connecting(keyVisualHash), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState) + presentationState = PresentationCallState(state: .connecting(keyVisualHash), videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState, remoteBatteryLevel: mappedRemoteBatteryLevel) } } @@ -617,15 +625,22 @@ public final class PresentationCallImpl: PresentationCall { self.ongoingContext?.stop(debugLogValue: debugLogValue) } } - if case .terminated = sessionState.state, !wasTerminated { + var terminating = false + if case .terminated = sessionState.state { + terminating = true + } else if case .dropping = sessionState.state { + terminating = true + } + + if terminating, !wasTerminated { if !self.didSetCanBeRemoved { self.didSetCanBeRemoved = true - self.canBeRemovedPromise.set(.single(true) |> delay(2.4, queue: Queue.mainQueue())) + self.canBeRemovedPromise.set(.single(true) |> delay(2.0, queue: Queue.mainQueue())) } self.hungUpPromise.set(true) if sessionState.isOutgoing { if !self.droppedCall && self.dropCallKitCallTimer == nil { - let dropCallKitCallTimer = SwiftSignalKit.Timer(timeout: 2.4, repeat: false, completion: { [weak self] in + let dropCallKitCallTimer = SwiftSignalKit.Timer(timeout: 2.0, repeat: false, completion: { [weak self] in if let strongSelf = self { strongSelf.dropCallKitCallTimer = nil if !strongSelf.droppedCall { diff --git a/submodules/TelegramCore/Sources/AccountViewTracker.swift b/submodules/TelegramCore/Sources/AccountViewTracker.swift index dac3508d72..c439133ebb 100644 --- a/submodules/TelegramCore/Sources/AccountViewTracker.swift +++ b/submodules/TelegramCore/Sources/AccountViewTracker.swift @@ -1332,11 +1332,13 @@ public final class AccountViewTracker { if lhsTimestamp != rhsTimestamp { return false } + var lhsVideo = false var lhsMissed = false var lhsOther = false inner: for media in lhs.media { if let action = media as? TelegramMediaAction { - if case let .phoneCall(_, discardReason, _, _) = action.action { + if case let .phoneCall(_, discardReason, _, video) = action.action { + lhsVideo = video if lhs.flags.contains(.Incoming), let discardReason = discardReason, case .missed = discardReason { lhsMissed = true } else { @@ -1346,11 +1348,13 @@ public final class AccountViewTracker { } } } + var rhsVideo = false var rhsMissed = false var rhsOther = false inner: for media in rhs.media { if let action = media as? TelegramMediaAction { - if case let .phoneCall(_, discardReason, _, _) = action.action { + if case let .phoneCall(_, discardReason, _, video) = action.action { + rhsVideo = video if rhs.flags.contains(.Incoming), let discardReason = discardReason, case .missed = discardReason { rhsMissed = true } else { @@ -1360,7 +1364,7 @@ public final class AccountViewTracker { } } } - if lhsMissed != rhsMissed || lhsOther != rhsOther { + if lhsMissed != rhsMissed || lhsOther != rhsOther || lhsVideo != rhsVideo { return false } return true diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index d1b7f7e63c..5b3ccea227 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -1123,4374 +1123,4390 @@ public final class PresentationStrings: Equatable { public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[878]!, self._r[878]!, [_0]) } - public var Conversation_WalletRequiredText: String { return self._s[879]! } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[880]! } - public var OldChannels_NoticeCreateText: String { return self._s[881]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[882]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[883]! } - public var Preview_DeletePhoto: String { return self._s[884]! } - public var Appearance_AppIconFilledX: String { return self._s[885]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[886]! } + public func Call_CameraOff(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[879]!, self._r[879]!, [_0]) + } + public var Conversation_WalletRequiredText: String { return self._s[880]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[881]! } + public var OldChannels_NoticeCreateText: String { return self._s[882]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[883]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[884]! } + public var Preview_DeletePhoto: String { return self._s[885]! } + public var Appearance_AppIconFilledX: String { return self._s[886]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[887]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[887]!, self._r[887]!, [_0]) + return formatWithArgumentRanges(self._s[888]!, self._r[888]!, [_0]) } - public var ChatListFolder_TitleEdit: String { return self._s[890]! } - public var MuteFor_Forever: String { return self._s[891]! } - public var Coub_TapForSound: String { return self._s[892]! } - public var Map_LocatingError: String { return self._s[893]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[895]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[896]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[897]! } + public var ChatListFolder_TitleEdit: String { return self._s[891]! } + public var MuteFor_Forever: String { return self._s[892]! } + public var Coub_TapForSound: String { return self._s[893]! } + public var Map_LocatingError: String { return self._s[894]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[896]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[897]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[898]! } public func Wallet_Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[898]!, self._r[898]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[899]!, self._r[899]!, [_1, _2, _3]) } - public var Passport_ForgottenPassword: String { return self._s[899]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[900]! } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[901]! } - public var Login_TermsOfServiceSignupDecline: String { return self._s[903]! } - public var Channel_Moderator_AccessLevelRevoke: String { return self._s[904]! } - public var Message_Location: String { return self._s[905]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[906]! } - public var Channel_Management_Title: String { return self._s[907]! } - public var DialogList_SearchSectionDialogs: String { return self._s[909]! } - public var Compose_NewChannel_Members: String { return self._s[910]! } + public var Passport_ForgottenPassword: String { return self._s[900]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[901]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[902]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[904]! } + public var Channel_Moderator_AccessLevelRevoke: String { return self._s[905]! } + public var Message_Location: String { return self._s[906]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[907]! } + public var Channel_Management_Title: String { return self._s[908]! } + public var DialogList_SearchSectionDialogs: String { return self._s[910]! } + public var Compose_NewChannel_Members: String { return self._s[911]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[911]!, self._r[911]!, [_0]) + return formatWithArgumentRanges(self._s[912]!, self._r[912]!, [_0]) } - public var GroupInfo_Location: String { return self._s[912]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[913]! } - public var ClearCache_Clear: String { return self._s[914]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[915]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[916]! } - public var PhotoEditor_WarmthTool: String { return self._s[917]! } + public var GroupInfo_Location: String { return self._s[913]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[914]! } + public var ClearCache_Clear: String { return self._s[915]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[916]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[917]! } + public var PhotoEditor_WarmthTool: String { return self._s[918]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[918]!, self._r[918]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[919]!, self._r[919]!, [_1, _2, _3]) } - public var Passport_Language_tr: String { return self._s[919]! } - public var OldChannels_NoticeUpgradeText: String { return self._s[920]! } - public var Login_ResetAccountProtected_Reset: String { return self._s[922]! } - public var Watch_PhotoView_Title: String { return self._s[923]! } - public var Passport_Phone_Delete: String { return self._s[924]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[925]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[926]! } - public var GroupInfo_Permissions: String { return self._s[927]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[928]! } - public var Profile_ShareContactButton: String { return self._s[929]! } - public var ChatSettings_Other: String { return self._s[930]! } - public var UserInfo_NotificationsDisabled: String { return self._s[931]! } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[932]! } - public var LastSeen_WithinAMonth: String { return self._s[933]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[934]! } - public var Conversation_ReportGroupLocation: String { return self._s[935]! } - public var Conversation_EncryptionCanceled: String { return self._s[936]! } - public var MediaPicker_GroupDescription: String { return self._s[937]! } - public var WebSearch_Images: String { return self._s[938]! } + public var Passport_Language_tr: String { return self._s[920]! } + public var OldChannels_NoticeUpgradeText: String { return self._s[921]! } + public var Login_ResetAccountProtected_Reset: String { return self._s[923]! } + public var Watch_PhotoView_Title: String { return self._s[924]! } + public var Passport_Phone_Delete: String { return self._s[925]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[926]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[927]! } + public var GroupInfo_Permissions: String { return self._s[928]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[929]! } + public var Profile_ShareContactButton: String { return self._s[930]! } + public var ChatSettings_Other: String { return self._s[931]! } + public var UserInfo_NotificationsDisabled: String { return self._s[932]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[933]! } + public var LastSeen_WithinAMonth: String { return self._s[934]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[935]! } + public var Conversation_ReportGroupLocation: String { return self._s[936]! } + public var Conversation_EncryptionCanceled: String { return self._s[937]! } + public var MediaPicker_GroupDescription: String { return self._s[938]! } + public var WebSearch_Images: String { return self._s[939]! } public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[939]!, self._r[939]!, [_0]) + return formatWithArgumentRanges(self._s[940]!, self._r[940]!, [_0]) } - public var Message_Photo: String { return self._s[940]! } - public var PasscodeSettings_HelpBottom: String { return self._s[941]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[942]! } - public var Conversation_ContextMenuSendMessage: String { return self._s[943]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[944]! } - public var Passport_Identity_AddDriversLicense: String { return self._s[945]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[946]! } - public var NotificationsSound_Calypso: String { return self._s[947]! } - public var Map_Map: String { return self._s[948]! } + public var Message_Photo: String { return self._s[941]! } + public var PasscodeSettings_HelpBottom: String { return self._s[942]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[943]! } + public var Conversation_ContextMenuSendMessage: String { return self._s[944]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[945]! } + public var Passport_Identity_AddDriversLicense: String { return self._s[946]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[947]! } + public var NotificationsSound_Calypso: String { return self._s[948]! } + public var Map_Map: String { return self._s[949]! } public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[949]!, self._r[949]!, [_0]) + return formatWithArgumentRanges(self._s[950]!, self._r[950]!, [_0]) } - public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[952]! } - public var ChatSettings_TextSizeUnits: String { return self._s[953]! } + public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[953]! } + public var ChatSettings_TextSizeUnits: String { return self._s[954]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[954]!, self._r[954]!, [_0]) + return formatWithArgumentRanges(self._s[955]!, self._r[955]!, [_0]) } - public var Common_of: String { return self._s[955]! } - public var Conversation_ForwardContacts: String { return self._s[958]! } - public var IntentsSettings_SuggestByAll: String { return self._s[960]! } + public var Common_of: String { return self._s[956]! } + public var Conversation_ForwardContacts: String { return self._s[959]! } + public var IntentsSettings_SuggestByAll: String { return self._s[961]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[961]!, self._r[961]!, [_0]) + return formatWithArgumentRanges(self._s[962]!, self._r[962]!, [_0]) } - public var Passport_Language_hy: String { return self._s[962]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[963]! } - public var AutoDownloadSettings_Reset: String { return self._s[964]! } - public var Wallet_TransactionInfo_AddressCopied: String { return self._s[965]! } - public var Paint_ClearConfirm: String { return self._s[966]! } - public var Camera_VideoMode: String { return self._s[967]! } + public var Call_CameraConfirmationText: String { return self._s[963]! } + public var Passport_Language_hy: String { return self._s[964]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[965]! } + public var AutoDownloadSettings_Reset: String { return self._s[966]! } + public var Wallet_TransactionInfo_AddressCopied: String { return self._s[967]! } + public var Paint_ClearConfirm: String { return self._s[968]! } + public var Camera_VideoMode: String { return self._s[969]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[968]!, self._r[968]!, [_0]) + return formatWithArgumentRanges(self._s[970]!, self._r[970]!, [_0]) } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[969]! } - public var Conversation_ViewBackground: String { return self._s[970]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[971]! } + public var Conversation_ViewBackground: String { return self._s[972]! } public func Wallet_Info_TransactionDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[971]!, self._r[971]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[973]!, self._r[973]!, [_1, _2, _3]) } - public var Passport_Language_el: String { return self._s[972]! } - public var PhotoEditor_Original: String { return self._s[973]! } - public var Settings_FAQ_Button: String { return self._s[976]! } - public var Channel_Setup_PublicNoLink: String { return self._s[978]! } - public var Conversation_UnsupportedMedia: String { return self._s[979]! } - public var Conversation_SlideToCancel: String { return self._s[980]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[981]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[982]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[983]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[984]! } - public var Stats_GroupViewers: String { return self._s[985]! } - public var AutoNightTheme_NotAvailable: String { return self._s[986]! } - public var Conversation_Owner: String { return self._s[987]! } - public var Common_Create: String { return self._s[988]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[989]! } - public var ContactList_Context_Call: String { return self._s[990]! } - public var Localization_ChooseLanguage: String { return self._s[992]! } - public var ChatList_Context_AddToContacts: String { return self._s[994]! } - public var OldChannels_NoticeTitle: String { return self._s[995]! } - public var Settings_Proxy: String { return self._s[997]! } - public var Privacy_TopPeersHelp: String { return self._s[998]! } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[999]! } - public var Chat_UnsendMyMessages: String { return self._s[1000]! } + public var Passport_Language_el: String { return self._s[974]! } + public var PhotoEditor_Original: String { return self._s[975]! } + public var Settings_FAQ_Button: String { return self._s[978]! } + public var Channel_Setup_PublicNoLink: String { return self._s[980]! } + public var Conversation_UnsupportedMedia: String { return self._s[981]! } + public var Conversation_SlideToCancel: String { return self._s[982]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[983]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[984]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[985]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[986]! } + public var Stats_GroupViewers: String { return self._s[987]! } + public var AutoNightTheme_NotAvailable: String { return self._s[988]! } + public var Conversation_Owner: String { return self._s[989]! } + public var Common_Create: String { return self._s[990]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[991]! } + public var ContactList_Context_Call: String { return self._s[992]! } + public var Localization_ChooseLanguage: String { return self._s[994]! } + public var ChatList_Context_AddToContacts: String { return self._s[996]! } + public var OldChannels_NoticeTitle: String { return self._s[997]! } + public var Settings_Proxy: String { return self._s[999]! } + public var Privacy_TopPeersHelp: String { return self._s[1000]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[1001]! } + public var Chat_UnsendMyMessages: String { return self._s[1002]! } public func VoiceOver_Chat_Duration(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1001]!, self._r[1001]!, [_0]) + return formatWithArgumentRanges(self._s[1003]!, self._r[1003]!, [_0]) } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[1002]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[1004]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1004]!, self._r[1004]!, [_0]) + return formatWithArgumentRanges(self._s[1006]!, self._r[1006]!, [_0]) } - public var Contacts_SortedByPresence: String { return self._s[1005]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[1006]! } - public var Cache_Title: String { return self._s[1007]! } + public var Contacts_SortedByPresence: String { return self._s[1007]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[1008]! } + public var Cache_Title: String { return self._s[1009]! } public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1008]!, self._r[1008]!, [_0]) + return formatWithArgumentRanges(self._s[1010]!, self._r[1010]!, [_0]) } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[1009]! } - public var Channel_Moderator_Title: String { return self._s[1010]! } - public var InstantPage_AutoNightTheme: String { return self._s[1012]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[1011]! } + public var Channel_Moderator_Title: String { return self._s[1012]! } + public var InstantPage_AutoNightTheme: String { return self._s[1014]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1015]!, self._r[1015]!, [_1]) + return formatWithArgumentRanges(self._s[1017]!, self._r[1017]!, [_1]) } - public var Passport_Scans_Upload: String { return self._s[1016]! } - public var Undo_Undo: String { return self._s[1018]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[1019]! } - public var TwoStepAuth_RemovePassword: String { return self._s[1020]! } - public var Common_Delete: String { return self._s[1021]! } - public var Contacts_AddPeopleNearby: String { return self._s[1023]! } - public var Conversation_ContextMenuDelete: String { return self._s[1024]! } - public var SocksProxySetup_Credentials: String { return self._s[1025]! } - public var Appearance_EditTheme: String { return self._s[1027]! } - public var ClearCache_StorageOtherApps: String { return self._s[1028]! } + public var Passport_Scans_Upload: String { return self._s[1018]! } + public var Undo_Undo: String { return self._s[1020]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[1021]! } + public var TwoStepAuth_RemovePassword: String { return self._s[1022]! } + public var Common_Delete: String { return self._s[1023]! } + public var Contacts_AddPeopleNearby: String { return self._s[1025]! } + public var Conversation_ContextMenuDelete: String { return self._s[1026]! } + public var SocksProxySetup_Credentials: String { return self._s[1027]! } + public var Appearance_EditTheme: String { return self._s[1029]! } + public var ClearCache_StorageOtherApps: String { return self._s[1030]! } public func Conversation_PeerNearbyTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1030]!, self._r[1030]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1032]!, self._r[1032]!, [_1, _2]) } - public var Settings_EditPhoto: String { return self._s[1031]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[1032]! } - public var Wallet_Send_NetworkErrorText: String { return self._s[1033]! } - public var AuthSessions_DevicesTitle: String { return self._s[1035]! } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[1037]! } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1038]! } - public var Passport_Language_id: String { return self._s[1040]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[1041]! } - public var WallpaperSearch_ColorTeal: String { return self._s[1042]! } - public var ChannelIntro_Title: String { return self._s[1043]! } + public var Settings_EditPhoto: String { return self._s[1033]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[1034]! } + public var Wallet_Send_NetworkErrorText: String { return self._s[1035]! } + public var AuthSessions_DevicesTitle: String { return self._s[1037]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[1039]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[1040]! } + public var Passport_Language_id: String { return self._s[1042]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[1043]! } + public var WallpaperSearch_ColorTeal: String { return self._s[1044]! } + public var ChannelIntro_Title: String { return self._s[1045]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1044]!, self._r[1044]!, [_0]) + return formatWithArgumentRanges(self._s[1046]!, self._r[1046]!, [_0]) } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[1046]! } - public var VoiceOver_Chat_Reply: String { return self._s[1047]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[1048]! } - public var Channel_Info_Description: String { return self._s[1049]! } - public var Stickers_FavoriteStickers: String { return self._s[1050]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[1051]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[1052]! } - public var ChatSearch_ResultsTooltip: String { return self._s[1053]! } - public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[1054]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[1055]! } - public var Group_PublicLink_Placeholder: String { return self._s[1056]! } - public var Notifications_ExceptionsDefaultSound: String { return self._s[1057]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[1048]! } + public var VoiceOver_Chat_Reply: String { return self._s[1049]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[1050]! } + public var Channel_Info_Description: String { return self._s[1051]! } + public var Stickers_FavoriteStickers: String { return self._s[1052]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[1053]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[1054]! } + public var ChatSearch_ResultsTooltip: String { return self._s[1055]! } + public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[1056]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[1057]! } + public var Group_PublicLink_Placeholder: String { return self._s[1058]! } + public var Notifications_ExceptionsDefaultSound: String { return self._s[1059]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1058]!, self._r[1058]!, [_1]) + return formatWithArgumentRanges(self._s[1060]!, self._r[1060]!, [_1]) } - public var TextFormat_Underline: String { return self._s[1059]! } + public var TextFormat_Underline: String { return self._s[1061]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1061]!, self._r[1061]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1063]!, self._r[1063]!, [_1, _2]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1062]!, self._r[1062]!, [_0]) + return formatWithArgumentRanges(self._s[1064]!, self._r[1064]!, [_0]) } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[1063]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[1065]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1064]!, self._r[1064]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1066]!, self._r[1066]!, [_1, _2]) } - public var Wallet_Intro_ImportExisting: String { return self._s[1065]! } - public var GroupPermission_Delete: String { return self._s[1066]! } - public var Passport_Language_uk: String { return self._s[1067]! } - public var StickerPack_HideStickers: String { return self._s[1069]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[1070]! } + public var Wallet_Intro_ImportExisting: String { return self._s[1067]! } + public var GroupPermission_Delete: String { return self._s[1068]! } + public var Passport_Language_uk: String { return self._s[1069]! } + public var StickerPack_HideStickers: String { return self._s[1071]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[1072]! } public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1071]!, self._r[1071]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1073]!, self._r[1073]!, [_1, _2]) } - public var Activity_UploadingVideoMessage: String { return self._s[1072]! } + public var Activity_UploadingVideoMessage: String { return self._s[1074]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1073]!, self._r[1073]!, [_0]) + return formatWithArgumentRanges(self._s[1075]!, self._r[1075]!, [_0]) } - public var Channel_TitleInfo: String { return self._s[1074]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[1075]! } - public var Settings_CallSettings: String { return self._s[1076]! } - public var Camera_SquareMode: String { return self._s[1077]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[1078]! } - public var GroupInfo_SharedMediaNone: String { return self._s[1079]! } + public var Channel_TitleInfo: String { return self._s[1076]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[1077]! } + public var Settings_CallSettings: String { return self._s[1078]! } + public var Camera_SquareMode: String { return self._s[1079]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[1080]! } + public var GroupInfo_SharedMediaNone: String { return self._s[1081]! } public func PUSH_MESSAGE_VIDEO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1080]!, self._r[1080]!, [_1]) + return formatWithArgumentRanges(self._s[1082]!, self._r[1082]!, [_1]) } - public var Bot_GenericBotStatus: String { return self._s[1081]! } - public var Application_Update: String { return self._s[1083]! } - public var Month_ShortJanuary: String { return self._s[1084]! } - public var Contacts_PermissionsKeepDisabled: String { return self._s[1085]! } - public var Channel_AdminLog_BanReadMessages: String { return self._s[1086]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[1087]! } - public var Passport_Address_Street2Placeholder: String { return self._s[1088]! } + public var Bot_GenericBotStatus: String { return self._s[1083]! } + public var Application_Update: String { return self._s[1085]! } + public var Month_ShortJanuary: String { return self._s[1086]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[1087]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[1088]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[1089]! } + public var Passport_Address_Street2Placeholder: String { return self._s[1090]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1089]!, self._r[1089]!, [_0]) + return formatWithArgumentRanges(self._s[1091]!, self._r[1091]!, [_0]) } - public var NetworkUsageSettings_Cellular: String { return self._s[1090]! } - public var Appearance_PreviewOutgoingText: String { return self._s[1091]! } + public var NetworkUsageSettings_Cellular: String { return self._s[1092]! } + public var Appearance_PreviewOutgoingText: String { return self._s[1093]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1092]!, self._r[1092]!, [_0]) + return formatWithArgumentRanges(self._s[1094]!, self._r[1094]!, [_0]) } - public var Notifications_PermissionsAllowInSettings: String { return self._s[1093]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[1096]! } - public var Map_Directions: String { return self._s[1097]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[1099]! } - public var Appearance_ThemeDay: String { return self._s[1100]! } - public var LogoutOptions_LogOut: String { return self._s[1101]! } - public var Group_PublicLink_Title: String { return self._s[1103]! } - public var Channel_AddBotErrorNoRights: String { return self._s[1104]! } - public var ChatList_Search_ShowLess: String { return self._s[1107]! } - public var Passport_Identity_AddPassport: String { return self._s[1108]! } - public var LocalGroup_ButtonTitle: String { return self._s[1109]! } - public var Stats_InteractionsTitle: String { return self._s[1110]! } - public var Stats_GroupActionsTitle: String { return self._s[1111]! } - public var Call_Message: String { return self._s[1112]! } - public var PhotoEditor_ExposureTool: String { return self._s[1113]! } - public var Wallet_Receive_CommentInfo: String { return self._s[1115]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1116]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[1118]! } - public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1119]! } - public var Appearance_Preview: String { return self._s[1120]! } - public var Compose_ChannelMembers: String { return self._s[1121]! } - public var Conversation_DeleteManyMessages: String { return self._s[1122]! } - public var ReportPeer_ReasonOther_Title: String { return self._s[1123]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1124]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1125]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[1128]! } - public var Conversation_UpdateTelegram: String { return self._s[1129]! } - public var EditTheme_Create_TopInfo: String { return self._s[1130]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[1095]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[1098]! } + public var Map_Directions: String { return self._s[1099]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[1101]! } + public var Appearance_ThemeDay: String { return self._s[1102]! } + public var LogoutOptions_LogOut: String { return self._s[1103]! } + public var Group_PublicLink_Title: String { return self._s[1105]! } + public var Channel_AddBotErrorNoRights: String { return self._s[1106]! } + public var ChatList_Search_ShowLess: String { return self._s[1109]! } + public var Passport_Identity_AddPassport: String { return self._s[1110]! } + public var LocalGroup_ButtonTitle: String { return self._s[1111]! } + public var Stats_InteractionsTitle: String { return self._s[1112]! } + public var Stats_GroupActionsTitle: String { return self._s[1113]! } + public var Call_Message: String { return self._s[1114]! } + public var PhotoEditor_ExposureTool: String { return self._s[1115]! } + public var Wallet_Receive_CommentInfo: String { return self._s[1117]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1118]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[1120]! } + public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1121]! } + public var Appearance_Preview: String { return self._s[1122]! } + public var Compose_ChannelMembers: String { return self._s[1123]! } + public var Conversation_DeleteManyMessages: String { return self._s[1124]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[1125]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1126]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1127]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[1130]! } + public var Conversation_UpdateTelegram: String { return self._s[1131]! } + public var EditTheme_Create_TopInfo: String { return self._s[1132]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1131]!, self._r[1131]!, [_0]) + return formatWithArgumentRanges(self._s[1133]!, self._r[1133]!, [_0]) } - public var Wallet_WordCheck_Continue: String { return self._s[1132]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[1133]! } - public var IntentsSettings_ResetAll: String { return self._s[1134]! } + public var Wallet_WordCheck_Continue: String { return self._s[1134]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[1135]! } + public var IntentsSettings_ResetAll: String { return self._s[1136]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1135]!, self._r[1135]!, [_1]) + return formatWithArgumentRanges(self._s[1137]!, self._r[1137]!, [_1]) } - public var ChatList_RemoveFolder: String { return self._s[1136]! } - public var GroupInfo_Administrators_Title: String { return self._s[1137]! } - public var Stats_GroupPosters: String { return self._s[1138]! } - public var Stats_MessageTitle: String { return self._s[1139]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[1140]! } + public var ChatList_RemoveFolder: String { return self._s[1138]! } + public var GroupInfo_Administrators_Title: String { return self._s[1139]! } + public var Stats_GroupPosters: String { return self._s[1140]! } + public var Stats_MessageTitle: String { return self._s[1141]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[1142]! } public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1141]!, self._r[1141]!, [_0]) + return formatWithArgumentRanges(self._s[1143]!, self._r[1143]!, [_0]) } - public var Tour_Title3: String { return self._s[1142]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1143]! } - public var Settings_RemoveVideo: String { return self._s[1146]! } - public var Clipboard_SendPhoto: String { return self._s[1148]! } - public var MediaPicker_Videos: String { return self._s[1149]! } - public var Passport_Email_Title: String { return self._s[1150]! } + public var Tour_Title3: String { return self._s[1144]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1145]! } + public var Settings_RemoveVideo: String { return self._s[1148]! } + public var Clipboard_SendPhoto: String { return self._s[1150]! } + public var MediaPicker_Videos: String { return self._s[1151]! } + public var Passport_Email_Title: String { return self._s[1152]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1151]!, self._r[1151]!, [_0]) + return formatWithArgumentRanges(self._s[1153]!, self._r[1153]!, [_0]) } - public var StickerPacksSettings_Title: String { return self._s[1152]! } - public var Conversation_MessageDialogDelete: String { return self._s[1153]! } - public var Privacy_Calls_CustomHelp: String { return self._s[1155]! } - public var Message_Wallpaper: String { return self._s[1156]! } - public var MemberSearch_BotSection: String { return self._s[1157]! } - public var GroupInfo_SetSound: String { return self._s[1158]! } - public var Wallet_Send_EncryptComment: String { return self._s[1159]! } + public var StickerPacksSettings_Title: String { return self._s[1154]! } + public var Conversation_MessageDialogDelete: String { return self._s[1155]! } + public var Privacy_Calls_CustomHelp: String { return self._s[1157]! } + public var Message_Wallpaper: String { return self._s[1158]! } + public var MemberSearch_BotSection: String { return self._s[1159]! } + public var GroupInfo_SetSound: String { return self._s[1160]! } + public var Wallet_Send_EncryptComment: String { return self._s[1161]! } public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1160]!, self._r[1160]!, [_0]) + return formatWithArgumentRanges(self._s[1162]!, self._r[1162]!, [_0]) } - public var Core_ServiceUserStatus: String { return self._s[1161]! } - public var LiveLocationUpdated_JustNow: String { return self._s[1162]! } - public var Call_StatusFailed: String { return self._s[1163]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[1164]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1165]! } - public var TwoStepAuth_SetPassword: String { return self._s[1166]! } - public var Permissions_PeopleNearbyText_v0: String { return self._s[1167]! } + public var Core_ServiceUserStatus: String { return self._s[1163]! } + public var LiveLocationUpdated_JustNow: String { return self._s[1164]! } + public var Call_StatusFailed: String { return self._s[1165]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[1166]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1167]! } + public var TwoStepAuth_SetPassword: String { return self._s[1168]! } + public var Permissions_PeopleNearbyText_v0: String { return self._s[1169]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1169]!, self._r[1169]!, [_0]) + return formatWithArgumentRanges(self._s[1171]!, self._r[1171]!, [_0]) } - public var Calls_SubmitRating: String { return self._s[1170]! } - public var Map_NoPlacesNearby: String { return self._s[1171]! } - public var Profile_Username: String { return self._s[1172]! } - public var Bot_DescriptionTitle: String { return self._s[1173]! } - public var MaskStickerSettings_Title: String { return self._s[1174]! } - public var SharedMedia_CategoryOther: String { return self._s[1175]! } - public var GroupInfo_SetGroupPhoto: String { return self._s[1176]! } - public var Common_NotNow: String { return self._s[1177]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[1178]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[1179]! } - public var Map_Location: String { return self._s[1180]! } - public var Invitation_JoinGroup: String { return self._s[1181]! } - public var AutoDownloadSettings_Title: String { return self._s[1183]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1184]! } - public var Channel_ErrorAddBlocked: String { return self._s[1185]! } - public var ChatList_AddChatsToFolder: String { return self._s[1186]! } - public var Conversation_UnblockUser: String { return self._s[1187]! } - public var EditTheme_Edit_TopInfo: String { return self._s[1188]! } - public var Watch_Bot_Restart: String { return self._s[1189]! } - public var TwoStepAuth_Title: String { return self._s[1190]! } - public var Channel_AdminLog_BanSendMessages: String { return self._s[1191]! } - public var Checkout_ShippingMethod: String { return self._s[1192]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1193]! } + public var Calls_SubmitRating: String { return self._s[1172]! } + public var Map_NoPlacesNearby: String { return self._s[1173]! } + public var Profile_Username: String { return self._s[1174]! } + public var Bot_DescriptionTitle: String { return self._s[1175]! } + public var MaskStickerSettings_Title: String { return self._s[1176]! } + public var SharedMedia_CategoryOther: String { return self._s[1177]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1178]! } + public var Common_NotNow: String { return self._s[1179]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[1180]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[1181]! } + public var Map_Location: String { return self._s[1182]! } + public var Invitation_JoinGroup: String { return self._s[1183]! } + public var AutoDownloadSettings_Title: String { return self._s[1185]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1186]! } + public var Channel_ErrorAddBlocked: String { return self._s[1187]! } + public var ChatList_AddChatsToFolder: String { return self._s[1188]! } + public var Conversation_UnblockUser: String { return self._s[1189]! } + public var EditTheme_Edit_TopInfo: String { return self._s[1190]! } + public var Watch_Bot_Restart: String { return self._s[1191]! } + public var TwoStepAuth_Title: String { return self._s[1192]! } + public var Channel_AdminLog_BanSendMessages: String { return self._s[1193]! } + public var Checkout_ShippingMethod: String { return self._s[1194]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1195]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1194]!, self._r[1194]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1196]!, self._r[1196]!, [_1, _2, _3]) } - public var PeerInfo_ButtonDiscuss: String { return self._s[1195]! } - public var EditTheme_ChangeColors: String { return self._s[1197]! } + public var PeerInfo_ButtonDiscuss: String { return self._s[1197]! } + public var EditTheme_ChangeColors: String { return self._s[1199]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1198]!, self._r[1198]!, [_0]) + return formatWithArgumentRanges(self._s[1200]!, self._r[1200]!, [_0]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1199]!, self._r[1199]!, [_0]) + return formatWithArgumentRanges(self._s[1201]!, self._r[1201]!, [_0]) } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1200]! } - public var Notification_VideoCallMissed: String { return self._s[1202]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1203]! } - public var AuthSessions_TerminateOtherSessions: String { return self._s[1205]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[1206]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[1207]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1208]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1209]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[1210]! } - public var Checkout_PaymentMethod_Title: String { return self._s[1211]! } - public var SocksProxySetup_Connection: String { return self._s[1212]! } - public var Group_MessagePhotoRemoved: String { return self._s[1213]! } - public var PeopleNearby_MakeInvisible: String { return self._s[1215]! } - public var Channel_Stickers_NotFound: String { return self._s[1217]! } - public var Group_About_Help: String { return self._s[1218]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[1219]! } - public var PeopleNearby_Title: String { return self._s[1221]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1202]! } + public var Notification_VideoCallMissed: String { return self._s[1204]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1205]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[1207]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[1208]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[1209]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1210]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1211]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[1212]! } + public var Checkout_PaymentMethod_Title: String { return self._s[1213]! } + public var SocksProxySetup_Connection: String { return self._s[1214]! } + public var Group_MessagePhotoRemoved: String { return self._s[1215]! } + public var PeopleNearby_MakeInvisible: String { return self._s[1217]! } + public var Channel_Stickers_NotFound: String { return self._s[1219]! } + public var Group_About_Help: String { return self._s[1220]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[1221]! } + public var PeopleNearby_Title: String { return self._s[1223]! } public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1222]!, self._r[1222]!, [_1]) + return formatWithArgumentRanges(self._s[1224]!, self._r[1224]!, [_1]) } - public var Map_Home: String { return self._s[1223]! } - public var Stats_ZoomOut: String { return self._s[1224]! } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1226]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1227]! } - public var SocksProxySetup_Password: String { return self._s[1228]! } - public var Notifications_PermissionsEnable: String { return self._s[1229]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[1231]! } + public var Map_Home: String { return self._s[1225]! } + public var Stats_ZoomOut: String { return self._s[1226]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1228]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1229]! } + public var SocksProxySetup_Password: String { return self._s[1230]! } + public var Notifications_PermissionsEnable: String { return self._s[1231]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[1233]! } public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1232]!, self._r[1232]!, [_1]) + return formatWithArgumentRanges(self._s[1234]!, self._r[1234]!, [_1]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1234]!, self._r[1234]!, [_0]) + return formatWithArgumentRanges(self._s[1236]!, self._r[1236]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1235]! } - public var ArchivedPacksAlert_Title: String { return self._s[1236]! } - public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1237]! } - public var Map_PlacesNearby: String { return self._s[1238]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1237]! } + public var ArchivedPacksAlert_Title: String { return self._s[1238]! } + public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1239]! } + public var Map_PlacesNearby: String { return self._s[1240]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1239]!, self._r[1239]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1241]!, self._r[1241]!, [_1, _2, _3]) } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1240]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1243]! } - public var Conversation_StatusTyping: String { return self._s[1244]! } - public var Widget_ApplicationStartRequired: String { return self._s[1245]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[1246]! } - public var Notification_PassportValueProofOfAddress: String { return self._s[1247]! } - public var UserInfo_CreateNewContact: String { return self._s[1248]! } - public var Passport_Identity_FrontSide: String { return self._s[1249]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1250]! } - public var Calls_CallTabTitle: String { return self._s[1251]! } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1252]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1242]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1245]! } + public var Conversation_StatusTyping: String { return self._s[1246]! } + public var Widget_ApplicationStartRequired: String { return self._s[1247]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[1248]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[1249]! } + public var UserInfo_CreateNewContact: String { return self._s[1250]! } + public var Passport_Identity_FrontSide: String { return self._s[1251]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1252]! } + public var Calls_CallTabTitle: String { return self._s[1253]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1254]! } public func Login_BannedPhoneBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1254]!, self._r[1254]!, [_0]) + return formatWithArgumentRanges(self._s[1256]!, self._r[1256]!, [_0]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[1255]! } - public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1256]! } - public var SharedMedia_EmptyMusicText: String { return self._s[1257]! } - public var Wallet_Completed_Text: String { return self._s[1258]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1259]! } - public var Paint_Stickers: String { return self._s[1260]! } - public var Privacy_GroupsAndChannels: String { return self._s[1261]! } - public var ChatList_Context_Delete: String { return self._s[1263]! } - public var UserInfo_AddContact: String { return self._s[1264]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[1257]! } + public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1258]! } + public var SharedMedia_EmptyMusicText: String { return self._s[1259]! } + public var Wallet_Completed_Text: String { return self._s[1260]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1261]! } + public var Paint_Stickers: String { return self._s[1262]! } + public var Privacy_GroupsAndChannels: String { return self._s[1263]! } + public var ChatList_Context_Delete: String { return self._s[1265]! } + public var UserInfo_AddContact: String { return self._s[1266]! } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1265]!, self._r[1265]!, [_0]) + return formatWithArgumentRanges(self._s[1267]!, self._r[1267]!, [_0]) } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1267]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1269]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1269]!, self._r[1269]!, [_0]) + return formatWithArgumentRanges(self._s[1271]!, self._r[1271]!, [_0]) } - public var DialogList_NoMessagesTitle: String { return self._s[1270]! } - public var EditProfile_NameAndPhotoHelp: String { return self._s[1271]! } - public var BlockedUsers_BlockUser: String { return self._s[1272]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1273]! } - public var MediaPicker_UngroupDescription: String { return self._s[1276]! } - public var Watch_NoConnection: String { return self._s[1277]! } - public var Month_GenSeptember: String { return self._s[1278]! } - public var Conversation_ViewGroup: String { return self._s[1280]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1283]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[1284]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1285]! } - public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1286]! } - public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1287]! } - public var MediaPicker_CameraRoll: String { return self._s[1289]! } - public var Month_GenAugust: String { return self._s[1290]! } - public var Wallet_Configuration_SourceHeader: String { return self._s[1291]! } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[1292]! } - public var SharedMedia_EmptyText: String { return self._s[1293]! } - public var Map_ShareLiveLocation: String { return self._s[1294]! } - public var Calls_All: String { return self._s[1295]! } - public var Map_SendThisPlace: String { return self._s[1297]! } - public var Appearance_ThemeNight: String { return self._s[1299]! } - public var Conversation_HoldForAudio: String { return self._s[1300]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[1303]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[1304]! } - public var SocksProxySetup_Secret: String { return self._s[1305]! } + public var DialogList_NoMessagesTitle: String { return self._s[1272]! } + public var EditProfile_NameAndPhotoHelp: String { return self._s[1273]! } + public var BlockedUsers_BlockUser: String { return self._s[1274]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1275]! } + public var MediaPicker_UngroupDescription: String { return self._s[1278]! } + public var Watch_NoConnection: String { return self._s[1279]! } + public var Month_GenSeptember: String { return self._s[1280]! } + public var Conversation_ViewGroup: String { return self._s[1282]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1285]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[1286]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1287]! } + public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1288]! } + public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1289]! } + public var MediaPicker_CameraRoll: String { return self._s[1291]! } + public var Month_GenAugust: String { return self._s[1292]! } + public var Wallet_Configuration_SourceHeader: String { return self._s[1293]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[1294]! } + public var SharedMedia_EmptyText: String { return self._s[1295]! } + public var Map_ShareLiveLocation: String { return self._s[1296]! } + public var Calls_All: String { return self._s[1297]! } + public var Map_SendThisPlace: String { return self._s[1299]! } + public var Appearance_ThemeNight: String { return self._s[1301]! } + public var Conversation_HoldForAudio: String { return self._s[1302]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[1305]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[1306]! } + public var SocksProxySetup_Secret: String { return self._s[1307]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1306]!, self._r[1306]!, [_0]) + return formatWithArgumentRanges(self._s[1308]!, self._r[1308]!, [_0]) } - public var Channel_BanList_RestrictedTitle: String { return self._s[1308]! } - public var Conversation_Location: String { return self._s[1309]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[1310]! } + public var Conversation_Location: String { return self._s[1311]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1310]!, self._r[1310]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1312]!, self._r[1312]!, [_1, _2]) } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[1312]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1313]! } - public var Notifications_PermissionsText: String { return self._s[1314]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1315]! } - public var Call_Flip: String { return self._s[1316]! } - public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1318]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1319]! } - public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1320]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1321]! } - public var Stats_GroupTopAdmin_Promote: String { return self._s[1323]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1324]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1326]! } - public var ChatList_EditFolders: String { return self._s[1328]! } - public var Channel_TooMuchBots: String { return self._s[1329]! } - public var Passport_DeletePassportConfirmation: String { return self._s[1330]! } - public var Login_InvalidCodeError: String { return self._s[1331]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1332]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[1314]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1315]! } + public var Notifications_PermissionsText: String { return self._s[1316]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1317]! } + public var Call_Flip: String { return self._s[1318]! } + public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1320]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1321]! } + public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1322]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1323]! } + public var Stats_GroupTopAdmin_Promote: String { return self._s[1325]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1326]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1328]! } + public var ChatList_EditFolders: String { return self._s[1330]! } + public var Channel_TooMuchBots: String { return self._s[1331]! } + public var Passport_DeletePassportConfirmation: String { return self._s[1332]! } + public var Login_InvalidCodeError: String { return self._s[1333]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1334]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1333]!, self._r[1333]!, [_0]) + return formatWithArgumentRanges(self._s[1335]!, self._r[1335]!, [_0]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1334]!, self._r[1334]!, [_0]) + return formatWithArgumentRanges(self._s[1336]!, self._r[1336]!, [_0]) } - public var VoiceOver_Navigation_ProxySettings: String { return self._s[1335]! } - public var Call_CallInProgressTitle: String { return self._s[1336]! } - public var Month_ShortSeptember: String { return self._s[1337]! } - public var Watch_ChannelInfo_Title: String { return self._s[1338]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1341]! } - public var DialogList_PasscodeLockHelp: String { return self._s[1342]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[1343]! } - public var Wallet_Receive_Title: String { return self._s[1344]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[1345]! } - public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1346]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1347]! } - public var PhotoEditor_CropReset: String { return self._s[1348]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1350]! } - public var Channel_Management_LabelEditor: String { return self._s[1351]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1353]! } - public var PhotoEditor_HighlightsTool: String { return self._s[1354]! } - public var Wallet_Info_WalletCreated: String { return self._s[1355]! } - public var UserInfo_Title: String { return self._s[1356]! } - public var ChatList_HideAction: String { return self._s[1357]! } - public var AccessDenied_Title: String { return self._s[1358]! } - public var DialogList_SearchLabel: String { return self._s[1359]! } - public var Group_Setup_HistoryHidden: String { return self._s[1360]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1361]! } - public var State_Updating: String { return self._s[1363]! } - public var Contacts_TabTitle: String { return self._s[1364]! } - public var Notifications_Badge_CountUnreadMessages: String { return self._s[1366]! } - public var GroupInfo_GroupHistory: String { return self._s[1367]! } - public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1368]! } - public var Wallpaper_SetColor: String { return self._s[1369]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1370]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1371]! } - public var ChatList_ReorderTabs: String { return self._s[1372]! } - public var ChatListFolder_IncludeChatsTitle: String { return self._s[1373]! } - public var Chat_AttachmentLimitReached: String { return self._s[1374]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1375]! } - public var Contacts_NotRegisteredSection: String { return self._s[1376]! } + public var VoiceOver_Navigation_ProxySettings: String { return self._s[1337]! } + public var Call_CallInProgressTitle: String { return self._s[1338]! } + public var Month_ShortSeptember: String { return self._s[1339]! } + public var Watch_ChannelInfo_Title: String { return self._s[1340]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1343]! } + public var DialogList_PasscodeLockHelp: String { return self._s[1344]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[1345]! } + public var Wallet_Receive_Title: String { return self._s[1346]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[1347]! } + public var EditProfile_NameAndPhotoOrVideoHelp: String { return self._s[1348]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1349]! } + public var PhotoEditor_CropReset: String { return self._s[1350]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1352]! } + public var Channel_Management_LabelEditor: String { return self._s[1353]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1355]! } + public var PhotoEditor_HighlightsTool: String { return self._s[1356]! } + public var Wallet_Info_WalletCreated: String { return self._s[1357]! } + public var UserInfo_Title: String { return self._s[1358]! } + public var ChatList_HideAction: String { return self._s[1359]! } + public var AccessDenied_Title: String { return self._s[1360]! } + public var DialogList_SearchLabel: String { return self._s[1361]! } + public var Group_Setup_HistoryHidden: String { return self._s[1362]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1363]! } + public var State_Updating: String { return self._s[1365]! } + public var Contacts_TabTitle: String { return self._s[1366]! } + public var Notifications_Badge_CountUnreadMessages: String { return self._s[1368]! } + public var GroupInfo_GroupHistory: String { return self._s[1369]! } + public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1370]! } + public var Wallpaper_SetColor: String { return self._s[1371]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1372]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1373]! } + public var ChatList_ReorderTabs: String { return self._s[1374]! } + public var ChatListFolder_IncludeChatsTitle: String { return self._s[1375]! } + public var Chat_AttachmentLimitReached: String { return self._s[1376]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1377]! } + public var Contacts_NotRegisteredSection: String { return self._s[1378]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1377]!, self._r[1377]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1379]!, self._r[1379]!, [_1, _2, _3]) } - public var Paint_Clear: String { return self._s[1378]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[1379]! } - public var SocksProxySetup_Connecting: String { return self._s[1380]! } - public var ExplicitContent_AlertChannel: String { return self._s[1381]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[1382]! } - public var Conversation_Contact: String { return self._s[1383]! } - public var Login_CodeExpired: String { return self._s[1384]! } - public var Passport_DiscardMessageAction: String { return self._s[1385]! } - public var ChatList_Context_Unpin: String { return self._s[1386]! } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1387]! } + public var Paint_Clear: String { return self._s[1380]! } + public var Call_Audio: String { return self._s[1381]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[1382]! } + public var SocksProxySetup_Connecting: String { return self._s[1383]! } + public var ExplicitContent_AlertChannel: String { return self._s[1384]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[1385]! } + public var Conversation_Contact: String { return self._s[1386]! } + public var Login_CodeExpired: String { return self._s[1387]! } + public var Passport_DiscardMessageAction: String { return self._s[1388]! } + public var ChatList_Context_Unpin: String { return self._s[1389]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1390]! } public func VoiceOver_Chat_MusicFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1388]!, self._r[1388]!, [_0]) - } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[1389]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1390]! } - public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1391]!, self._r[1391]!, [_0]) } - public var Month_ShortApril: String { return self._s[1392]! } - public var AuthSessions_CurrentSession: String { return self._s[1393]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1396]! } - public var Wallet_Navigation_Cancel: String { return self._s[1398]! } - public var WallpaperPreview_CropTopText: String { return self._s[1399]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1400]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1402]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[1392]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1393]! } + public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1394]!, self._r[1394]!, [_0]) + } + public var Month_ShortApril: String { return self._s[1395]! } + public var AuthSessions_CurrentSession: String { return self._s[1396]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1399]! } + public var Wallet_Navigation_Cancel: String { return self._s[1401]! } + public var WallpaperPreview_CropTopText: String { return self._s[1402]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1403]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1405]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1403]!, self._r[1403]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1406]!, self._r[1406]!, [_0, _1]) } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1404]! } - public var Channel_Setup_TypePrivate: String { return self._s[1406]! } - public var Forward_ChannelReadOnly: String { return self._s[1409]! } - public var PhotoEditor_CurvesBlue: String { return self._s[1410]! } - public var AddContact_SharedContactException: String { return self._s[1411]! } - public var UserInfo_BotPrivacy: String { return self._s[1413]! } - public var Wallet_CreateInvoice_Title: String { return self._s[1414]! } - public var Notification_PassportValueEmail: String { return self._s[1415]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[1416]! } - public var GroupPermission_NewTitle: String { return self._s[1417]! } - public var CallFeedback_ReasonDropped: String { return self._s[1418]! } - public var GroupInfo_Permissions_AddException: String { return self._s[1419]! } - public var Channel_SignMessages_Help: String { return self._s[1422]! } - public var Undo_ChatDeleted: String { return self._s[1424]! } - public var Conversation_ChatBackground: String { return self._s[1425]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1407]! } + public var Channel_Setup_TypePrivate: String { return self._s[1409]! } + public var Forward_ChannelReadOnly: String { return self._s[1412]! } + public var PhotoEditor_CurvesBlue: String { return self._s[1413]! } + public var AddContact_SharedContactException: String { return self._s[1414]! } + public var UserInfo_BotPrivacy: String { return self._s[1416]! } + public var Wallet_CreateInvoice_Title: String { return self._s[1417]! } + public var Notification_PassportValueEmail: String { return self._s[1418]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[1419]! } + public var GroupPermission_NewTitle: String { return self._s[1420]! } + public var CallFeedback_ReasonDropped: String { return self._s[1421]! } + public var GroupInfo_Permissions_AddException: String { return self._s[1422]! } + public var Channel_SignMessages_Help: String { return self._s[1425]! } + public var Undo_ChatDeleted: String { return self._s[1427]! } + public var Conversation_ChatBackground: String { return self._s[1428]! } public func Wallet_WordCheck_Text(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1426]!, self._r[1426]!, [_1, _2, _3]) - } - public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1429]!, self._r[1429]!, [_1, _2, _3]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1430]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1431]! } - public var Passport_Language_pt: String { return self._s[1432]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1433]! } - public var NotificationsSound_Popcorn: String { return self._s[1436]! } - public var AutoNightTheme_Disabled: String { return self._s[1437]! } - public var BlockedUsers_LeavePrefix: String { return self._s[1438]! } - public var WallpaperPreview_CustomColorTopText: String { return self._s[1439]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1440]! } - public var WallpaperSearch_ColorBlue: String { return self._s[1441]! } + public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1432]!, self._r[1432]!, [_1, _2, _3]) + } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1433]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1434]! } + public var Passport_Language_pt: String { return self._s[1435]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1436]! } + public var NotificationsSound_Popcorn: String { return self._s[1439]! } + public var AutoNightTheme_Disabled: String { return self._s[1440]! } + public var BlockedUsers_LeavePrefix: String { return self._s[1441]! } + public var WallpaperPreview_CustomColorTopText: String { return self._s[1442]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1443]! } + public var WallpaperSearch_ColorBlue: String { return self._s[1444]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1442]!, self._r[1442]!, [_0]) + return formatWithArgumentRanges(self._s[1445]!, self._r[1445]!, [_0]) } - public var ChatListFolder_TitleCreate: String { return self._s[1443]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1444]! } - public var SocksProxySetup_UseForCalls: String { return self._s[1445]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[1447]! } - public var PeerInfo_PaneGroups: String { return self._s[1448]! } + public var ChatListFolder_TitleCreate: String { return self._s[1446]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1447]! } + public var SocksProxySetup_UseForCalls: String { return self._s[1448]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[1450]! } + public var PeerInfo_PaneGroups: String { return self._s[1451]! } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1449]!, self._r[1449]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1452]!, self._r[1452]!, ["\(_0)"]) } - public var SocksProxySetup_Hostname: String { return self._s[1452]! } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1453]! } - public var Compose_NewEncryptedChat: String { return self._s[1454]! } - public var Login_CodeFloodError: String { return self._s[1455]! } - public var Calls_TabTitle: String { return self._s[1456]! } - public var Privacy_ProfilePhoto: String { return self._s[1457]! } - public var Passport_Language_he: String { return self._s[1458]! } + public var SocksProxySetup_Hostname: String { return self._s[1455]! } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1456]! } + public var Compose_NewEncryptedChat: String { return self._s[1457]! } + public var Login_CodeFloodError: String { return self._s[1458]! } + public var Calls_TabTitle: String { return self._s[1459]! } + public var Privacy_ProfilePhoto: String { return self._s[1460]! } + public var Passport_Language_he: String { return self._s[1461]! } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1459]!, self._r[1459]!, [_0]) - } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[1460]! } - public var GroupPermission_Title: String { return self._s[1461]! } - public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1462]!, self._r[1462]!, [_0]) } - public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1463]! } - public var GroupPermission_NoChangeInfo: String { return self._s[1464]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[1465]! } - public var Tour_Text1: String { return self._s[1466]! } - public var Channel_EditAdmin_TransferOwnership: String { return self._s[1467]! } - public var Month_ShortFebruary: String { return self._s[1468]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1469]! } - public var ContactList_Context_VideoCall: String { return self._s[1470]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[1463]! } + public var GroupPermission_Title: String { return self._s[1464]! } + public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1465]!, self._r[1465]!, [_0]) + } + public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1466]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1467]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[1468]! } + public var Tour_Text1: String { return self._s[1469]! } + public var Channel_EditAdmin_TransferOwnership: String { return self._s[1470]! } + public var Month_ShortFebruary: String { return self._s[1471]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1472]! } + public var ContactList_Context_VideoCall: String { return self._s[1473]! } public func Wallet_Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1471]!, self._r[1471]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1474]!, self._r[1474]!, [_1, _2, _3]) } - public var NotificationsSound_Glass: String { return self._s[1472]! } - public var Appearance_ThemeNightBlue: String { return self._s[1473]! } - public var CheckoutInfo_Pay: String { return self._s[1474]! } - public var Stats_LanguagesTitle: String { return self._s[1476]! } - public var PeerInfo_ButtonLeave: String { return self._s[1477]! } - public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[1478]! } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1479]! } - public var Call_CallAgain: String { return self._s[1481]! } - public var AttachmentMenu_SendAsFile: String { return self._s[1482]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[1483]! } - public var Passport_InvalidPasswordError: String { return self._s[1484]! } - public var Watch_Message_Game: String { return self._s[1485]! } - public var Stickers_Install: String { return self._s[1486]! } - public var VoiceOver_Chat_Message: String { return self._s[1487]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1488]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[1490]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1491]! } - public var AuthSessions_OtherSessions: String { return self._s[1492]! } - public var Channel_Username_Help: String { return self._s[1493]! } - public var Camera_Title: String { return self._s[1494]! } - public var IntentsSettings_Title: String { return self._s[1496]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1498]! } - public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1499]! } - public var Channel_AdminLog_SendPolls: String { return self._s[1500]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1501]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1502]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1503]! } - public var ScheduledMessages_DeleteMany: String { return self._s[1504]! } - public var Conversation_RestrictedStickers: String { return self._s[1505]! } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[1507]! } - public var UserInfo_TelegramCall: String { return self._s[1509]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1510]! } - public var CreatePoll_OptionsHeader: String { return self._s[1511]! } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1512]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1513]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1514]! } - public var Theme_Colors_Proceed: String { return self._s[1515]! } - public var Passport_Identity_EditPersonalDetails: String { return self._s[1516]! } + public var NotificationsSound_Glass: String { return self._s[1475]! } + public var Appearance_ThemeNightBlue: String { return self._s[1476]! } + public var CheckoutInfo_Pay: String { return self._s[1477]! } + public var Stats_LanguagesTitle: String { return self._s[1479]! } + public var PeerInfo_ButtonLeave: String { return self._s[1480]! } + public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[1481]! } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1482]! } + public var Call_CallAgain: String { return self._s[1484]! } + public var AttachmentMenu_SendAsFile: String { return self._s[1485]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[1486]! } + public var Passport_InvalidPasswordError: String { return self._s[1487]! } + public var Watch_Message_Game: String { return self._s[1488]! } + public var Stickers_Install: String { return self._s[1489]! } + public var VoiceOver_Chat_Message: String { return self._s[1490]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1491]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[1493]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1494]! } + public var AuthSessions_OtherSessions: String { return self._s[1495]! } + public var Channel_Username_Help: String { return self._s[1496]! } + public var Camera_Title: String { return self._s[1497]! } + public var IntentsSettings_Title: String { return self._s[1499]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1501]! } + public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1502]! } + public var Channel_AdminLog_SendPolls: String { return self._s[1503]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1504]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1505]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1506]! } + public var ScheduledMessages_DeleteMany: String { return self._s[1507]! } + public var Conversation_RestrictedStickers: String { return self._s[1508]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[1510]! } + public var UserInfo_TelegramCall: String { return self._s[1512]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1513]! } + public var CreatePoll_OptionsHeader: String { return self._s[1514]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1515]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1516]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1517]! } + public var Theme_Colors_Proceed: String { return self._s[1518]! } + public var Passport_Identity_EditPersonalDetails: String { return self._s[1519]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1517]!, self._r[1517]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1520]!, self._r[1520]!, [_1, _2, _3]) } - public var Wallet_Month_GenAugust: String { return self._s[1518]! } - public var Settings_SaveEditedPhotos: String { return self._s[1519]! } - public var Stats_FollowersBySourceTitle: String { return self._s[1520]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[1521]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1522]! } - public var Conversation_MessageDialogRetry: String { return self._s[1523]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[1524]! } - public var MessagePoll_SubmitVote: String { return self._s[1525]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[1526]! } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1527]! } - public var ChatList_Context_Back: String { return self._s[1528]! } - public var Group_Setup_TypeHeader: String { return self._s[1529]! } - public var Paint_RecentStickers: String { return self._s[1530]! } - public var PhotoEditor_GrainTool: String { return self._s[1531]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[1532]! } - public var EmptyGroupInfo_Line4: String { return self._s[1533]! } - public var Watch_AuthRequired: String { return self._s[1535]! } + public var Wallet_Month_GenAugust: String { return self._s[1521]! } + public var Settings_SaveEditedPhotos: String { return self._s[1522]! } + public var Stats_FollowersBySourceTitle: String { return self._s[1523]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[1524]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1525]! } + public var Conversation_MessageDialogRetry: String { return self._s[1526]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[1527]! } + public var MessagePoll_SubmitVote: String { return self._s[1528]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[1529]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1530]! } + public var ChatList_Context_Back: String { return self._s[1531]! } + public var Group_Setup_TypeHeader: String { return self._s[1532]! } + public var Paint_RecentStickers: String { return self._s[1533]! } + public var PhotoEditor_GrainTool: String { return self._s[1534]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[1535]! } + public var EmptyGroupInfo_Line4: String { return self._s[1536]! } + public var Watch_AuthRequired: String { return self._s[1538]! } public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1536]!, self._r[1536]!, [_0]) + return formatWithArgumentRanges(self._s[1539]!, self._r[1539]!, [_0]) } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1537]! } - public var ChannelIntro_Text: String { return self._s[1538]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[1539]! } - public var GroupPermission_NoSendMedia: String { return self._s[1540]! } - public var Calls_AddTab: String { return self._s[1541]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[1542]! } - public var Channel_AdminLog_EmptyFilterText: String { return self._s[1543]! } - public var Conversation_WalletRequiredSetup: String { return self._s[1544]! } - public var Notification_MessageLifetime1d: String { return self._s[1545]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1546]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1547]! } - public var Passport_Identity_GenderFemale: String { return self._s[1548]! } - public var BlockedUsers_BlockTitle: String { return self._s[1549]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1540]! } + public var ChannelIntro_Text: String { return self._s[1541]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[1542]! } + public var GroupPermission_NoSendMedia: String { return self._s[1543]! } + public var Calls_AddTab: String { return self._s[1544]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[1545]! } + public var Channel_AdminLog_EmptyFilterText: String { return self._s[1546]! } + public var Conversation_WalletRequiredSetup: String { return self._s[1547]! } + public var Notification_MessageLifetime1d: String { return self._s[1548]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1549]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1550]! } + public var Passport_Identity_GenderFemale: String { return self._s[1551]! } + public var BlockedUsers_BlockTitle: String { return self._s[1552]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1550]!, self._r[1550]!, [_1]) + return formatWithArgumentRanges(self._s[1553]!, self._r[1553]!, [_1]) } - public var Weekday_Yesterday: String { return self._s[1551]! } - public var WallpaperSearch_ColorBlack: String { return self._s[1552]! } - public var Settings_Context_Logout: String { return self._s[1553]! } - public var Wallet_Info_UnknownTransaction: String { return self._s[1554]! } - public var ChatList_ArchiveAction: String { return self._s[1555]! } - public var AutoNightTheme_Scheduled: String { return self._s[1556]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1557]! } - public var Settings_Devices: String { return self._s[1558]! } - public var ContactInfo_Note: String { return self._s[1559]! } + public var Weekday_Yesterday: String { return self._s[1554]! } + public var WallpaperSearch_ColorBlack: String { return self._s[1555]! } + public var Settings_Context_Logout: String { return self._s[1556]! } + public var Wallet_Info_UnknownTransaction: String { return self._s[1557]! } + public var ChatList_ArchiveAction: String { return self._s[1558]! } + public var AutoNightTheme_Scheduled: String { return self._s[1559]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1560]! } + public var Settings_Devices: String { return self._s[1561]! } + public var ContactInfo_Note: String { return self._s[1562]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[1563]!, self._r[1563]!, [_1, _2, _3, _4, _5, _6]) } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1561]! } - public var Wallet_Receive_CreateInvoice: String { return self._s[1562]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1563]! } - public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1564]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1564]! } + public var Wallet_Receive_CreateInvoice: String { return self._s[1565]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1566]! } + public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1567]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1565]!, self._r[1565]!, [_1, _2]) - } - public var CreatePoll_Create: String { return self._s[1566]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1567]! } - public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1568]!, self._r[1568]!, [_1, _2]) } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1569]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1570]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[1572]! } - public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1573]!, self._r[1573]!, [_1]) + public var CreatePoll_Create: String { return self._s[1569]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1570]! } + public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1571]!, self._r[1571]!, [_1, _2]) } - public var Preview_OpenInInstagram: String { return self._s[1574]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1575]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1572]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1573]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[1575]! } + public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_1]) + } + public var Preview_OpenInInstagram: String { return self._s[1577]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1578]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1579]!, self._r[1579]!, [_1, _2, _3]) } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1577]!, self._r[1577]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1580]!, self._r[1580]!, [_1, _2]) } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1578]! } - public var ArchivedChats_IntroText3: String { return self._s[1579]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[1580]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1581]! } - public var Wallet_Month_GenSeptember: String { return self._s[1582]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1583]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1581]! } + public var ArchivedChats_IntroText3: String { return self._s[1582]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[1583]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1584]! } + public var Wallet_Month_GenSeptember: String { return self._s[1585]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1586]! } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1584]!, self._r[1584]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1587]!, self._r[1587]!, [_1, _2, _3]) } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1586]! } - public var FastTwoStepSetup_HintSection: String { return self._s[1587]! } - public var Wallpaper_PhotoLibrary: String { return self._s[1588]! } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1589]! } - public var Gif_NoGifsFound: String { return self._s[1590]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[1591]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1592]! } - public var EditTheme_Preview: String { return self._s[1593]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1589]! } + public var FastTwoStepSetup_HintSection: String { return self._s[1590]! } + public var Wallpaper_PhotoLibrary: String { return self._s[1591]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1592]! } + public var Gif_NoGifsFound: String { return self._s[1593]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[1594]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1595]! } + public var EditTheme_Preview: String { return self._s[1596]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1594]!, self._r[1594]!, [_0]) + return formatWithArgumentRanges(self._s[1597]!, self._r[1597]!, [_0]) } - public var GroupInfo_ActionPromote: String { return self._s[1595]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[1596]! } - public var GroupInfo_Permissions_Title: String { return self._s[1597]! } - public var Permissions_ContactsText_v0: String { return self._s[1598]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1599]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1600]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1603]! } - public var Passport_FieldEmailHelp: String { return self._s[1604]! } + public var GroupInfo_ActionPromote: String { return self._s[1598]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[1599]! } + public var GroupInfo_Permissions_Title: String { return self._s[1600]! } + public var Permissions_ContactsText_v0: String { return self._s[1601]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1602]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1603]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1606]! } + public var Passport_FieldEmailHelp: String { return self._s[1607]! } public func Activity_RemindAboutUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1605]!, self._r[1605]!, [_0]) + return formatWithArgumentRanges(self._s[1608]!, self._r[1608]!, [_0]) } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1606]! } - public var Weekday_ShortSaturday: String { return self._s[1607]! } - public var ContactInfo_PhoneLabelMain: String { return self._s[1608]! } - public var Watch_Conversation_UserInfo: String { return self._s[1609]! } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1610]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1611]! } - public var PrivacyLastSeenSettings_Title: String { return self._s[1612]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[1614]! } - public var PhotoEditor_VignetteTool: String { return self._s[1615]! } - public var Conversation_ContextMenuDiscuss: String { return self._s[1616]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1617]! } - public var Passport_Language_et: String { return self._s[1618]! } - public var AppUpgrade_Running: String { return self._s[1619]! } - public var Channel_DiscussionGroup_Info: String { return self._s[1621]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1622]! } - public var Passport_Language_bg: String { return self._s[1623]! } - public var Stickers_NoStickersFound: String { return self._s[1625]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1609]! } + public var Weekday_ShortSaturday: String { return self._s[1610]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[1611]! } + public var Watch_Conversation_UserInfo: String { return self._s[1612]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1613]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1614]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[1615]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[1617]! } + public var PhotoEditor_VignetteTool: String { return self._s[1618]! } + public var Conversation_ContextMenuDiscuss: String { return self._s[1619]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1620]! } + public var Passport_Language_et: String { return self._s[1621]! } + public var AppUpgrade_Running: String { return self._s[1622]! } + public var Channel_DiscussionGroup_Info: String { return self._s[1624]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1625]! } + public var Passport_Language_bg: String { return self._s[1626]! } + public var Stickers_NoStickersFound: String { return self._s[1628]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1627]!, self._r[1627]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1630]!, self._r[1630]!, [_1, _2]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1628]!, self._r[1628]!, [_0]) + return formatWithArgumentRanges(self._s[1631]!, self._r[1631]!, [_0]) } - public var Wallet_Month_GenJuly: String { return self._s[1629]! } - public var Wallet_Receive_AddressHeader: String { return self._s[1631]! } - public var Wallet_Send_AmountText: String { return self._s[1632]! } - public var Settings_About: String { return self._s[1633]! } + public var Wallet_Month_GenJuly: String { return self._s[1632]! } + public var Wallet_Receive_AddressHeader: String { return self._s[1634]! } + public var Wallet_Send_AmountText: String { return self._s[1635]! } + public var Settings_About: String { return self._s[1636]! } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1634]!, self._r[1634]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1637]!, self._r[1637]!, [_0, _1, _2]) } - public var ChatList_Context_MarkAsRead: String { return self._s[1636]! } - public var KeyCommand_NewMessage: String { return self._s[1637]! } - public var Group_ErrorAddBlocked: String { return self._s[1638]! } + public var ChatList_Context_MarkAsRead: String { return self._s[1639]! } + public var KeyCommand_NewMessage: String { return self._s[1640]! } + public var Group_ErrorAddBlocked: String { return self._s[1641]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1639]!, self._r[1639]!, [_0]) + return formatWithArgumentRanges(self._s[1642]!, self._r[1642]!, [_0]) } - public var Map_LocationTitle: String { return self._s[1640]! } - public var ReportGroupLocation_Title: String { return self._s[1641]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1642]! } - public var Cache_ClearProgress: String { return self._s[1643]! } + public var Map_LocationTitle: String { return self._s[1643]! } + public var ReportGroupLocation_Title: String { return self._s[1644]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1645]! } + public var Cache_ClearProgress: String { return self._s[1646]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1644]!, self._r[1644]!, [_0]) + return formatWithArgumentRanges(self._s[1647]!, self._r[1647]!, [_0]) } - public var GroupRemoved_AddToGroup: String { return self._s[1645]! } + public var GroupRemoved_AddToGroup: String { return self._s[1648]! } public func External_OpenIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1646]!, self._r[1646]!, [_0]) + return formatWithArgumentRanges(self._s[1649]!, self._r[1649]!, [_0]) } - public var Passport_UpdateRequiredError: String { return self._s[1647]! } - public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1648]! } + public var Passport_UpdateRequiredError: String { return self._s[1650]! } + public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1651]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1649]!, self._r[1649]!, [_1]) + return formatWithArgumentRanges(self._s[1652]!, self._r[1652]!, [_1]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[1651]! } - public var Passport_Identity_MainPageHelp: String { return self._s[1652]! } - public var PeerInfo_ButtonSearch: String { return self._s[1653]! } - public var Conversation_StatusKickedFromGroup: String { return self._s[1654]! } - public var Passport_Language_ka: String { return self._s[1655]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[1654]! } + public var Passport_Identity_MainPageHelp: String { return self._s[1655]! } + public var PeerInfo_ButtonSearch: String { return self._s[1656]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[1657]! } + public var Passport_Language_ka: String { return self._s[1658]! } public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1656]!, self._r[1656]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1659]!, self._r[1659]!, [_1, _2, _3]) } - public var Call_Decline: String { return self._s[1657]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[1658]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1661]! } + public var Call_Decline: String { return self._s[1660]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[1661]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1664]! } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1662]!, self._r[1662]!, [_0]) + return formatWithArgumentRanges(self._s[1665]!, self._r[1665]!, [_0]) } - public var CallFeedback_Send: String { return self._s[1663]! } - public var EditTheme_EditTitle: String { return self._s[1664]! } + public var CallFeedback_Send: String { return self._s[1666]! } + public var EditTheme_EditTitle: String { return self._s[1667]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1665]!, self._r[1665]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1668]!, self._r[1668]!, [_1, _2]) } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1666]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1669]! } public func Wallet_Updated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1668]!, self._r[1668]!, [_0]) + return formatWithArgumentRanges(self._s[1671]!, self._r[1671]!, [_0]) } - public var Media_SendingOptionsTooltip: String { return self._s[1669]! } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1670]! } - public var Passport_DeletePassport: String { return self._s[1671]! } - public var Appearance_AppIconFilled: String { return self._s[1672]! } - public var Privacy_Calls_P2PAlways: String { return self._s[1673]! } - public var Month_ShortDecember: String { return self._s[1674]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1676]! } + public var Media_SendingOptionsTooltip: String { return self._s[1672]! } + public var Call_YourMicrophoneOff: String { return self._s[1673]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1674]! } + public var Passport_DeletePassport: String { return self._s[1675]! } + public var Appearance_AppIconFilled: String { return self._s[1676]! } + public var Privacy_Calls_P2PAlways: String { return self._s[1677]! } + public var Month_ShortDecember: String { return self._s[1678]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1680]! } public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1677]!, self._r[1677]!, [_0]) + return formatWithArgumentRanges(self._s[1681]!, self._r[1681]!, [_0]) } - public var Channel_Stickers_Searching: String { return self._s[1678]! } - public var Conversation_EncryptedDescription1: String { return self._s[1679]! } - public var Conversation_EncryptedDescription2: String { return self._s[1680]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[1681]! } - public var ChatListFolder_NameUnread: String { return self._s[1683]! } - public var Conversation_EncryptedDescription3: String { return self._s[1684]! } - public var PhotoEditor_SharpenTool: String { return self._s[1685]! } - public var Wallet_Configuration_Title: String { return self._s[1686]! } + public var Channel_Stickers_Searching: String { return self._s[1682]! } + public var Conversation_EncryptedDescription1: String { return self._s[1683]! } + public var Conversation_EncryptedDescription2: String { return self._s[1684]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[1685]! } + public var ChatListFolder_NameUnread: String { return self._s[1687]! } + public var Conversation_EncryptedDescription3: String { return self._s[1688]! } + public var PhotoEditor_SharpenTool: String { return self._s[1689]! } + public var Wallet_Configuration_Title: String { return self._s[1690]! } public func Conversation_AddNameToContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1687]!, self._r[1687]!, [_0]) + return formatWithArgumentRanges(self._s[1691]!, self._r[1691]!, [_0]) } - public var Conversation_EncryptedDescription4: String { return self._s[1690]! } - public var Channel_Members_AddMembers: String { return self._s[1691]! } - public var Wallpaper_Search: String { return self._s[1692]! } + public var Conversation_EncryptedDescription4: String { return self._s[1694]! } + public var Channel_Members_AddMembers: String { return self._s[1695]! } + public var Wallpaper_Search: String { return self._s[1696]! } public func Message_GenericForwardedPsa(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1694]!, self._r[1694]!, [_0]) + return formatWithArgumentRanges(self._s[1698]!, self._r[1698]!, [_0]) } - public var Weekday_Friday: String { return self._s[1695]! } - public var Privacy_ContactsSync: String { return self._s[1696]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1697]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1698]! } + public var Weekday_Friday: String { return self._s[1699]! } + public var Privacy_ContactsSync: String { return self._s[1700]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1701]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1702]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1699]!, self._r[1699]!, [_0]) + return formatWithArgumentRanges(self._s[1703]!, self._r[1703]!, [_0]) } - public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1700]! } - public var GroupInfo_Permissions_Removed: String { return self._s[1701]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[1702]! } - public var Passport_Identity_GenderMale: String { return self._s[1703]! } + public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1704]! } + public var GroupInfo_Permissions_Removed: String { return self._s[1705]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[1706]! } + public var Passport_Identity_GenderMale: String { return self._s[1707]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1704]!, self._r[1704]!, [_0]) + return formatWithArgumentRanges(self._s[1708]!, self._r[1708]!, [_0]) } - public var Notifications_PermissionsKeepDisabled: String { return self._s[1705]! } - public var Conversation_JumpToDate: String { return self._s[1706]! } - public var Contacts_GlobalSearch: String { return self._s[1707]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1708]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[1709]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[1710]! } - public var Profile_MessageLifetime1d: String { return self._s[1711]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[1709]! } + public var Conversation_JumpToDate: String { return self._s[1710]! } + public var Contacts_GlobalSearch: String { return self._s[1711]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1712]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[1713]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[1714]! } + public var Profile_MessageLifetime1d: String { return self._s[1715]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1712]!, self._r[1712]!, [_1, _2]) - } - public var StickerPack_BuiltinPackName: String { return self._s[1715]! } - public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1716]!, self._r[1716]!, [_1, _2]) } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1717]! } - public var Passport_InfoTitle: String { return self._s[1719]! } - public var Notifications_PermissionsUnreachableText: String { return self._s[1720]! } + public var StickerPack_BuiltinPackName: String { return self._s[1719]! } + public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1720]!, self._r[1720]!, [_1, _2]) + } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1721]! } + public var Passport_InfoTitle: String { return self._s[1723]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[1724]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1724]!, self._r[1724]!, [_0]) + return formatWithArgumentRanges(self._s[1728]!, self._r[1728]!, [_0]) } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1725]!, self._r[1725]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1729]!, self._r[1729]!, [_1, _2]) } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1726]! } - public var Profile_BotInfo: String { return self._s[1727]! } - public var Watch_Compose_CreateMessage: String { return self._s[1728]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1729]! } - public var Month_ShortNovember: String { return self._s[1730]! } - public var Conversation_ScamWarning: String { return self._s[1731]! } - public var Wallpaper_SetCustomBackground: String { return self._s[1732]! } - public var Appearance_TextSize_Title: String { return self._s[1733]! } - public var Conversation_ContextMenuOpenProfile: String { return self._s[1734]! } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[1735]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1736]! } - public var NotificationsSound_Chime: String { return self._s[1737]! } - public var Passport_Language_ko: String { return self._s[1739]! } - public var InviteText_URL: String { return self._s[1740]! } - public var TextFormat_Monospace: String { return self._s[1741]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1730]! } + public var Profile_BotInfo: String { return self._s[1731]! } + public var Watch_Compose_CreateMessage: String { return self._s[1732]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1733]! } + public var Month_ShortNovember: String { return self._s[1734]! } + public var Conversation_ScamWarning: String { return self._s[1735]! } + public var Wallpaper_SetCustomBackground: String { return self._s[1736]! } + public var Appearance_TextSize_Title: String { return self._s[1737]! } + public var Conversation_ContextMenuOpenProfile: String { return self._s[1738]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[1739]! } + public func Call_BatteryLow(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1740]!, self._r[1740]!, [_0]) + } + public var Passport_Identity_TranslationsHelp: String { return self._s[1741]! } + public var NotificationsSound_Chime: String { return self._s[1742]! } + public var Passport_Language_ko: String { return self._s[1744]! } + public var InviteText_URL: String { return self._s[1745]! } + public var TextFormat_Monospace: String { return self._s[1746]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1742]!, self._r[1742]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1747]!, self._r[1747]!, [_1, _2, _3]) } - public var EditTheme_Edit_BottomInfo: String { return self._s[1743]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[1748]! } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1744]!, self._r[1744]!, [_0]) + return formatWithArgumentRanges(self._s[1749]!, self._r[1749]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1745]!, self._r[1745]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1750]!, self._r[1750]!, [_1, _2]) } - public var Wallet_Words_Title: String { return self._s[1746]! } - public var Wallet_Month_ShortMay: String { return self._s[1747]! } - public var EditTheme_CreateTitle: String { return self._s[1749]! } - public var Passport_InfoLearnMore: String { return self._s[1750]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[1751]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1752]! } - public var Your_card_has_expired: String { return self._s[1753]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[1754]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1755]! } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1759]! } - public var Conversation_Report: String { return self._s[1761]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1762]! } - public var Notification_MessageLifetime1m: String { return self._s[1763]! } - public var Privacy_ContactsTitle: String { return self._s[1764]! } - public var Conversation_ShareMyContactInfo: String { return self._s[1765]! } - public var Wallet_WordCheck_Title: String { return self._s[1766]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1767]! } - public var Channel_Members_Title: String { return self._s[1768]! } - public var Map_OpenInWaze: String { return self._s[1769]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1770]! } - public var Stats_GroupTopWeekdaysTitle: String { return self._s[1771]! } - public var Login_PhoneBannedError: String { return self._s[1772]! } - public var PeerInfo_GroupAboutItem: String { return self._s[1773]! } + public var Wallet_Words_Title: String { return self._s[1751]! } + public var Wallet_Month_ShortMay: String { return self._s[1752]! } + public var EditTheme_CreateTitle: String { return self._s[1754]! } + public var Passport_InfoLearnMore: String { return self._s[1755]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[1756]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1757]! } + public var Your_card_has_expired: String { return self._s[1758]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[1759]! } + public var Call_AudioRouteMute: String { return self._s[1760]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1761]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1765]! } + public var Conversation_Report: String { return self._s[1767]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1768]! } + public var Notification_MessageLifetime1m: String { return self._s[1769]! } + public var Privacy_ContactsTitle: String { return self._s[1770]! } + public var Conversation_ShareMyContactInfo: String { return self._s[1771]! } + public var Wallet_WordCheck_Title: String { return self._s[1772]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1773]! } + public var Channel_Members_Title: String { return self._s[1774]! } + public var Map_OpenInWaze: String { return self._s[1775]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1776]! } + public var Stats_GroupTopWeekdaysTitle: String { return self._s[1777]! } + public var Login_PhoneBannedError: String { return self._s[1778]! } + public var PeerInfo_GroupAboutItem: String { return self._s[1779]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1774]!, self._r[1774]!, [_0]) + return formatWithArgumentRanges(self._s[1780]!, self._r[1780]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[1775]! } - public var Group_Management_AddModeratorHelp: String { return self._s[1776]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[1777]! } - public var Common_OK: String { return self._s[1778]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1779]! } - public var Wallet_Words_NotDoneResponse: String { return self._s[1780]! } - public var Cache_Music: String { return self._s[1781]! } - public var Wallet_Configuration_SourceURL: String { return self._s[1782]! } - public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1783]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1786]! } - public var ChatList_EmptyChatListEditFilter: String { return self._s[1787]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1788]! } + public var IntentsSettings_MainAccount: String { return self._s[1781]! } + public var Group_Management_AddModeratorHelp: String { return self._s[1782]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[1783]! } + public var Common_OK: String { return self._s[1784]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1785]! } + public var Wallet_Words_NotDoneResponse: String { return self._s[1786]! } + public var Cache_Music: String { return self._s[1787]! } + public var Wallet_Configuration_SourceURL: String { return self._s[1788]! } + public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1789]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1792]! } + public var ChatList_EmptyChatListEditFilter: String { return self._s[1793]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1794]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1789]!, self._r[1789]!, [_1]) + return formatWithArgumentRanges(self._s[1795]!, self._r[1795]!, [_1]) } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1790]!, self._r[1790]!, [_0]) + return formatWithArgumentRanges(self._s[1796]!, self._r[1796]!, [_0]) } - public var TwoFactorSetup_Done_Action: String { return self._s[1791]! } + public var TwoFactorSetup_Done_Action: String { return self._s[1797]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1792]!, self._r[1792]!, [_0]) + return formatWithArgumentRanges(self._s[1798]!, self._r[1798]!, [_0]) } - public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1793]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1795]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[1796]! } - public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1798]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1799]! } - public var State_ConnectingToProxyInfo: String { return self._s[1800]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[1801]! } - public var Message_VideoMessage: String { return self._s[1803]! } - public var ChannelInfo_DeleteChannel: String { return self._s[1804]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1805]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[1806]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1807]! } + public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1799]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1801]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[1802]! } + public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1804]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1805]! } + public var State_ConnectingToProxyInfo: String { return self._s[1806]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[1807]! } + public var Message_VideoMessage: String { return self._s[1809]! } + public var ChannelInfo_DeleteChannel: String { return self._s[1810]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1811]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[1812]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1813]! } public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1808]!, self._r[1808]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1814]!, self._r[1814]!, [_1, _2, _3]) } - public var WallpaperPreview_SwipeBottomText: String { return self._s[1809]! } - public var Activity_RecordingAudio: String { return self._s[1810]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[1811]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1812]! } - public var Wallet_Info_Address: String { return self._s[1813]! } - public var Notification_VideoCallCanceled: String { return self._s[1814]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[1815]! } + public var Activity_RecordingAudio: String { return self._s[1816]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[1817]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1818]! } + public var Wallet_Info_Address: String { return self._s[1819]! } + public var Notification_VideoCallCanceled: String { return self._s[1820]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1816]!, self._r[1816]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1822]!, self._r[1822]!, [_0, _1]) } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1820]!, self._r[1820]!, [_0]) + return formatWithArgumentRanges(self._s[1826]!, self._r[1826]!, [_0]) } - public var ChatList_RemoveFolderConfirmation: String { return self._s[1821]! } - public var Conversation_ApplyLocalization: String { return self._s[1822]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[1827]! } + public var Conversation_ApplyLocalization: String { return self._s[1828]! } public func Conversation_PeerNearbyDistance(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1823]!, self._r[1823]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1829]!, self._r[1829]!, [_1, _2]) } - public var TwoFactorSetup_Intro_Action: String { return self._s[1824]! } - public var UserInfo_AddPhone: String { return self._s[1826]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1827]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1830]! } + public var UserInfo_AddPhone: String { return self._s[1832]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1833]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1828]!, self._r[1828]!, [_0]) + return formatWithArgumentRanges(self._s[1834]!, self._r[1834]!, [_0]) } - public var ChatListFolder_CategoryArchived: String { return self._s[1830]! } - public var Call_IncomingVideoCall: String { return self._s[1831]! } - public var Passport_Scans: String { return self._s[1832]! } - public var BlockedUsers_Unblock: String { return self._s[1833]! } + public var ChatListFolder_CategoryArchived: String { return self._s[1836]! } + public var Call_IncomingVideoCall: String { return self._s[1837]! } + public var Passport_Scans: String { return self._s[1838]! } + public var BlockedUsers_Unblock: String { return self._s[1839]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1834]!, self._r[1834]!, [_1]) + return formatWithArgumentRanges(self._s[1840]!, self._r[1840]!, [_1]) } - public var Channel_Management_LabelCreator: String { return self._s[1835]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[1836]! } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1837]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1838]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1839]! } + public var Channel_Management_LabelCreator: String { return self._s[1841]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[1842]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1843]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1844]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1845]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1840]!, self._r[1840]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1846]!, self._r[1846]!, [_0, _1, _2]) + } + public var Login_PhoneNumberHelp: String { return self._s[1847]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1848]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[1849]! } + public var ChannelIntro_CreateChannel: String { return self._s[1850]! } + public var Conversation_UnreadMessages: String { return self._s[1851]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1852]! } + public var Channel_AdminLog_EmptyText: String { return self._s[1853]! } + public var Theme_Context_Apply: String { return self._s[1854]! } + public var Notification_GroupActivated: String { return self._s[1855]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[1856]! } + public var Wallet_Intro_CreateWallet: String { return self._s[1857]! } + public func Call_MicrophoneOff(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1858]!, self._r[1858]!, [_0]) } - public var Login_PhoneNumberHelp: String { return self._s[1841]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1842]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[1843]! } - public var ChannelIntro_CreateChannel: String { return self._s[1844]! } - public var Conversation_UnreadMessages: String { return self._s[1845]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1846]! } - public var Channel_AdminLog_EmptyText: String { return self._s[1847]! } - public var Theme_Context_Apply: String { return self._s[1848]! } - public var Notification_GroupActivated: String { return self._s[1849]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[1850]! } - public var Wallet_Intro_CreateWallet: String { return self._s[1851]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1852]!, self._r[1852]!, [_0]) - } - public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1853]!, self._r[1853]!, [_0, _1]) - } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1855]! } - public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1856]!, self._r[1856]!, [_0]) - } - public var Undo_DeletedChannel: String { return self._s[1857]! } - public var CallFeedback_AddComment: String { return self._s[1858]! } - public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1859]!, self._r[1859]!, [_0]) } - public var Document_TargetConfirmationFormat: String { return self._s[1860]! } + public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1860]!, self._r[1860]!, [_0, _1]) + } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1862]! } + public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1863]!, self._r[1863]!, [_0]) + } + public var Undo_DeletedChannel: String { return self._s[1864]! } + public var CallFeedback_AddComment: String { return self._s[1865]! } + public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1866]!, self._r[1866]!, [_0]) + } + public var Document_TargetConfirmationFormat: String { return self._s[1867]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1861]!, self._r[1861]!, [_0]) + return formatWithArgumentRanges(self._s[1868]!, self._r[1868]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[1862]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[1869]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1863]!, self._r[1863]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[1870]!, self._r[1870]!, [_1, _2, _3, _4]) } - public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1864]! } - public var Theme_ErrorNotFound: String { return self._s[1865]! } - public var Contacts_SortByName: String { return self._s[1866]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1867]! } + public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1871]! } + public var Theme_ErrorNotFound: String { return self._s[1872]! } + public var Contacts_SortByName: String { return self._s[1873]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1874]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1870]!, self._r[1870]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1877]!, self._r[1877]!, [_1, _2, _3]) } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1871]! } - public var ScheduledMessages_EditTime: String { return self._s[1872]! } - public var Conversation_ClearSelfHistory: String { return self._s[1873]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1874]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[1875]! } - public var Stickers_SuggestNone: String { return self._s[1876]! } - public var ChatSettings_Cache: String { return self._s[1877]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1878]! } - public var Media_ShareThisPhoto: String { return self._s[1879]! } - public var Chat_SlowmodeTooltipPending: String { return self._s[1880]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1881]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1882]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1883]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1884]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1885]! } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1886]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1878]! } + public var ScheduledMessages_EditTime: String { return self._s[1879]! } + public var Conversation_ClearSelfHistory: String { return self._s[1880]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1881]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[1882]! } + public var Stickers_SuggestNone: String { return self._s[1883]! } + public var ChatSettings_Cache: String { return self._s[1884]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1885]! } + public var Media_ShareThisPhoto: String { return self._s[1886]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[1887]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1888]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1889]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1890]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1891]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1892]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1893]! } public func Wallet_SecureStorageReset_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1887]!, self._r[1887]!, [_0]) + return formatWithArgumentRanges(self._s[1894]!, self._r[1894]!, [_0]) } - public var PhotoEditor_BlurToolPortrait: String { return self._s[1888]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[1889]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1891]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1892]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[1893]! } - public var Map_OpenIn: String { return self._s[1894]! } - public var PeerInfo_ButtonCall: String { return self._s[1895]! } + public var PhotoEditor_BlurToolPortrait: String { return self._s[1895]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[1896]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1898]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1899]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[1900]! } + public var Map_OpenIn: String { return self._s[1901]! } + public var PeerInfo_ButtonCall: String { return self._s[1902]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1899]!, self._r[1899]!, [_1]) + return formatWithArgumentRanges(self._s[1906]!, self._r[1906]!, [_1]) } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1900]!, self._r[1900]!, [_0]) + return formatWithArgumentRanges(self._s[1907]!, self._r[1907]!, [_0]) } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1901]! } - public var MessagePoll_LabelClosed: String { return self._s[1902]! } - public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1904]! } - public var Wallet_Send_SendAnyway: String { return self._s[1905]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1906]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[1907]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1908]! } - public var Map_SetThisPlace: String { return self._s[1909]! } - public var Stats_GroupTopAdmin_Actions: String { return self._s[1910]! } - public var Login_SelectCountry_Title: String { return self._s[1911]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1912]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1908]! } + public var MessagePoll_LabelClosed: String { return self._s[1909]! } + public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1911]! } + public var Wallet_Send_SendAnyway: String { return self._s[1912]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1913]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[1914]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1915]! } + public var Map_SetThisPlace: String { return self._s[1916]! } + public var Stats_GroupTopAdmin_Actions: String { return self._s[1917]! } + public var Login_SelectCountry_Title: String { return self._s[1918]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1919]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1913]!, self._r[1913]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1920]!, self._r[1920]!, [_1, _2]) } - public var Channel_AdminLog_ChangeInfo: String { return self._s[1914]! } - public var Watch_Suggestion_BRB: String { return self._s[1915]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1916]! } - public var Contacts_PermissionsTitle: String { return self._s[1917]! } - public var Conversation_RestrictedInline: String { return self._s[1918]! } - public var Appearance_RemoveThemeColor: String { return self._s[1920]! } - public var StickerPack_ViewPack: String { return self._s[1921]! } - public var Wallet_UnknownError: String { return self._s[1922]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[1921]! } + public var Watch_Suggestion_BRB: String { return self._s[1922]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1923]! } + public var Contacts_PermissionsTitle: String { return self._s[1924]! } + public var Conversation_RestrictedInline: String { return self._s[1925]! } + public var Appearance_RemoveThemeColor: String { return self._s[1927]! } + public var StickerPack_ViewPack: String { return self._s[1928]! } + public var Wallet_UnknownError: String { return self._s[1929]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1923]!, self._r[1923]!, [_0]) + return formatWithArgumentRanges(self._s[1930]!, self._r[1930]!, [_0]) } - public var Compose_NewChannel: String { return self._s[1925]! } - public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1929]! } - public var MessagePoll_LabelQuiz: String { return self._s[1931]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1932]! } - public var Channel_Info_Stickers: String { return self._s[1933]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[1934]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1935]! } - public var Passport_DeletePersonalDetails: String { return self._s[1936]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[1937]! } - public var Channel_DiscussionGroupInfo: String { return self._s[1938]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1939]! } - public var Stats_LoadingText: String { return self._s[1942]! } - public var Conversation_SearchNoResults: String { return self._s[1943]! } - public var ChatList_AddFolder: String { return self._s[1944]! } - public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1945]! } - public var ChatListFolder_NameNonContacts: String { return self._s[1946]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1947]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1948]! } - public var Login_Code: String { return self._s[1949]! } - public var EditTheme_Create_BottomInfo: String { return self._s[1950]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[1951]! } - public var Weekday_ShortThursday: String { return self._s[1952]! } - public var Notification_VideoCallOutgoing: String { return self._s[1953]! } - public var Resolve_ErrorNotFound: String { return self._s[1954]! } - public var LastSeen_Offline: String { return self._s[1956]! } - public var PeopleNearby_NoMembers: String { return self._s[1957]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[1958]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1959]! } - public var Conversation_Dice_u1F3AF: String { return self._s[1961]! } - public var GroupInfo_Title: String { return self._s[1962]! } - public var NotificationsSound_Note: String { return self._s[1963]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1964]! } - public var Watch_Message_Poll: String { return self._s[1965]! } - public var Privacy_Calls: String { return self._s[1966]! } + public var Compose_NewChannel: String { return self._s[1932]! } + public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1936]! } + public var MessagePoll_LabelQuiz: String { return self._s[1938]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1939]! } + public var Channel_Info_Stickers: String { return self._s[1940]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[1941]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1942]! } + public var Passport_DeletePersonalDetails: String { return self._s[1943]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[1944]! } + public var Channel_DiscussionGroupInfo: String { return self._s[1945]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1946]! } + public var Stats_LoadingText: String { return self._s[1949]! } + public var Conversation_SearchNoResults: String { return self._s[1950]! } + public var ChatList_AddFolder: String { return self._s[1951]! } + public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1952]! } + public var ChatListFolder_NameNonContacts: String { return self._s[1953]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1954]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1955]! } + public var Login_Code: String { return self._s[1956]! } + public var EditTheme_Create_BottomInfo: String { return self._s[1957]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[1958]! } + public var Weekday_ShortThursday: String { return self._s[1959]! } + public var Notification_VideoCallOutgoing: String { return self._s[1960]! } + public var Resolve_ErrorNotFound: String { return self._s[1961]! } + public var LastSeen_Offline: String { return self._s[1963]! } + public var PeopleNearby_NoMembers: String { return self._s[1964]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[1965]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1966]! } + public var Conversation_Dice_u1F3AF: String { return self._s[1968]! } + public var GroupInfo_Title: String { return self._s[1969]! } + public var NotificationsSound_Note: String { return self._s[1970]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1971]! } + public var Watch_Message_Poll: String { return self._s[1972]! } + public var Privacy_Calls: String { return self._s[1973]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1967]!, self._r[1967]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1974]!, self._r[1974]!, [_1, _2, _3]) } - public var Month_ShortAugust: String { return self._s[1968]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[1969]! } - public var Notifications_Reset: String { return self._s[1970]! } - public var Conversation_Pin: String { return self._s[1971]! } - public var Passport_Language_lv: String { return self._s[1972]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1973]! } - public var BlockedUsers_Info: String { return self._s[1974]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1976]! } - public var Watch_Conversation_Unblock: String { return self._s[1978]! } + public var Month_ShortAugust: String { return self._s[1975]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[1976]! } + public var Notifications_Reset: String { return self._s[1977]! } + public var Conversation_Pin: String { return self._s[1978]! } + public var Passport_Language_lv: String { return self._s[1979]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1980]! } + public var BlockedUsers_Info: String { return self._s[1981]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1983]! } + public var Watch_Conversation_Unblock: String { return self._s[1985]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1979]!, self._r[1979]!, [_0]) + return formatWithArgumentRanges(self._s[1986]!, self._r[1986]!, [_0]) } - public var CloudStorage_Title: String { return self._s[1980]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1981]! } + public var CloudStorage_Title: String { return self._s[1987]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1988]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1982]!, self._r[1982]!, [_0]) + return formatWithArgumentRanges(self._s[1989]!, self._r[1989]!, [_0]) } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1983]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1984]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1985]! } - public var Passport_Address_EditBankStatement: String { return self._s[1986]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1990]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1991]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1992]! } + public var Passport_Address_EditBankStatement: String { return self._s[1993]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1987]!, self._r[1987]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1994]!, self._r[1994]!, [_1, _2]) } - public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1988]! } - public var ShareMenu_Comment: String { return self._s[1989]! } - public var Permissions_ContactsTitle_v0: String { return self._s[1990]! } - public var Notifications_PermissionsTitle: String { return self._s[1991]! } - public var GroupPermission_NoSendLinks: String { return self._s[1992]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1993]! } - public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1994]! } - public var PeerInfo_PaneLinks: String { return self._s[1995]! } - public var Settings_Support: String { return self._s[1996]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1997]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1998]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[1999]! } - public var Privacy_Forwards_Preview: String { return self._s[2000]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[2001]! } - public var Watch_Stickers_StickerPacks: String { return self._s[2002]! } - public var Common_Select: String { return self._s[2004]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[2005]! } - public var WallpaperSearch_ColorGray: String { return self._s[2008]! } - public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[2009]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2010]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[2011]! } - public var PollResults_Title: String { return self._s[2012]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[2013]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[2014]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[2015]! } - public var Widget_AuthRequired: String { return self._s[2016]! } - public var ProfilePhoto_OpenInEditor: String { return self._s[2017]! } - public var Camera_FlashOn: String { return self._s[2018]! } - public var Conversation_ContextMenuLookUp: String { return self._s[2019]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[2020]! } - public var Watch_Suggestion_OK: String { return self._s[2021]! } + public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1995]! } + public var ShareMenu_Comment: String { return self._s[1996]! } + public var Permissions_ContactsTitle_v0: String { return self._s[1997]! } + public var Notifications_PermissionsTitle: String { return self._s[1998]! } + public var GroupPermission_NoSendLinks: String { return self._s[1999]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[2000]! } + public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[2001]! } + public var PeerInfo_PaneLinks: String { return self._s[2002]! } + public var Settings_Support: String { return self._s[2003]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[2004]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2005]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[2006]! } + public var Privacy_Forwards_Preview: String { return self._s[2007]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[2008]! } + public var Watch_Stickers_StickerPacks: String { return self._s[2009]! } + public var Common_Select: String { return self._s[2011]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[2012]! } + public var WallpaperSearch_ColorGray: String { return self._s[2015]! } + public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[2016]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2017]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[2018]! } + public var PollResults_Title: String { return self._s[2019]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[2020]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[2021]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[2022]! } + public var Widget_AuthRequired: String { return self._s[2023]! } + public var ProfilePhoto_OpenInEditor: String { return self._s[2024]! } + public var Camera_FlashOn: String { return self._s[2025]! } + public var Conversation_ContextMenuLookUp: String { return self._s[2026]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[2027]! } + public var Watch_Suggestion_OK: String { return self._s[2028]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2023]!, self._r[2023]!, [_0]) + return formatWithArgumentRanges(self._s[2030]!, self._r[2030]!, [_0]) } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2025]!, self._r[2025]!, [_0]) + return formatWithArgumentRanges(self._s[2032]!, self._r[2032]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[2026]! } - public var DialogList_AdLabel: String { return self._s[2027]! } - public var WatchRemote_NotificationText: String { return self._s[2028]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[2029]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2030]! } - public var Conversation_ReportSpam: String { return self._s[2031]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[2032]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[2034]! } - public var PhoneLabel_Title: String { return self._s[2035]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[2036]! } - public var Settings_ChangePhoneNumber: String { return self._s[2037]! } - public var Notifications_ExceptionsTitle: String { return self._s[2038]! } - public var Notifications_AlertTones: String { return self._s[2039]! } - public var Call_ReportIncludeLogDescription: String { return self._s[2040]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2041]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[2042]! } - public var VoiceOver_Chat_Photo: String { return self._s[2044]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[2045]! } - public var Stats_PostsTitle: String { return self._s[2046]! } - public var ReportPeer_ReasonOther: String { return self._s[2047]! } - public var ChatList_Context_JoinChannel: String { return self._s[2048]! } - public var PhotoEditor_SkinTool: String { return self._s[2049]! } - public var KeyCommand_ScrollDown: String { return self._s[2051]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[2052]! } + public var TextFormat_Strikethrough: String { return self._s[2033]! } + public var DialogList_AdLabel: String { return self._s[2034]! } + public var WatchRemote_NotificationText: String { return self._s[2035]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[2036]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2037]! } + public var Conversation_ReportSpam: String { return self._s[2038]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[2039]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[2041]! } + public var PhoneLabel_Title: String { return self._s[2042]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[2043]! } + public var Settings_ChangePhoneNumber: String { return self._s[2044]! } + public var Notifications_ExceptionsTitle: String { return self._s[2045]! } + public var Notifications_AlertTones: String { return self._s[2046]! } + public var Call_ReportIncludeLogDescription: String { return self._s[2047]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2048]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[2049]! } + public var VoiceOver_Chat_Photo: String { return self._s[2051]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[2052]! } + public var Stats_PostsTitle: String { return self._s[2053]! } + public var ReportPeer_ReasonOther: String { return self._s[2054]! } + public var ChatList_Context_JoinChannel: String { return self._s[2055]! } + public var PhotoEditor_SkinTool: String { return self._s[2056]! } + public var KeyCommand_ScrollDown: String { return self._s[2058]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[2059]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2053]!, self._r[2053]!, [_0]) + return formatWithArgumentRanges(self._s[2060]!, self._r[2060]!, [_0]) } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[2055]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[2056]! } - public var AuthSessions_LogOut: String { return self._s[2057]! } - public var Passport_Identity_TypeInternalPassport: String { return self._s[2058]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[2059]! } - public var Passport_Phone_Title: String { return self._s[2060]! } - public var ContactList_Context_StartSecretChat: String { return self._s[2061]! } - public var Settings_PhoneNumber: String { return self._s[2062]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[2062]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[2063]! } + public var AuthSessions_LogOut: String { return self._s[2064]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[2065]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[2066]! } + public var Passport_Phone_Title: String { return self._s[2067]! } + public var ContactList_Context_StartSecretChat: String { return self._s[2068]! } + public var Settings_PhoneNumber: String { return self._s[2069]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2063]!, self._r[2063]!, [_0]) + return formatWithArgumentRanges(self._s[2070]!, self._r[2070]!, [_0]) } - public var NotificationsSound_Alert: String { return self._s[2065]! } - public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[2066]! } - public var WebSearch_SearchNoResults: String { return self._s[2067]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[2069]! } - public var Wallet_Configuration_SourceInfo: String { return self._s[2070]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[2071]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[2072]! } - public var PhotoEditor_CurvesTool: String { return self._s[2073]! } - public var Checkout_PaymentMethod: String { return self._s[2075]! } + public var NotificationsSound_Alert: String { return self._s[2072]! } + public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[2073]! } + public var WebSearch_SearchNoResults: String { return self._s[2074]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[2076]! } + public var Wallet_Configuration_SourceInfo: String { return self._s[2077]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[2078]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[2079]! } + public var PhotoEditor_CurvesTool: String { return self._s[2080]! } + public var Checkout_PaymentMethod: String { return self._s[2082]! } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2076]!, self._r[2076]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2083]!, self._r[2083]!, [_1, _2]) } - public var Contacts_AccessDeniedError: String { return self._s[2077]! } - public var Camera_PhotoMode: String { return self._s[2080]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[2081]! } - public var Appearance_TextSize_Apply: String { return self._s[2082]! } - public var Passport_Address_AddUtilityBill: String { return self._s[2084]! } - public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2085]! } - public var CallSettings_OnMobile: String { return self._s[2086]! } - public var Tour_Text2: String { return self._s[2087]! } + public var Contacts_AccessDeniedError: String { return self._s[2084]! } + public var Camera_PhotoMode: String { return self._s[2087]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[2088]! } + public var Appearance_TextSize_Apply: String { return self._s[2089]! } + public var Passport_Address_AddUtilityBill: String { return self._s[2091]! } + public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2092]! } + public var CallSettings_OnMobile: String { return self._s[2093]! } + public var Tour_Text2: String { return self._s[2094]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2095]!, self._r[2095]!, [_1, _2]) } - public var DialogList_EncryptionProcessing: String { return self._s[2090]! } - public var Permissions_Skip: String { return self._s[2091]! } - public var Wallet_Words_NotDoneOk: String { return self._s[2092]! } - public var SecretImage_Title: String { return self._s[2093]! } - public var Watch_MessageView_Title: String { return self._s[2094]! } - public var Channel_DiscussionGroupAdd: String { return self._s[2095]! } - public var AttachmentMenu_Poll: String { return self._s[2096]! } + public var DialogList_EncryptionProcessing: String { return self._s[2097]! } + public var Permissions_Skip: String { return self._s[2098]! } + public var Wallet_Words_NotDoneOk: String { return self._s[2099]! } + public var SecretImage_Title: String { return self._s[2100]! } + public var Watch_MessageView_Title: String { return self._s[2101]! } + public var Channel_DiscussionGroupAdd: String { return self._s[2102]! } + public var AttachmentMenu_Poll: String { return self._s[2103]! } public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2097]!, self._r[2097]!, [_0]) + return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_0]) } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2098]!, self._r[2098]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2105]!, self._r[2105]!, [_1, _2]) } - public var Notification_CallCanceled: String { return self._s[2099]! } - public var WallpaperPreview_Title: String { return self._s[2100]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[2101]! } - public var Settings_ProxyConnecting: String { return self._s[2102]! } - public var Settings_CheckPhoneNumberText: String { return self._s[2104]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[2105]! } - public var Wallet_Intro_Title: String { return self._s[2106]! } - public var TwoFactorSetup_Password_Action: String { return self._s[2107]! } - public var Profile_MessageLifetime5s: String { return self._s[2108]! } - public var Username_InvalidCharacters: String { return self._s[2109]! } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2110]! } - public var ScheduledMessages_ClearAll: String { return self._s[2111]! } - public var Group_MessageVideoUpdated: String { return self._s[2112]! } - public var WallpaperPreview_CropBottomText: String { return self._s[2113]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[2114]! } - public var Settings_AddAccount: String { return self._s[2115]! } - public var Notification_CreatedChannel: String { return self._s[2118]! } + public var Notification_CallCanceled: String { return self._s[2106]! } + public var WallpaperPreview_Title: String { return self._s[2107]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[2108]! } + public var Settings_ProxyConnecting: String { return self._s[2109]! } + public var Settings_CheckPhoneNumberText: String { return self._s[2111]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[2112]! } + public var Wallet_Intro_Title: String { return self._s[2113]! } + public var TwoFactorSetup_Password_Action: String { return self._s[2114]! } + public var Profile_MessageLifetime5s: String { return self._s[2115]! } + public var Username_InvalidCharacters: String { return self._s[2116]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2117]! } + public var ScheduledMessages_ClearAll: String { return self._s[2118]! } + public var Group_MessageVideoUpdated: String { return self._s[2119]! } + public var WallpaperPreview_CropBottomText: String { return self._s[2120]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[2121]! } + public var Settings_AddAccount: String { return self._s[2122]! } + public var Notification_CreatedChannel: String { return self._s[2125]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2119]!, self._r[2119]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2126]!, self._r[2126]!, [_1, _2, _3]) } - public var Passcode_AppLockedAlert: String { return self._s[2121]! } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[2122]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[2123]! } - public var Contacts_TopSection: String { return self._s[2124]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[2125]! } + public var Passcode_AppLockedAlert: String { return self._s[2128]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[2129]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[2130]! } + public var Contacts_TopSection: String { return self._s[2131]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[2132]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2126]!, self._r[2126]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2133]!, self._r[2133]!, [_0, _1]) } - public var Wallet_Info_Receive: String { return self._s[2127]! } - public var Wallet_Completed_ViewWallet: String { return self._s[2129]! } + public var Wallet_Info_Receive: String { return self._s[2134]! } + public var Wallet_Completed_ViewWallet: String { return self._s[2136]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2130]!, self._r[2130]!, [_0]) + return formatWithArgumentRanges(self._s[2137]!, self._r[2137]!, [_0]) } - public var ReportPeer_ReasonSpam: String { return self._s[2131]! } - public var UserInfo_TapToCall: String { return self._s[2132]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2134]! } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[2135]! } - public var Common_Search: String { return self._s[2136]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[2137]! } + public var ReportPeer_ReasonSpam: String { return self._s[2138]! } + public var UserInfo_TapToCall: String { return self._s[2139]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2141]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[2142]! } + public var Common_Search: String { return self._s[2143]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[2144]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2138]!, self._r[2138]!, [_0]) - } - public var Wallet_Month_ShortJuly: String { return self._s[2139]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[2141]! } - public var Message_InvoiceLabel: String { return self._s[2142]! } - public var Conversation_InputTextPlaceholder: String { return self._s[2143]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[2144]! } - public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2145]!, self._r[2145]!, [_0]) } - public var IntentsSettings_Reset: String { return self._s[2146]! } - public var Conversation_Info: String { return self._s[2147]! } - public var Login_InfoDeletePhoto: String { return self._s[2148]! } - public var ChatListFolder_DiscardDiscard: String { return self._s[2150]! } - public var Passport_Language_vi: String { return self._s[2151]! } - public var UserInfo_ScamUserWarning: String { return self._s[2152]! } - public var Conversation_Search: String { return self._s[2153]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[2155]! } - public var ChatListFolder_NameGroups: String { return self._s[2156]! } - public var ReportPeer_ReasonPornography: String { return self._s[2157]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[2158]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[2159]! } - public var Map_LiveLocationGroupDescription: String { return self._s[2160]! } - public var Channel_Setup_TypeHeader: String { return self._s[2161]! } - public var AuthSessions_LoggedIn: String { return self._s[2162]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2163]! } - public var Login_SmsRequestState3: String { return self._s[2164]! } - public var Passport_Address_EditUtilityBill: String { return self._s[2165]! } - public var Appearance_ReduceMotionInfo: String { return self._s[2166]! } - public var Join_ChannelsTooMuch: String { return self._s[2167]! } - public var Channel_Edit_LinkItem: String { return self._s[2168]! } - public var Privacy_Calls_P2PNever: String { return self._s[2169]! } - public var Conversation_AddToReadingList: String { return self._s[2171]! } - public var Share_MultipleMessagesDisabled: String { return self._s[2172]! } - public var Message_Animation: String { return self._s[2173]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[2174]! } - public var Map_Unknown: String { return self._s[2175]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[2176]! } + public var Wallet_Month_ShortJuly: String { return self._s[2146]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[2148]! } + public var Message_InvoiceLabel: String { return self._s[2149]! } + public var Conversation_InputTextPlaceholder: String { return self._s[2150]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[2151]! } + public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2152]!, self._r[2152]!, [_0]) + } + public var IntentsSettings_Reset: String { return self._s[2153]! } + public var Conversation_Info: String { return self._s[2154]! } + public var Login_InfoDeletePhoto: String { return self._s[2155]! } + public var ChatListFolder_DiscardDiscard: String { return self._s[2157]! } + public var Passport_Language_vi: String { return self._s[2158]! } + public var UserInfo_ScamUserWarning: String { return self._s[2159]! } + public var Conversation_Search: String { return self._s[2160]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[2162]! } + public var ChatListFolder_NameGroups: String { return self._s[2163]! } + public var ReportPeer_ReasonPornography: String { return self._s[2164]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[2165]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[2166]! } + public var Map_LiveLocationGroupDescription: String { return self._s[2167]! } + public var Channel_Setup_TypeHeader: String { return self._s[2168]! } + public var AuthSessions_LoggedIn: String { return self._s[2169]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[2170]! } + public var Login_SmsRequestState3: String { return self._s[2171]! } + public var Passport_Address_EditUtilityBill: String { return self._s[2172]! } + public var Appearance_ReduceMotionInfo: String { return self._s[2173]! } + public var Join_ChannelsTooMuch: String { return self._s[2174]! } + public var Channel_Edit_LinkItem: String { return self._s[2175]! } + public var Privacy_Calls_P2PNever: String { return self._s[2176]! } + public var Conversation_AddToReadingList: String { return self._s[2178]! } + public var Share_MultipleMessagesDisabled: String { return self._s[2179]! } + public var Message_Animation: String { return self._s[2180]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[2181]! } + public var Map_Unknown: String { return self._s[2182]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[2183]! } public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2177]!, self._r[2177]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2184]!, self._r[2184]!, [_1, _2]) } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2178]!, self._r[2178]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2185]!, self._r[2185]!, [_1, _2]) } - public var Call_StatusRequesting: String { return self._s[2179]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[2180]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2181]! } - public var Stats_MessageInteractionsTitle: String { return self._s[2182]! } + public var Call_StatusRequesting: String { return self._s[2186]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[2187]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2188]! } + public var Stats_MessageInteractionsTitle: String { return self._s[2189]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2183]!, self._r[2183]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2190]!, self._r[2190]!, [_1, _2]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2184]!, self._r[2184]!, [_0]) + return formatWithArgumentRanges(self._s[2191]!, self._r[2191]!, [_0]) } - public var Update_Skip: String { return self._s[2185]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2186]! } - public var BlockedUsers_Title: String { return self._s[2187]! } - public var Weekday_Monday: String { return self._s[2188]! } + public var Update_Skip: String { return self._s[2192]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2193]! } + public var BlockedUsers_Title: String { return self._s[2194]! } + public var Weekday_Monday: String { return self._s[2195]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2189]!, self._r[2189]!, [_1]) + return formatWithArgumentRanges(self._s[2196]!, self._r[2196]!, [_1]) } - public var Username_CheckingUsername: String { return self._s[2190]! } - public var NotificationsSound_Bell: String { return self._s[2191]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[2192]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2193]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2194]! } + public var Username_CheckingUsername: String { return self._s[2197]! } + public var NotificationsSound_Bell: String { return self._s[2198]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[2199]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2200]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2201]! } public func Notification_ChangedGroupVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2195]!, self._r[2195]!, [_0]) + return formatWithArgumentRanges(self._s[2202]!, self._r[2202]!, [_0]) } - public var ChatSettings_Groups: String { return self._s[2196]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2197]! } - public var ChatList_PeerTypeContact: String { return self._s[2198]! } + public var ChatSettings_Groups: String { return self._s[2203]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2204]! } + public var ChatList_PeerTypeContact: String { return self._s[2205]! } public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2199]!, self._r[2199]!, [_0]) + return formatWithArgumentRanges(self._s[2206]!, self._r[2206]!, [_0]) } - public var Your_card_was_declined: String { return self._s[2200]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2202]! } - public var Wallet_Month_ShortApril: String { return self._s[2203]! } - public var ChatList_Unmute: String { return self._s[2204]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2205]! } - public var PhotoEditor_CurvesAll: String { return self._s[2206]! } - public var Weekday_ShortTuesday: String { return self._s[2207]! } - public var DialogList_Read: String { return self._s[2208]! } - public var Appearance_AppIconClassic: String { return self._s[2209]! } - public var Conversation_Dice_u1F3B2: String { return self._s[2210]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2211]! } - public var Passport_Identity_Gender: String { return self._s[2212]! } + public var Your_card_was_declined: String { return self._s[2207]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2209]! } + public var Wallet_Month_ShortApril: String { return self._s[2210]! } + public var ChatList_Unmute: String { return self._s[2211]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2212]! } + public var PhotoEditor_CurvesAll: String { return self._s[2213]! } + public var Weekday_ShortTuesday: String { return self._s[2214]! } + public var DialogList_Read: String { return self._s[2215]! } + public var Appearance_AppIconClassic: String { return self._s[2216]! } + public var Conversation_Dice_u1F3B2: String { return self._s[2217]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2218]! } + public var Passport_Identity_Gender: String { return self._s[2219]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2213]!, self._r[2213]!, [_0]) + return formatWithArgumentRanges(self._s[2220]!, self._r[2220]!, [_0]) } - public var Target_SelectGroup: String { return self._s[2214]! } - public var Map_HomeAndWorkInfo: String { return self._s[2216]! } + public var Target_SelectGroup: String { return self._s[2221]! } + public var Map_HomeAndWorkInfo: String { return self._s[2223]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2217]!, self._r[2217]!, [_0]) + return formatWithArgumentRanges(self._s[2224]!, self._r[2224]!, [_0]) } - public var Passport_Language_en: String { return self._s[2218]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2219]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2220]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[2221]! } - public var ScheduledMessages_SendNow: String { return self._s[2222]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[2224]! } - public var Login_InfoHelp: String { return self._s[2225]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[2226]! } - public var ProfilePhoto_SetMainPhoto: String { return self._s[2227]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2228]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2229]! } + public var Passport_Language_en: String { return self._s[2225]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2226]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2227]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[2228]! } + public var ScheduledMessages_SendNow: String { return self._s[2229]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[2231]! } + public var Login_InfoHelp: String { return self._s[2232]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[2233]! } + public var ProfilePhoto_SetMainPhoto: String { return self._s[2234]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2235]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2236]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2230]!, self._r[2230]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2237]!, self._r[2237]!, [_1, _2]) } - public var SocksProxySetup_AddProxy: String { return self._s[2233]! } - public var CreatePoll_Title: String { return self._s[2234]! } - public var MessagePoll_QuizNoUsers: String { return self._s[2235]! } - public var Conversation_ViewTheme: String { return self._s[2236]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2237]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2238]! } - public var TwoFactorSetup_Intro_Text: String { return self._s[2239]! } - public var UserInfo_GroupsInCommon: String { return self._s[2240]! } - public var TelegramWallet_Intro_TermsUrl: String { return self._s[2241]! } - public var Stats_ViewsByHoursTitle: String { return self._s[2242]! } - public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[2243]! } - public var Call_AudioRouteHide: String { return self._s[2244]! } + public var SocksProxySetup_AddProxy: String { return self._s[2240]! } + public var CreatePoll_Title: String { return self._s[2241]! } + public var MessagePoll_QuizNoUsers: String { return self._s[2242]! } + public var Conversation_ViewTheme: String { return self._s[2243]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2244]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2245]! } + public var TwoFactorSetup_Intro_Text: String { return self._s[2246]! } + public var UserInfo_GroupsInCommon: String { return self._s[2247]! } + public var TelegramWallet_Intro_TermsUrl: String { return self._s[2248]! } + public var Stats_ViewsByHoursTitle: String { return self._s[2249]! } + public var Conversation_PrivateChannelTimeLimitedAlertTitle: String { return self._s[2250]! } + public var Call_AudioRouteHide: String { return self._s[2251]! } public func Wallet_Info_TransactionDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2246]!, self._r[2246]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2253]!, self._r[2253]!, [_1, _2]) } - public var ContactInfo_PhoneLabelMobile: String { return self._s[2247]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2248]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[2249]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[2254]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2255]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[2256]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2250]!, self._r[2250]!, [_0]) + return formatWithArgumentRanges(self._s[2257]!, self._r[2257]!, [_0]) } - public var TextFormat_Bold: String { return self._s[2251]! } - public var CreatePoll_ExplanationInfo: String { return self._s[2252]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2253]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[2254]! } - public var Notifications_Title: String { return self._s[2255]! } - public var Group_Username_InvalidTooShort: String { return self._s[2256]! } - public var Channel_ErrorAddTooMuch: String { return self._s[2257]! } + public var TextFormat_Bold: String { return self._s[2258]! } + public var CreatePoll_ExplanationInfo: String { return self._s[2259]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2260]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[2261]! } + public var Notifications_Title: String { return self._s[2262]! } + public var Group_Username_InvalidTooShort: String { return self._s[2263]! } + public var Channel_ErrorAddTooMuch: String { return self._s[2264]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2258]!, self._r[2258]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2265]!, self._r[2265]!, ["\(_0)"]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[2260]! } - public var Stickers_SuggestAdded: String { return self._s[2261]! } - public var Login_CountryCode: String { return self._s[2262]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[2263]! } - public var Map_GetDirections: String { return self._s[2264]! } - public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2265]! } - public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2266]! } - public var Login_PhoneFloodError: String { return self._s[2267]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[2267]! } + public var Stickers_SuggestAdded: String { return self._s[2268]! } + public var Login_CountryCode: String { return self._s[2269]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[2270]! } + public var Map_GetDirections: String { return self._s[2271]! } + public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2272]! } + public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2273]! } + public var Login_PhoneFloodError: String { return self._s[2274]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2268]!, self._r[2268]!, [_0]) + return formatWithArgumentRanges(self._s[2275]!, self._r[2275]!, [_0]) } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2269]!, self._r[2269]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2276]!, self._r[2276]!, [_1, _2, _3]) } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2270]! } - public var Settings_SetUsername: String { return self._s[2272]! } - public var Group_Location_ChangeLocation: String { return self._s[2273]! } - public var Notification_GroupInviterSelf: String { return self._s[2274]! } - public var InstantPage_TapToOpenLink: String { return self._s[2275]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2277]! } + public var Settings_SetUsername: String { return self._s[2279]! } + public var Group_Location_ChangeLocation: String { return self._s[2280]! } + public var Notification_GroupInviterSelf: String { return self._s[2281]! } + public var InstantPage_TapToOpenLink: String { return self._s[2282]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2276]!, self._r[2276]!, [_0]) + return formatWithArgumentRanges(self._s[2283]!, self._r[2283]!, [_0]) } - public var PrivacySettings_AutoArchiveInfo: String { return self._s[2277]! } - public var Watch_Suggestion_TalkLater: String { return self._s[2278]! } - public var SecretChat_Title: String { return self._s[2279]! } - public var Group_UpgradeNoticeText1: String { return self._s[2280]! } - public var AuthSessions_Title: String { return self._s[2281]! } + public var PrivacySettings_AutoArchiveInfo: String { return self._s[2284]! } + public var Watch_Suggestion_TalkLater: String { return self._s[2285]! } + public var SecretChat_Title: String { return self._s[2286]! } + public var Group_UpgradeNoticeText1: String { return self._s[2287]! } + public var AuthSessions_Title: String { return self._s[2288]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2282]!, self._r[2282]!, [_0]) + return formatWithArgumentRanges(self._s[2289]!, self._r[2289]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[2283]! } - public var Channel_About_Title: String { return self._s[2285]! } - public var Theme_ThemeChanged: String { return self._s[2286]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[2287]! } + public var PhotoEditor_CropAuto: String { return self._s[2290]! } + public var Channel_About_Title: String { return self._s[2292]! } + public var Theme_ThemeChanged: String { return self._s[2293]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[2294]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2290]!, self._r[2290]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2297]!, self._r[2297]!, ["\(_0)"]) } - public var VoiceOver_MessageContextReport: String { return self._s[2291]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2293]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[2294]! } + public var VoiceOver_MessageContextReport: String { return self._s[2298]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2300]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[2301]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2295]!, self._r[2295]!, [_1]) + return formatWithArgumentRanges(self._s[2302]!, self._r[2302]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2297]!, self._r[2297]!, [_0]) + return formatWithArgumentRanges(self._s[2304]!, self._r[2304]!, [_0]) } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2298]!, self._r[2298]!, [_0]) + return formatWithArgumentRanges(self._s[2305]!, self._r[2305]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2299]! } - public var PeopleNearby_DiscoverDescription: String { return self._s[2301]! } - public var Presence_online: String { return self._s[2303]! } - public var PasscodeSettings_Title: String { return self._s[2304]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2305]! } - public var Web_OpenExternal: String { return self._s[2306]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[2308]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2309]! } - public var LocalGroup_Title: String { return self._s[2310]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2306]! } + public var PeopleNearby_DiscoverDescription: String { return self._s[2308]! } + public var Presence_online: String { return self._s[2310]! } + public var PasscodeSettings_Title: String { return self._s[2311]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2312]! } + public var Web_OpenExternal: String { return self._s[2313]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[2315]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2316]! } + public var LocalGroup_Title: String { return self._s[2317]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2311]!, self._r[2311]!, [_0]) + return formatWithArgumentRanges(self._s[2318]!, self._r[2318]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2312]! } - public var Conversation_StopQuizConfirmation: String { return self._s[2313]! } - public var Map_YouAreHere: String { return self._s[2314]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2319]! } + public var Conversation_StopQuizConfirmation: String { return self._s[2320]! } + public var Map_YouAreHere: String { return self._s[2321]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2315]!, self._r[2315]!, [_0]) + return formatWithArgumentRanges(self._s[2322]!, self._r[2322]!, [_0]) } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2316]!, self._r[2316]!, [_0]) + return formatWithArgumentRanges(self._s[2323]!, self._r[2323]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[2317]! } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2318]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2319]! } + public var Theme_Context_ChangeColors: String { return self._s[2324]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2325]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2326]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2320]!, self._r[2320]!, [_0]) + return formatWithArgumentRanges(self._s[2327]!, self._r[2327]!, [_0]) } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2321]!, self._r[2321]!, [_0]) + return formatWithArgumentRanges(self._s[2328]!, self._r[2328]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[2322]! } - public var Bot_Start: String { return self._s[2323]! } + public var SocksProxySetup_Username: String { return self._s[2329]! } + public var Bot_Start: String { return self._s[2330]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2324]!, self._r[2324]!, [_0]) + return formatWithArgumentRanges(self._s[2331]!, self._r[2331]!, [_0]) } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2325]!, self._r[2325]!, [_0]) - } - public var Contacts_SortByPresence: String { return self._s[2326]! } - public var AccentColor_Title: String { return self._s[2329]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2330]! } - public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2331]!, self._r[2331]!, [_1, _2]) - } - public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2332]!, self._r[2332]!, [_0]) } + public var Contacts_SortByPresence: String { return self._s[2333]! } + public var AccentColor_Title: String { return self._s[2336]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2337]! } + public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2338]!, self._r[2338]!, [_1, _2]) + } + public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2339]!, self._r[2339]!, [_0]) + } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2333]!, self._r[2333]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2340]!, self._r[2340]!, [_1, _2]) } - public var Stats_GroupOverview: String { return self._s[2334]! } - public var Passport_Email_EnterOtherEmail: String { return self._s[2335]! } - public var Login_InfoAvatarPhoto: String { return self._s[2336]! } + public var Stats_GroupOverview: String { return self._s[2341]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[2342]! } + public var Login_InfoAvatarPhoto: String { return self._s[2343]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2337]!, self._r[2337]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2344]!, self._r[2344]!, [_1, _2]) } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2338]! } - public var Tour_Title4: String { return self._s[2339]! } - public var Passport_Identity_Translation: String { return self._s[2340]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2341]! } - public var Login_TermsOfServiceLabel: String { return self._s[2343]! } - public var Passport_Language_it: String { return self._s[2344]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2345]! } - public var Passport_Identity_SelfieHelp: String { return self._s[2346]! } - public var Conversation_ClearAll: String { return self._s[2348]! } - public var Wallet_Send_UninitializedText: String { return self._s[2350]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[2351]! } - public var TwoStepAuth_FloodError: String { return self._s[2352]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2345]! } + public var Tour_Title4: String { return self._s[2346]! } + public var Passport_Identity_Translation: String { return self._s[2347]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2348]! } + public var Login_TermsOfServiceLabel: String { return self._s[2350]! } + public var Passport_Language_it: String { return self._s[2351]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2352]! } + public var Passport_Identity_SelfieHelp: String { return self._s[2353]! } + public var Conversation_ClearAll: String { return self._s[2355]! } + public var Wallet_Send_UninitializedText: String { return self._s[2357]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[2358]! } + public var TwoStepAuth_FloodError: String { return self._s[2359]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2353]!, self._r[2353]!, [_1]) + return formatWithArgumentRanges(self._s[2360]!, self._r[2360]!, [_1]) } - public var Paint_Delete: String { return self._s[2354]! } + public var Paint_Delete: String { return self._s[2361]! } public func Wallet_Sent_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2355]!, self._r[2355]!, [_0]) + return formatWithArgumentRanges(self._s[2362]!, self._r[2362]!, [_0]) } - public var Privacy_AddNewPeer: String { return self._s[2356]! } + public var Privacy_AddNewPeer: String { return self._s[2363]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2357]!, self._r[2357]!, [_1]) + return formatWithArgumentRanges(self._s[2364]!, self._r[2364]!, [_1]) } - public var LogoutOptions_SetPasscodeText: String { return self._s[2358]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[2365]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2359]!, self._r[2359]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2366]!, self._r[2366]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[2360]! } + public var Message_PinnedAudioMessage: String { return self._s[2367]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2361]!, self._r[2361]!, [_0]) + return formatWithArgumentRanges(self._s[2368]!, self._r[2368]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[2362]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2363]! } - public var Wallet_Month_GenNovember: String { return self._s[2364]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[2366]! } - public var Conversation_MessageEditedLabel: String { return self._s[2367]! } + public var Notification_Mute1hMin: String { return self._s[2369]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2370]! } + public var Wallet_Month_GenNovember: String { return self._s[2371]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[2373]! } + public var Conversation_MessageEditedLabel: String { return self._s[2374]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2368]!, self._r[2368]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2375]!, self._r[2375]!, [_0, _1]) } - public var Notification_Exceptions_AlwaysOff: String { return self._s[2369]! } - public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2370]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2371]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[2376]! } + public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2377]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2378]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2372]!, self._r[2372]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2379]!, self._r[2379]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[2373]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[2380]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2374]!, self._r[2374]!, [_1]) + return formatWithArgumentRanges(self._s[2381]!, self._r[2381]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[2375]! } - public var Month_GenOctober: String { return self._s[2376]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2377]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2378]! } - public var MediaPicker_TimerTooltip: String { return self._s[2380]! } - public var SharedMedia_TitleAll: String { return self._s[2381]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2384]! } - public var Conversation_RestrictedMedia: String { return self._s[2385]! } - public var AccessDenied_PhotosRestricted: String { return self._s[2386]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2388]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2389]! } + public var AccessDenied_LocationTracking: String { return self._s[2382]! } + public var Month_GenOctober: String { return self._s[2383]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2384]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2385]! } + public var Call_CameraConfirmationConfirm: String { return self._s[2387]! } + public var MediaPicker_TimerTooltip: String { return self._s[2388]! } + public var SharedMedia_TitleAll: String { return self._s[2389]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2392]! } + public var Conversation_RestrictedMedia: String { return self._s[2393]! } + public var AccessDenied_PhotosRestricted: String { return self._s[2394]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2396]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2397]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2390]!, self._r[2390]!, [_0]) - } - public var Conversation_SavedMessages: String { return self._s[2393]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2395]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2396]! } - public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2398]!, self._r[2398]!, [_0]) } - public var VoiceOver_Chat_YourMessage: String { return self._s[2399]! } + public var Conversation_SavedMessages: String { return self._s[2401]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2403]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2404]! } + public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2406]!, self._r[2406]!, [_0]) + } + public var VoiceOver_Chat_YourMessage: String { return self._s[2407]! } public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2400]!, self._r[2400]!, [_0]) + return formatWithArgumentRanges(self._s[2408]!, self._r[2408]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[2401]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2402]! } + public var ReportPeer_AlertSuccess: String { return self._s[2409]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2410]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2403]!, self._r[2403]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2411]!, self._r[2411]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[2404]! } - public var PhotoEditor_FadeTool: String { return self._s[2405]! } - public var Privacy_ContactsReset: String { return self._s[2406]! } - public var Conversation_PrivateChannelTimeLimitedAlertText: String { return self._s[2407]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2412]! } + public var PhotoEditor_FadeTool: String { return self._s[2413]! } + public var Privacy_ContactsReset: String { return self._s[2414]! } + public var Conversation_PrivateChannelTimeLimitedAlertText: String { return self._s[2415]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2409]!, self._r[2409]!, [_0]) + return formatWithArgumentRanges(self._s[2417]!, self._r[2417]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[2410]! } - public var ChatList_Mute: String { return self._s[2411]! } + public var Message_PinnedVideoMessage: String { return self._s[2418]! } + public var ChatList_Mute: String { return self._s[2419]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2412]!, self._r[2412]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2420]!, self._r[2420]!, [_1, _2, _3]) } - public var Permissions_CellularDataText_v0: String { return self._s[2413]! } - public var Conversation_PinnedQuiz: String { return self._s[2415]! } - public var ShareMenu_SelectChats: String { return self._s[2417]! } - public var ChatList_Context_Unarchive: String { return self._s[2418]! } - public var MusicPlayer_VoiceNote: String { return self._s[2419]! } - public var Conversation_RestrictedText: String { return self._s[2420]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2421]! } - public var Wallet_Month_GenApril: String { return self._s[2422]! } - public var Wallet_Month_ShortMarch: String { return self._s[2423]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2424]! } - public var Chat_PsaTooltip_covid: String { return self._s[2425]! } - public var Cache_Videos: String { return self._s[2426]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2427]! } - public var Wallet_Month_GenFebruary: String { return self._s[2428]! } - public var FeatureDisabled_Oops: String { return self._s[2430]! } - public var ChatList_RemoveFolderAction: String { return self._s[2431]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2432]! } + public var Permissions_CellularDataText_v0: String { return self._s[2421]! } + public var Conversation_PinnedQuiz: String { return self._s[2423]! } + public var ShareMenu_SelectChats: String { return self._s[2425]! } + public var ChatList_Context_Unarchive: String { return self._s[2426]! } + public var MusicPlayer_VoiceNote: String { return self._s[2427]! } + public var Conversation_RestrictedText: String { return self._s[2428]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2429]! } + public var Wallet_Month_GenApril: String { return self._s[2430]! } + public var Wallet_Month_ShortMarch: String { return self._s[2431]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2432]! } + public var Chat_PsaTooltip_covid: String { return self._s[2433]! } + public var Cache_Videos: String { return self._s[2434]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2435]! } + public var Wallet_Month_GenFebruary: String { return self._s[2436]! } + public var FeatureDisabled_Oops: String { return self._s[2438]! } + public var ChatList_RemoveFolderAction: String { return self._s[2439]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2440]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2433]!, self._r[2433]!, [_0]) + return formatWithArgumentRanges(self._s[2441]!, self._r[2441]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2435]! } - public var GroupPermission_NoSendPolls: String { return self._s[2436]! } - public var Wallet_Qr_ScanCode: String { return self._s[2437]! } - public var Message_VideoExpired: String { return self._s[2439]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2440]! } - public var Notifications_Badge: String { return self._s[2441]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2442]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2443]! } - public var Username_InvalidTooShort: String { return self._s[2444]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2445]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2446]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2447]! } + public var Stickers_GroupStickersHelp: String { return self._s[2443]! } + public var GroupPermission_NoSendPolls: String { return self._s[2444]! } + public var Wallet_Qr_ScanCode: String { return self._s[2445]! } + public var Message_VideoExpired: String { return self._s[2447]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2448]! } + public var Notifications_Badge: String { return self._s[2449]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2450]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2451]! } + public var Username_InvalidTooShort: String { return self._s[2452]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2453]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2454]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2455]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2448]!, self._r[2448]!, [_1]) + return formatWithArgumentRanges(self._s[2456]!, self._r[2456]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2449]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2450]! } - public var SharedMedia_CategoryDocs: String { return self._s[2453]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2457]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2458]! } + public var SharedMedia_CategoryDocs: String { return self._s[2461]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2454]!, self._r[2454]!, [_1]) + return formatWithArgumentRanges(self._s[2462]!, self._r[2462]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2455]! } - public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2456]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2458]! } + public var Wallet_Send_UninitializedTitle: String { return self._s[2463]! } + public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2464]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2466]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2459]!, self._r[2459]!, [_1]) + return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2460]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2468]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2461]!, self._r[2461]!, [_0]) + return formatWithArgumentRanges(self._s[2469]!, self._r[2469]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2462]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2463]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2464]! } - public var Channel_UpdatePhotoItem: String { return self._s[2465]! } - public var GroupInfo_LeftStatus: String { return self._s[2466]! } - public var Watch_MessageView_Forward: String { return self._s[2468]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2469]! } - public var Cache_ClearEmpty: String { return self._s[2471]! } - public var Localization_LanguageName: String { return self._s[2473]! } - public var Wallet_AccessDenied_Title: String { return self._s[2474]! } - public var WebSearch_GIFs: String { return self._s[2475]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2476]! } - public var Wallet_AccessDenied_Settings: String { return self._s[2477]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2478]! } - public var Common_Back: String { return self._s[2479]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2480]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2481]! } - public var Wallet_Send_Send: String { return self._s[2482]! } + public var ChatSettings_PrivateChats: String { return self._s[2470]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2471]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2472]! } + public var Channel_UpdatePhotoItem: String { return self._s[2473]! } + public var GroupInfo_LeftStatus: String { return self._s[2474]! } + public var Watch_MessageView_Forward: String { return self._s[2476]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2477]! } + public var Cache_ClearEmpty: String { return self._s[2479]! } + public var Localization_LanguageName: String { return self._s[2481]! } + public var Wallet_AccessDenied_Title: String { return self._s[2482]! } + public var WebSearch_GIFs: String { return self._s[2483]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2484]! } + public var Wallet_AccessDenied_Settings: String { return self._s[2485]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2486]! } + public var Common_Back: String { return self._s[2487]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2488]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2489]! } + public var Wallet_Send_Send: String { return self._s[2490]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2484]!, self._r[2484]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2492]!, self._r[2492]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2485]! } - public var ChatList_Tabs_All: String { return self._s[2486]! } - public var Wallet_Month_GenJune: String { return self._s[2487]! } - public var Passport_Email_Help: String { return self._s[2488]! } - public var Watch_Conversation_Reply: String { return self._s[2490]! } - public var Stats_GroupTopInvitersTitle: String { return self._s[2491]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2494]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2495]! } - public var Channel_BanUser_Unban: String { return self._s[2497]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2498]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2499]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2501]! } - public var Wallet_Send_AddressHeader: String { return self._s[2502]! } - public var Passport_Identity_Name: String { return self._s[2503]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2493]! } + public var ChatList_Tabs_All: String { return self._s[2494]! } + public var Wallet_Month_GenJune: String { return self._s[2495]! } + public var Passport_Email_Help: String { return self._s[2496]! } + public var Watch_Conversation_Reply: String { return self._s[2498]! } + public var Stats_GroupTopInvitersTitle: String { return self._s[2499]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2502]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2503]! } + public var Channel_BanUser_Unban: String { return self._s[2505]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2506]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2507]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2509]! } + public var Wallet_Send_AddressHeader: String { return self._s[2510]! } + public var Passport_Identity_Name: String { return self._s[2511]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2504]!, self._r[2504]!, [_0]) + return formatWithArgumentRanges(self._s[2512]!, self._r[2512]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2505]! } - public var Stats_MessageOverview: String { return self._s[2506]! } - public var Conversation_BlockUser: String { return self._s[2507]! } - public var Month_GenJanuary: String { return self._s[2508]! } - public var ChatSettings_TextSize: String { return self._s[2509]! } - public var Notification_PassportValuePhone: String { return self._s[2510]! } - public var MediaPlayer_UnknownArtist: String { return self._s[2511]! } - public var Passport_Language_ne: String { return self._s[2512]! } - public var Notification_CallBack: String { return self._s[2513]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2514]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2515]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2513]! } + public var Stats_MessageOverview: String { return self._s[2514]! } + public var Conversation_BlockUser: String { return self._s[2515]! } + public var Month_GenJanuary: String { return self._s[2516]! } + public var ChatSettings_TextSize: String { return self._s[2517]! } + public var Notification_PassportValuePhone: String { return self._s[2518]! } + public var MediaPlayer_UnknownArtist: String { return self._s[2519]! } + public var Passport_Language_ne: String { return self._s[2520]! } + public var Notification_CallBack: String { return self._s[2521]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2522]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2523]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2516]!, self._r[2516]!, [_0]) + return formatWithArgumentRanges(self._s[2524]!, self._r[2524]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2517]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2518]! } - public var Stickers_FrequentlyUsed: String { return self._s[2520]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2521]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2523]! } + public var Channel_Info_Management: String { return self._s[2525]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2526]! } + public var Stickers_FrequentlyUsed: String { return self._s[2528]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2529]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2531]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2524]!, self._r[2524]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2532]!, self._r[2532]!, [_1, "\(_2)"]) } - public var TwoFactorSetup_Password_Title: String { return self._s[2525]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[2526]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2527]! } - public var CreatePoll_TextHeader: String { return self._s[2528]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2533]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2534]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2535]! } + public var CreatePoll_TextHeader: String { return self._s[2536]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2529]!, self._r[2529]!, [_0]) + return formatWithArgumentRanges(self._s[2537]!, self._r[2537]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[2530]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2531]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2533]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2534]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2535]! } + public var PhotoEditor_QualityMedium: String { return self._s[2538]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2539]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2541]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2542]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2543]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2536]!, self._r[2536]!, [_0]) + return formatWithArgumentRanges(self._s[2544]!, self._r[2544]!, [_0]) } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2537]!, self._r[2537]!, [_1]) + return formatWithArgumentRanges(self._s[2545]!, self._r[2545]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2538]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2539]! } - public var Conversation_LinkDialogOpen: String { return self._s[2541]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2542]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2543]! } - public var Settings_Username: String { return self._s[2545]! } - public var Conversation_Block: String { return self._s[2547]! } - public var Wallpaper_Wallpaper: String { return self._s[2548]! } - public var SocksProxySetup_UseProxy: String { return self._s[2550]! } - public var Wallet_Send_Confirmation: String { return self._s[2551]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2552]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2553]! } - public var MessageTimer_Forever: String { return self._s[2554]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2555]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2556]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2557]! } - public var Passport_Language_da: String { return self._s[2558]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[2560]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2561]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2546]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2547]! } + public var Conversation_LinkDialogOpen: String { return self._s[2549]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2550]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2551]! } + public var Settings_Username: String { return self._s[2553]! } + public var Conversation_Block: String { return self._s[2555]! } + public var Wallpaper_Wallpaper: String { return self._s[2556]! } + public var SocksProxySetup_UseProxy: String { return self._s[2558]! } + public var Wallet_Send_Confirmation: String { return self._s[2559]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2560]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2561]! } + public var MessageTimer_Forever: String { return self._s[2562]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2563]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2564]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2565]! } + public var Passport_Language_da: String { return self._s[2566]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[2568]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2569]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2562]!, self._r[2562]!, [_0]) + return formatWithArgumentRanges(self._s[2570]!, self._r[2570]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[2563]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2571]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2565]!, self._r[2565]!, [_0]) + return formatWithArgumentRanges(self._s[2573]!, self._r[2573]!, [_0]) } - public var Settings_AddDevice: String { return self._s[2566]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2568]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2569]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2570]! } - public var Conversation_PinnedPoll: String { return self._s[2571]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2572]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2573]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2574]! } + public var Settings_AddDevice: String { return self._s[2574]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2576]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2577]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2578]! } + public var Conversation_PinnedPoll: String { return self._s[2579]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2580]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2581]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2582]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2575]!, self._r[2575]!, [_1]) + return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2576]! } - public var Cache_ByPeerHeader: String { return self._s[2577]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2584]! } + public var Cache_ByPeerHeader: String { return self._s[2585]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2578]!, self._r[2578]!, [_0]) + return formatWithArgumentRanges(self._s[2586]!, self._r[2586]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2579]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2582]! } - public var Wallet_Completed_Title: String { return self._s[2583]! } - public var Notification_PinnedMessage: String { return self._s[2584]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2585]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2587]! } - public var Contacts_SortBy: String { return self._s[2588]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2587]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2590]! } + public var Wallet_Completed_Title: String { return self._s[2591]! } + public var Notification_PinnedMessage: String { return self._s[2592]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2593]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2595]! } + public var Contacts_SortBy: String { return self._s[2596]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2589]!, self._r[2589]!, [_1]) + return formatWithArgumentRanges(self._s[2597]!, self._r[2597]!, [_1]) } - public var Appearance_ColorThemeNight: String { return self._s[2591]! } + public var Appearance_ColorThemeNight: String { return self._s[2599]! } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2592]!, self._r[2592]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2600]!, self._r[2600]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2593]! } - public var Watch_UserInfo_Service: String { return self._s[2594]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2596]! } - public var Conversation_Unpin: String { return self._s[2598]! } - public var CancelResetAccount_Title: String { return self._s[2599]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2600]! } + public var Call_EncryptionKey_Title: String { return self._s[2601]! } + public var Watch_UserInfo_Service: String { return self._s[2602]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2604]! } + public var Conversation_Unpin: String { return self._s[2606]! } + public var CancelResetAccount_Title: String { return self._s[2607]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2608]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2602]!, self._r[2602]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2610]!, self._r[2610]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2603]! } - public var Appearance_BubbleCorners_Title: String { return self._s[2604]! } - public var CallSettings_Title: String { return self._s[2605]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2606]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2608]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2609]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2611]! } + public var Appearance_BubbleCorners_Title: String { return self._s[2612]! } + public var CallSettings_Title: String { return self._s[2613]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2614]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2616]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2617]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2610]!, self._r[2610]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2618]!, self._r[2618]!, [_1, _2]) } - public var ChatList_Tabs_AllChats: String { return self._s[2611]! } - public var Passport_Identity_DocumentDetails: String { return self._s[2612]! } - public var LoginPassword_PasswordHelp: String { return self._s[2613]! } - public var ChatListFolderSettings_Info: String { return self._s[2614]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2615]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2616]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[2617]! } - public var ChatListFolder_CategoryGroups: String { return self._s[2618]! } - public var Checkout_TotalPaidAmount: String { return self._s[2620]! } + public var ChatList_Tabs_AllChats: String { return self._s[2619]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2620]! } + public var LoginPassword_PasswordHelp: String { return self._s[2621]! } + public var ChatListFolderSettings_Info: String { return self._s[2622]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2623]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2624]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[2625]! } + public var ChatListFolder_CategoryGroups: String { return self._s[2626]! } + public var Checkout_TotalPaidAmount: String { return self._s[2628]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2621]!, self._r[2621]!, [_0]) + return formatWithArgumentRanges(self._s[2629]!, self._r[2629]!, [_0]) } - public var ChatState_Updating: String { return self._s[2622]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[2623]! } - public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2624]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2626]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2627]! } + public var ChatState_Updating: String { return self._s[2630]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2631]! } + public var ChatListFolder_ExcludedSectionHeader: String { return self._s[2632]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2634]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2635]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2628]!, self._r[2628]!, [_1]) + return formatWithArgumentRanges(self._s[2636]!, self._r[2636]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2629]! } - public var Contacts_InviteFriends: String { return self._s[2631]! } - public var Map_ChooseLocationTitle: String { return self._s[2632]! } - public var Conversation_StopPoll: String { return self._s[2634]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2637]! } + public var Contacts_InviteFriends: String { return self._s[2639]! } + public var Map_ChooseLocationTitle: String { return self._s[2640]! } + public var Conversation_StopPoll: String { return self._s[2642]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2635]!, self._r[2635]!, [_0]) + return formatWithArgumentRanges(self._s[2643]!, self._r[2643]!, [_0]) } - public var Call_Camera: String { return self._s[2636]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2637]! } - public var AppWallet_Intro_Text: String { return self._s[2638]! } - public var Appearance_BubbleCornersSetting: String { return self._s[2639]! } - public var Calls_RatingFeedback: String { return self._s[2640]! } + public var Call_Camera: String { return self._s[2644]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2645]! } + public var AppWallet_Intro_Text: String { return self._s[2646]! } + public var Appearance_BubbleCornersSetting: String { return self._s[2647]! } + public var Calls_RatingFeedback: String { return self._s[2648]! } public func Conversation_NoticeInvitedByInGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2642]!, self._r[2642]!, [_0]) + return formatWithArgumentRanges(self._s[2650]!, self._r[2650]!, [_0]) } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2643]! } - public var Wallet_Alert_OK: String { return self._s[2644]! } - public var NotificationsSound_Pulse: String { return self._s[2645]! } - public var Watch_LastSeen_Lately: String { return self._s[2646]! } - public var ReportGroupLocation_Report: String { return self._s[2649]! } - public var Widget_NoUsers: String { return self._s[2650]! } - public var Conversation_UnvotePoll: String { return self._s[2651]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2653]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2654]! } - public var NotificationsSound_Circles: String { return self._s[2655]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2658]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2659]! } - public var ChatListFolder_CategoryBots: String { return self._s[2660]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2661]! } - public var Proxy_TooltipUnavailable: String { return self._s[2662]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2664]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2666]! } - public var Conversation_FileDropbox: String { return self._s[2667]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2668]! } - public var Tour_Text3: String { return self._s[2670]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2673]! } - public var ChatListFolder_NamePlaceholder: String { return self._s[2674]! } - public var Settings_FrequentlyAskedQuestions: String { return self._s[2675]! } - public var GroupPermission_NoSendMessages: String { return self._s[2676]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2677]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2678]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2651]! } + public var Wallet_Alert_OK: String { return self._s[2652]! } + public var NotificationsSound_Pulse: String { return self._s[2653]! } + public var Watch_LastSeen_Lately: String { return self._s[2654]! } + public var ReportGroupLocation_Report: String { return self._s[2657]! } + public var Widget_NoUsers: String { return self._s[2658]! } + public var Conversation_UnvotePoll: String { return self._s[2659]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2661]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2662]! } + public var NotificationsSound_Circles: String { return self._s[2663]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2666]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2667]! } + public var ChatListFolder_CategoryBots: String { return self._s[2668]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2669]! } + public var Proxy_TooltipUnavailable: String { return self._s[2670]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2672]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2674]! } + public var Conversation_FileDropbox: String { return self._s[2675]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2676]! } + public var Tour_Text3: String { return self._s[2678]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2681]! } + public var ChatListFolder_NamePlaceholder: String { return self._s[2682]! } + public var Settings_FrequentlyAskedQuestions: String { return self._s[2683]! } + public var GroupPermission_NoSendMessages: String { return self._s[2684]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2685]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2686]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2680]!, self._r[2680]!, [_0]) + return formatWithArgumentRanges(self._s[2688]!, self._r[2688]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2681]! } - public var Checkout_ShippingOption_Title: String { return self._s[2682]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2683]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2689]! } + public var Checkout_ShippingOption_Title: String { return self._s[2690]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2691]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2684]!, self._r[2684]!, [_0]) + return formatWithArgumentRanges(self._s[2692]!, self._r[2692]!, [_0]) } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2685]!, self._r[2685]!, [_0]) + return formatWithArgumentRanges(self._s[2693]!, self._r[2693]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2686]! } - public var EditTheme_FileReadError: String { return self._s[2687]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2688]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2689]! } - public var AutoDownloadSettings_Photos: String { return self._s[2691]! } - public var Appearance_PreviewIncomingText: String { return self._s[2692]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2693]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2694]! } - public var ChatListFolder_ExcludeSectionInfo: String { return self._s[2695]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2696]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2697]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2698]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2699]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2700]! } - public var Notification_SecretChatScreenshot: String { return self._s[2701]! } - public var AccessDenied_Wallpapers: String { return self._s[2702]! } - public var ChatList_Context_Mute: String { return self._s[2704]! } - public var Passport_Address_City: String { return self._s[2705]! } - public var Settings_EditVideo: String { return self._s[2706]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2707]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2708]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2709]! } - public var AccessDenied_LocationDisabled: String { return self._s[2710]! } - public var Group_Location_Title: String { return self._s[2711]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2713]! } - public var GroupInfo_Sound: String { return self._s[2714]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2715]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2716]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2717]! } - public var Contacts_Title: String { return self._s[2718]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2719]! } - public var Passport_Language_fr: String { return self._s[2720]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2721]! } - public var Notifications_ResetAllNotifications: String { return self._s[2722]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2724]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2726]! } - public var Checkout_NewCard_Title: String { return self._s[2727]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2728]! } - public var Conversation_ForwardChats: String { return self._s[2729]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2731]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2733]! } - public var Settings_FAQ: String { return self._s[2735]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2736]! } - public var Conversation_ContextMenuForward: String { return self._s[2737]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2740]! } - public var PrivacyPolicy_Title: String { return self._s[2743]! } - public var Notifications_TextTone: String { return self._s[2744]! } - public var Profile_CreateNewContact: String { return self._s[2745]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2746]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2748]! } - public var Call_Speaker: String { return self._s[2749]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2750]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2752]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2753]! } + public var Channel_Management_LabelAdministrator: String { return self._s[2694]! } + public var EditTheme_FileReadError: String { return self._s[2695]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2696]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2697]! } + public var AutoDownloadSettings_Photos: String { return self._s[2699]! } + public var Appearance_PreviewIncomingText: String { return self._s[2700]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2701]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2702]! } + public var ChatListFolder_ExcludeSectionInfo: String { return self._s[2703]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2704]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2705]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2706]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2707]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2708]! } + public var Notification_SecretChatScreenshot: String { return self._s[2709]! } + public var AccessDenied_Wallpapers: String { return self._s[2710]! } + public var ChatList_Context_Mute: String { return self._s[2712]! } + public var Passport_Address_City: String { return self._s[2713]! } + public var Settings_EditVideo: String { return self._s[2714]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2715]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2716]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2717]! } + public var AccessDenied_LocationDisabled: String { return self._s[2718]! } + public var Group_Location_Title: String { return self._s[2719]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2721]! } + public var GroupInfo_Sound: String { return self._s[2722]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2723]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2724]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2725]! } + public var Contacts_Title: String { return self._s[2726]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2727]! } + public var Passport_Language_fr: String { return self._s[2728]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2729]! } + public var Notifications_ResetAllNotifications: String { return self._s[2730]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2732]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2734]! } + public var Checkout_NewCard_Title: String { return self._s[2735]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2736]! } + public var Conversation_ForwardChats: String { return self._s[2737]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2739]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2741]! } + public var Settings_FAQ: String { return self._s[2743]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2744]! } + public var Conversation_ContextMenuForward: String { return self._s[2745]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2748]! } + public var PrivacyPolicy_Title: String { return self._s[2751]! } + public var Notifications_TextTone: String { return self._s[2752]! } + public var Profile_CreateNewContact: String { return self._s[2753]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2754]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2756]! } + public var Call_Speaker: String { return self._s[2757]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2758]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2760]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2761]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2754]!, self._r[2754]!, [_0]) + return formatWithArgumentRanges(self._s[2762]!, self._r[2762]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2755]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2756]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2757]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2758]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2759]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2760]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2761]! } - public var Bot_Unblock: String { return self._s[2762]! } - public var TextFormat_Italic: String { return self._s[2763]! } - public var WallpaperSearch_ColorPink: String { return self._s[2764]! } - public var Settings_About_Help: String { return self._s[2766]! } - public var SearchImages_Title: String { return self._s[2767]! } - public var Weekday_Wednesday: String { return self._s[2768]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2769]! } - public var ExplicitContent_AlertTitle: String { return self._s[2770]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2763]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2764]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2765]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2766]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2767]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2768]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2769]! } + public var Bot_Unblock: String { return self._s[2770]! } + public var TextFormat_Italic: String { return self._s[2771]! } + public var WallpaperSearch_ColorPink: String { return self._s[2772]! } + public var Settings_About_Help: String { return self._s[2774]! } + public var SearchImages_Title: String { return self._s[2775]! } + public var Weekday_Wednesday: String { return self._s[2776]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2777]! } + public var ExplicitContent_AlertTitle: String { return self._s[2778]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2771]!, self._r[2771]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2779]!, self._r[2779]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2772]! } - public var Weekday_Thursday: String { return self._s[2773]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2774]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2775]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2780]! } + public var Weekday_Thursday: String { return self._s[2781]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2782]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2783]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2776]!, self._r[2776]!, [_0]) + return formatWithArgumentRanges(self._s[2784]!, self._r[2784]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2777]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2778]! } - public var Passport_RequestedInformation: String { return self._s[2779]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2780]! } - public var Conversation_EncryptionProcessing: String { return self._s[2782]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2783]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2785]! } - public var Channel_Setup_Title: String { return self._s[2786]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[2787]! } - public var Conversation_SearchPlaceholder: String { return self._s[2788]! } - public var OldChannels_GroupEmptyFormat: String { return self._s[2789]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2790]! } - public var Checkout_ErrorGeneric: String { return self._s[2791]! } - public var Passport_Language_hu: String { return self._s[2792]! } - public var GroupPermission_EditingDisabled: String { return self._s[2793]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2795]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2785]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2786]! } + public var Passport_RequestedInformation: String { return self._s[2787]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2788]! } + public var Conversation_EncryptionProcessing: String { return self._s[2790]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2791]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2793]! } + public var Channel_Setup_Title: String { return self._s[2794]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[2795]! } + public var Conversation_SearchPlaceholder: String { return self._s[2796]! } + public var OldChannels_GroupEmptyFormat: String { return self._s[2797]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2798]! } + public var Checkout_ErrorGeneric: String { return self._s[2799]! } + public var Passport_Language_hu: String { return self._s[2800]! } + public var GroupPermission_EditingDisabled: String { return self._s[2801]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2803]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2796]!, self._r[2796]!, [_0]) + return formatWithArgumentRanges(self._s[2804]!, self._r[2804]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2799]!, self._r[2799]!, [_1]) + return formatWithArgumentRanges(self._s[2807]!, self._r[2807]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2800]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2808]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2801]!, self._r[2801]!, [_0]) + return formatWithArgumentRanges(self._s[2809]!, self._r[2809]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2802]! } - public var Group_Location_Info: String { return self._s[2803]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2804]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2805]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2810]! } + public var Group_Location_Info: String { return self._s[2811]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2812]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2813]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2807]!, self._r[2807]!, [_0]) + return formatWithArgumentRanges(self._s[2815]!, self._r[2815]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2808]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2809]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2810]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2811]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2816]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2817]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2818]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2819]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2812]!, self._r[2812]!, [_0]) + return formatWithArgumentRanges(self._s[2820]!, self._r[2820]!, [_0]) } - public var Cache_MaximumCacheSizeHelp: String { return self._s[2813]! } + public var Cache_MaximumCacheSizeHelp: String { return self._s[2821]! } public func Notification_PinnedQuizMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2814]!, self._r[2814]!, [_0]) + return formatWithArgumentRanges(self._s[2822]!, self._r[2822]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2815]! } - public var Message_PinnedAnimationMessage: String { return self._s[2817]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2819]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2820]! } - public var Wallet_Info_TransactionTo: String { return self._s[2822]! } - public var Stats_ViewsBySourceTitle: String { return self._s[2823]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2824]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2825]! } - public var Embed_PlayingInPIP: String { return self._s[2826]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2827]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2828]! } - public var Stats_GroupMessages: String { return self._s[2829]! } + public var Passport_Language_cs: String { return self._s[2823]! } + public var Message_PinnedAnimationMessage: String { return self._s[2825]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2827]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2828]! } + public var Wallet_Info_TransactionTo: String { return self._s[2830]! } + public var Stats_ViewsBySourceTitle: String { return self._s[2831]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2832]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2833]! } + public var Embed_PlayingInPIP: String { return self._s[2834]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2835]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2836]! } + public var Stats_GroupMessages: String { return self._s[2837]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2830]!, self._r[2830]!, [_0]) + return formatWithArgumentRanges(self._s[2838]!, self._r[2838]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2831]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2839]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2832]!, self._r[2832]!, [_1]) + return formatWithArgumentRanges(self._s[2840]!, self._r[2840]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2833]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2834]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2835]! } - public var AutoNightTheme_System: String { return self._s[2836]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2837]! } - public var CreatePoll_QuizTitle: String { return self._s[2838]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2839]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2840]! } + public var Notification_PaymentSent: String { return self._s[2841]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2842]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2843]! } + public var AutoNightTheme_System: String { return self._s[2844]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2845]! } + public var CreatePoll_QuizTitle: String { return self._s[2846]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2847]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2848]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2843]!, self._r[2843]!, [_1]) + return formatWithArgumentRanges(self._s[2851]!, self._r[2851]!, [_1]) } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2844]!, self._r[2844]!, [_1]) + return formatWithArgumentRanges(self._s[2852]!, self._r[2852]!, [_1]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2845]!, self._r[2845]!, [_1]) + return formatWithArgumentRanges(self._s[2853]!, self._r[2853]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2847]! } - public var PasscodeSettings_HelpTop: String { return self._s[2848]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2849]! } - public var PeerInfo_AddToContacts: String { return self._s[2850]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2851]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2852]! } - public var FeaturedStickers_OtherSection: String { return self._s[2853]! } - public var EditTheme_ShortLink: String { return self._s[2855]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2856]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2857]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2858]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2859]! } - public var Call_Accept: String { return self._s[2861]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2862]! } - public var Month_GenMarch: String { return self._s[2864]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2865]! } - public var LoginPassword_Title: String { return self._s[2866]! } - public var Call_End: String { return self._s[2867]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2868]! } - public var VoiceOver_Chat_Contact: String { return self._s[2869]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2870]! } - public var CallSettings_Always: String { return self._s[2871]! } - public var CallFeedback_Success: String { return self._s[2872]! } - public var TwoStepAuth_SetupHint: String { return self._s[2873]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2855]! } + public var PasscodeSettings_HelpTop: String { return self._s[2856]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2857]! } + public var PeerInfo_AddToContacts: String { return self._s[2858]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2859]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2860]! } + public var FeaturedStickers_OtherSection: String { return self._s[2861]! } + public var EditTheme_ShortLink: String { return self._s[2863]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2864]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2865]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2866]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2867]! } + public var Call_Accept: String { return self._s[2869]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2870]! } + public var Month_GenMarch: String { return self._s[2872]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2873]! } + public var LoginPassword_Title: String { return self._s[2874]! } + public var Call_End: String { return self._s[2875]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2876]! } + public var VoiceOver_Chat_Contact: String { return self._s[2877]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2878]! } + public var CallSettings_Always: String { return self._s[2879]! } + public var CallFeedback_Success: String { return self._s[2880]! } + public var TwoStepAuth_SetupHint: String { return self._s[2881]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2874]!, self._r[2874]!, [_1]) + return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2875]! } - public var PeerInfo_ButtonAddMember: String { return self._s[2876]! } - public var Login_PhoneTitle: String { return self._s[2877]! } - public var Passport_FieldPhoneHelp: String { return self._s[2878]! } - public var Weekday_ShortSunday: String { return self._s[2879]! } - public var Passport_InfoFAQ_URL: String { return self._s[2880]! } - public var ContactInfo_Job: String { return self._s[2882]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2883]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2884]! } - public var CreatePoll_QuizTip: String { return self._s[2885]! } - public var TwoFactorSetup_Email_Text: String { return self._s[2886]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2887]! } - public var Invite_ChannelsTooMuch: String { return self._s[2888]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2889]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2890]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2891]! } - public var Wallet_Receive_AmountText: String { return self._s[2892]! } - public var TwoStepAuth_Disable: String { return self._s[2893]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2894]! } - public var CallFeedback_ReasonNoise: String { return self._s[2895]! } - public var Appearance_AppIconDefault: String { return self._s[2897]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2898]! } - public var MediaPicker_AddCaption: String { return self._s[2899]! } - public var CallSettings_TabIconDescription: String { return self._s[2900]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2883]! } + public var PeerInfo_ButtonAddMember: String { return self._s[2884]! } + public var Login_PhoneTitle: String { return self._s[2885]! } + public var Passport_FieldPhoneHelp: String { return self._s[2886]! } + public var Weekday_ShortSunday: String { return self._s[2887]! } + public var Passport_InfoFAQ_URL: String { return self._s[2888]! } + public var ContactInfo_Job: String { return self._s[2890]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2891]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2892]! } + public var CreatePoll_QuizTip: String { return self._s[2893]! } + public var TwoFactorSetup_Email_Text: String { return self._s[2894]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2895]! } + public var Invite_ChannelsTooMuch: String { return self._s[2896]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2897]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2898]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2899]! } + public var Wallet_Receive_AmountText: String { return self._s[2900]! } + public var TwoStepAuth_Disable: String { return self._s[2901]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2902]! } + public var CallFeedback_ReasonNoise: String { return self._s[2903]! } + public var Appearance_AppIconDefault: String { return self._s[2905]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2906]! } + public var MediaPicker_AddCaption: String { return self._s[2907]! } + public var CallSettings_TabIconDescription: String { return self._s[2908]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2901]!, self._r[2901]!, [_0]) + return formatWithArgumentRanges(self._s[2909]!, self._r[2909]!, [_0]) } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2902]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2910]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2903]!, self._r[2903]!, [_0]) + return formatWithArgumentRanges(self._s[2911]!, self._r[2911]!, [_0]) } - public var CreatePoll_ExplanationHeader: String { return self._s[2905]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2906]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2907]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2908]! } - public var DialogList_SearchSectionRecent: String { return self._s[2909]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2910]! } - public var CreatePoll_Anonymous: String { return self._s[2911]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2914]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[2915]! } - public var LastSeen_WithinAWeek: String { return self._s[2916]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2917]! } - public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[2919]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2920]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2922]! } + public var CreatePoll_ExplanationHeader: String { return self._s[2913]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2914]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2915]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2916]! } + public var DialogList_SearchSectionRecent: String { return self._s[2917]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2918]! } + public var CreatePoll_Anonymous: String { return self._s[2919]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2922]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[2923]! } + public var LastSeen_WithinAWeek: String { return self._s[2924]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2925]! } + public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[2927]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2928]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2930]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_0]) + return formatWithArgumentRanges(self._s[2931]!, self._r[2931]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2924]! } - public var Conversation_StatusLeftGroup: String { return self._s[2925]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2926]! } - public var OwnershipTransfer_Transfer: String { return self._s[2928]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2929]! } - public var ProfilePhoto_MainPhoto: String { return self._s[2930]! } - public var GroupPermission_AddSuccess: String { return self._s[2932]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2934]! } - public var Conversation_ContextMenuCopy: String { return self._s[2935]! } - public var AccessDenied_CallMicrophone: String { return self._s[2936]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2932]! } + public var Conversation_StatusLeftGroup: String { return self._s[2933]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2934]! } + public var OwnershipTransfer_Transfer: String { return self._s[2936]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2937]! } + public var ProfilePhoto_MainPhoto: String { return self._s[2938]! } + public var GroupPermission_AddSuccess: String { return self._s[2940]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2942]! } + public var Conversation_ContextMenuCopy: String { return self._s[2943]! } + public var AccessDenied_CallMicrophone: String { return self._s[2944]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2937]!, self._r[2937]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2945]!, self._r[2945]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2938]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2939]! } - public var Checkout_PaymentMethod_New: String { return self._s[2940]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2941]! } - public var PhotoEditor_QualityTool: String { return self._s[2942]! } - public var Login_SendCodeViaSms: String { return self._s[2943]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2944]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2945]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2946]! } - public var Login_EmailNotConfiguredError: String { return self._s[2947]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[2948]! } - public var SocksProxySetup_Status: String { return self._s[2949]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2950]! } - public var PrivacyPolicy_Accept: String { return self._s[2951]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2952]! } - public var Appearance_AppIconClassicX: String { return self._s[2953]! } + public var Login_InvalidFirstNameError: String { return self._s[2946]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2947]! } + public var Checkout_PaymentMethod_New: String { return self._s[2948]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2949]! } + public var PhotoEditor_QualityTool: String { return self._s[2950]! } + public var Login_SendCodeViaSms: String { return self._s[2951]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2952]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2953]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2954]! } + public var Login_EmailNotConfiguredError: String { return self._s[2955]! } + public var Stats_GroupTopAdminsTitle: String { return self._s[2956]! } + public var SocksProxySetup_Status: String { return self._s[2957]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2958]! } + public var PrivacyPolicy_Accept: String { return self._s[2959]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2960]! } + public var Appearance_AppIconClassicX: String { return self._s[2961]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2954]!, self._r[2954]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2962]!, self._r[2962]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2955]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2957]! } - public var AutoNightTheme_Automatic: String { return self._s[2958]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2959]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2960]! } - public var Cache_Help: String { return self._s[2961]! } - public var Group_ErrorAccessDenied: String { return self._s[2962]! } - public var Passport_Language_fa: String { return self._s[2963]! } - public var Wallet_Intro_Text: String { return self._s[2964]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[2965]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2966]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2967]! } - public var PrivacySettings_LastSeen: String { return self._s[2968]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2963]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2965]! } + public var AutoNightTheme_Automatic: String { return self._s[2966]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2967]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2968]! } + public var Cache_Help: String { return self._s[2969]! } + public var Group_ErrorAccessDenied: String { return self._s[2970]! } + public var Passport_Language_fa: String { return self._s[2971]! } + public var Wallet_Intro_Text: String { return self._s[2972]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[2973]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2974]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2975]! } + public var PrivacySettings_LastSeen: String { return self._s[2976]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2969]!, self._r[2969]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2977]!, self._r[2977]!, [_0, _1]) } - public var Wallet_Configuration_Apply: String { return self._s[2973]! } - public var Preview_SaveGif: String { return self._s[2974]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2975]! } - public var Profile_About: String { return self._s[2976]! } - public var Channel_About_Placeholder: String { return self._s[2978]! } - public var Login_InfoTitle: String { return self._s[2979]! } + public var Wallet_Configuration_Apply: String { return self._s[2981]! } + public var Preview_SaveGif: String { return self._s[2982]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2983]! } + public var Profile_About: String { return self._s[2984]! } + public var Channel_About_Placeholder: String { return self._s[2986]! } + public var Login_InfoTitle: String { return self._s[2987]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2980]!, self._r[2980]!, [_0]) + return formatWithArgumentRanges(self._s[2988]!, self._r[2988]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2981]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2984]! } - public var ContactInfo_Title: String { return self._s[2985]! } - public var Media_ShareThisVideo: String { return self._s[2986]! } - public var Chat_GenericPsaTooltip: String { return self._s[2987]! } - public var Weekday_ShortFriday: String { return self._s[2988]! } - public var AccessDenied_Contacts: String { return self._s[2990]! } - public var Notification_CallIncomingShort: String { return self._s[2991]! } - public var Group_Setup_TypePublic: String { return self._s[2992]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2993]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2994]! } - public var Settings_EditAccount: String { return self._s[2997]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2998]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2999]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[3000]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[3001]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[3002]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2989]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2992]! } + public var ContactInfo_Title: String { return self._s[2993]! } + public var Media_ShareThisVideo: String { return self._s[2994]! } + public var Chat_GenericPsaTooltip: String { return self._s[2995]! } + public var Weekday_ShortFriday: String { return self._s[2996]! } + public var AccessDenied_Contacts: String { return self._s[2998]! } + public var Notification_CallIncomingShort: String { return self._s[2999]! } + public var Group_Setup_TypePublic: String { return self._s[3000]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[3001]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[3002]! } + public var Settings_EditAccount: String { return self._s[3005]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[3006]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[3007]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[3008]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[3009]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[3010]! } public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3003]!, self._r[3003]!, [_0]) + return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_0]) } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3004]!, self._r[3004]!, [_0]) + return formatWithArgumentRanges(self._s[3012]!, self._r[3012]!, [_0]) } - public var DialogList_Typing: String { return self._s[3005]! } - public var CallFeedback_IncludeLogs: String { return self._s[3007]! } - public var Checkout_Phone: String { return self._s[3009]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[3012]! } - public var Privacy_Calls_Integration: String { return self._s[3013]! } - public var Notifications_PermissionsAllow: String { return self._s[3014]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[3020]! } - public var Settings_ChatSettings: String { return self._s[3021]! } - public var Conversation_SendingOptionsTooltip: String { return self._s[3022]! } + public var DialogList_Typing: String { return self._s[3013]! } + public var CallFeedback_IncludeLogs: String { return self._s[3015]! } + public var Checkout_Phone: String { return self._s[3017]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[3020]! } + public var Privacy_Calls_Integration: String { return self._s[3021]! } + public var Notifications_PermissionsAllow: String { return self._s[3022]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[3028]! } + public var Settings_ChatSettings: String { return self._s[3029]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[3030]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3024]!, self._r[3024]!, [_0]) + return formatWithArgumentRanges(self._s[3032]!, self._r[3032]!, [_0]) } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3025]!, self._r[3025]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3033]!, self._r[3033]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[3027]! } + public var GroupRemoved_DeleteUser: String { return self._s[3035]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3028]!, self._r[3028]!, [_0]) + return formatWithArgumentRanges(self._s[3036]!, self._r[3036]!, [_0]) } - public var ChatListFolder_CategoryMuted: String { return self._s[3029]! } + public var ChatListFolder_CategoryMuted: String { return self._s[3037]! } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3030]!, self._r[3030]!, [_1]) + return formatWithArgumentRanges(self._s[3038]!, self._r[3038]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[3031]! } - public var Watch_Message_ForwardedFrom: String { return self._s[3032]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[3034]! } - public var Notification_VideoCallIncoming: String { return self._s[3035]! } - public var Conversation_Unblock: String { return self._s[3036]! } - public var PrivacySettings_DataSettings: String { return self._s[3037]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[3038]! } - public var Group_PublicLink_Info: String { return self._s[3039]! } + public var Login_ContinueWithLocalization: String { return self._s[3039]! } + public var Watch_Message_ForwardedFrom: String { return self._s[3040]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[3042]! } + public var Notification_VideoCallIncoming: String { return self._s[3043]! } + public var Conversation_Unblock: String { return self._s[3044]! } + public var PrivacySettings_DataSettings: String { return self._s[3045]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[3046]! } + public var Group_PublicLink_Info: String { return self._s[3047]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3040]!, self._r[3040]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3048]!, self._r[3048]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[3041]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[3049]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3042]!, self._r[3042]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3050]!, self._r[3050]!, [_0, _1]) } - public var ChatList_FolderAllChats: String { return self._s[3043]! } - public var OldChannels_ChannelsHeader: String { return self._s[3045]! } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[3046]! } - public var PrivacySettings_Passcode: String { return self._s[3048]! } - public var Call_Mute: String { return self._s[3049]! } - public var Wallet_Weekday_Yesterday: String { return self._s[3050]! } - public var Passport_Language_dz: String { return self._s[3051]! } - public var Wallet_Receive_AmountHeader: String { return self._s[3052]! } - public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[3053]! } - public var Passport_Language_tk: String { return self._s[3054]! } + public var ChatList_FolderAllChats: String { return self._s[3051]! } + public var OldChannels_ChannelsHeader: String { return self._s[3053]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[3054]! } + public var PrivacySettings_Passcode: String { return self._s[3056]! } + public var Call_Mute: String { return self._s[3057]! } + public var Call_CameraTooltip: String { return self._s[3058]! } + public var Wallet_Weekday_Yesterday: String { return self._s[3059]! } + public var Passport_Language_dz: String { return self._s[3060]! } + public var Wallet_Receive_AmountHeader: String { return self._s[3061]! } + public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[3062]! } + public var Passport_Language_tk: String { return self._s[3063]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3055]!, self._r[3055]!, [_0]) + return formatWithArgumentRanges(self._s[3064]!, self._r[3064]!, [_0]) } - public var Settings_Search: String { return self._s[3056]! } - public var Wallet_Month_ShortFebruary: String { return self._s[3057]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[3058]! } - public var Wallet_Configuration_SourceJSON: String { return self._s[3059]! } - public var Conversation_ContextMenuReply: String { return self._s[3060]! } - public var WallpaperSearch_ColorBrown: String { return self._s[3061]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3062]! } - public var Tour_Title1: String { return self._s[3063]! } - public var Wallet_Alert_Cancel: String { return self._s[3064]! } - public var Stats_Total: String { return self._s[3066]! } - public var Conversation_ClearGroupHistory: String { return self._s[3067]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[3068]! } - public var WallpaperPreview_Motion: String { return self._s[3069]! } + public var Settings_Search: String { return self._s[3065]! } + public var Wallet_Month_ShortFebruary: String { return self._s[3066]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[3067]! } + public var Wallet_Configuration_SourceJSON: String { return self._s[3068]! } + public var Conversation_ContextMenuReply: String { return self._s[3069]! } + public var WallpaperSearch_ColorBrown: String { return self._s[3070]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[3071]! } + public var Tour_Title1: String { return self._s[3072]! } + public var Wallet_Alert_Cancel: String { return self._s[3073]! } + public var Stats_Total: String { return self._s[3075]! } + public var Conversation_ClearGroupHistory: String { return self._s[3076]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[3077]! } + public var WallpaperPreview_Motion: String { return self._s[3078]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3070]!, self._r[3070]!, [_0]) - } - public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[3071]! } - public var Call_RateCall: String { return self._s[3072]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[3073]! } - public var Passport_PasswordCompleteSetup: String { return self._s[3074]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[3075]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[3077]! } - public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3079]!, self._r[3079]!, [_0]) } - public var Compose_Create: String { return self._s[3080]! } - public var Contacts_InviteToTelegram: String { return self._s[3081]! } - public var GroupInfo_Notifications: String { return self._s[3082]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3084]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[3085]! } - public var Month_GenApril: String { return self._s[3086]! } - public var Appearance_AutoNightTheme: String { return self._s[3087]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[3089]! } - public var Login_CodeSentSms: String { return self._s[3091]! } + public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[3080]! } + public var Call_RateCall: String { return self._s[3081]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[3082]! } + public var Passport_PasswordCompleteSetup: String { return self._s[3083]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[3084]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[3086]! } + public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3088]!, self._r[3088]!, [_0]) + } + public var Compose_Create: String { return self._s[3089]! } + public var Contacts_InviteToTelegram: String { return self._s[3090]! } + public var GroupInfo_Notifications: String { return self._s[3091]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[3093]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[3094]! } + public var Month_GenApril: String { return self._s[3095]! } + public var Appearance_AutoNightTheme: String { return self._s[3096]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[3098]! } + public var Login_CodeSentSms: String { return self._s[3100]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3092]!, self._r[3092]!, [_0]) + return formatWithArgumentRanges(self._s[3101]!, self._r[3101]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[3093]! } - public var LogoutOptions_ContactSupportText: String { return self._s[3094]! } - public var Passport_Language_hr: String { return self._s[3095]! } - public var Common_ActionNotAllowedError: String { return self._s[3096]! } + public var EmptyGroupInfo_Line3: String { return self._s[3102]! } + public var LogoutOptions_ContactSupportText: String { return self._s[3103]! } + public var Passport_Language_hr: String { return self._s[3104]! } + public var Common_ActionNotAllowedError: String { return self._s[3105]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3097]!, self._r[3097]!, [_0]) + return formatWithArgumentRanges(self._s[3106]!, self._r[3106]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[3098]! } - public var Wallet_Info_TransactionFrom: String { return self._s[3099]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[3100]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[3101]! } - public var Privacy_SecretChatsTitle: String { return self._s[3102]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3104]! } - public var GroupInfo_AddUserLeftError: String { return self._s[3105]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[3106]! } - public var ChatListFolder_NameSectionHeader: String { return self._s[3107]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[3108]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[3109]! } - public var Conversation_Unarchive: String { return self._s[3110]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[3111]! } - public var Preview_DeleteGif: String { return self._s[3112]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[3113]! } - public var Group_ErrorNotMutualContact: String { return self._s[3114]! } - public var Notification_MessageLifetime5s: String { return self._s[3115]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[3116]! } - public var OldChannels_ChannelFormat: String { return self._s[3117]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[3107]! } + public var Wallet_Info_TransactionFrom: String { return self._s[3108]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[3109]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[3110]! } + public var Privacy_SecretChatsTitle: String { return self._s[3111]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3113]! } + public var GroupInfo_AddUserLeftError: String { return self._s[3114]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[3115]! } + public var ChatListFolder_NameSectionHeader: String { return self._s[3116]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[3117]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[3118]! } + public var Conversation_Unarchive: String { return self._s[3119]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[3120]! } + public var Preview_DeleteGif: String { return self._s[3121]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[3122]! } + public var Group_ErrorNotMutualContact: String { return self._s[3123]! } + public var Notification_MessageLifetime5s: String { return self._s[3124]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[3125]! } + public var OldChannels_ChannelFormat: String { return self._s[3126]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3118]!, self._r[3118]!, [_0]) + return formatWithArgumentRanges(self._s[3127]!, self._r[3127]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[3119]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[3121]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3122]! } - public var Passport_Address_AddBankStatement: String { return self._s[3123]! } - public var Notification_CallIncoming: String { return self._s[3124]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[3125]! } - public var Compose_NewGroupTitle: String { return self._s[3126]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3128]! } - public var Passport_Address_Postcode: String { return self._s[3130]! } + public var VoiceOver_Chat_Video: String { return self._s[3128]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[3130]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3131]! } + public var Passport_Address_AddBankStatement: String { return self._s[3132]! } + public var Notification_CallIncoming: String { return self._s[3133]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[3134]! } + public var Compose_NewGroupTitle: String { return self._s[3135]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3137]! } + public var Passport_Address_Postcode: String { return self._s[3139]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3131]!, self._r[3131]!, [_0]) + return formatWithArgumentRanges(self._s[3140]!, self._r[3140]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[3132]! } - public var Wallet_Month_ShortOctober: String { return self._s[3133]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[3134]! } - public var WallpaperColors_Title: String { return self._s[3135]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[3136]! } - public var VoiceOver_MessageContextForward: String { return self._s[3137]! } - public var GroupPermission_Duration: String { return self._s[3138]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[3141]! } + public var Wallet_Month_ShortOctober: String { return self._s[3142]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[3143]! } + public var WallpaperColors_Title: String { return self._s[3144]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[3145]! } + public var VoiceOver_MessageContextForward: String { return self._s[3146]! } + public var GroupPermission_Duration: String { return self._s[3147]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3139]!, self._r[3139]!, [_0]) + return formatWithArgumentRanges(self._s[3148]!, self._r[3148]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[3140]! } - public var Username_Placeholder: String { return self._s[3141]! } - public var CallFeedback_WhatWentWrong: String { return self._s[3142]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[3143]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[3144]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[3149]! } + public var Username_Placeholder: String { return self._s[3150]! } + public var CallFeedback_WhatWentWrong: String { return self._s[3151]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[3152]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[3153]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3156]!, self._r[3156]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[3148]! } - public var Channel_MessagePhotoUpdated: String { return self._s[3149]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[3150]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[3151]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[3152]! } - public var Conversation_ContextMenuMore: String { return self._s[3153]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3154]! } - public var CallSettings_TabIcon: String { return self._s[3155]! } - public var KeyCommand_Find: String { return self._s[3156]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[3157]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3158]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[3159]! } + public var Passport_PasswordDescription: String { return self._s[3157]! } + public var Channel_MessagePhotoUpdated: String { return self._s[3158]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[3159]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[3160]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[3161]! } + public var Conversation_ContextMenuMore: String { return self._s[3162]! } + public var Privacy_PaymentsClearInfo: String { return self._s[3163]! } + public var CallSettings_TabIcon: String { return self._s[3164]! } + public var KeyCommand_Find: String { return self._s[3165]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[3166]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3167]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[3168]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3160]!, self._r[3160]!, [_0]) - } - public var Message_PinnedGame: String { return self._s[3161]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3162]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[3164]! } - public var Login_CallRequestState2: String { return self._s[3166]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3168]! } - public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3169]!, self._r[3169]!, [_0]) } + public var Message_PinnedGame: String { return self._s[3170]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3171]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[3173]! } + public var Login_CallRequestState2: String { return self._s[3175]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3177]! } + public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3178]!, self._r[3178]!, [_0]) + } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3171]!, self._r[3171]!, [_0]) + return formatWithArgumentRanges(self._s[3180]!, self._r[3180]!, [_0]) } - public var AuthSessions_AddDevice: String { return self._s[3172]! } - public var WallpaperPreview_Blurred: String { return self._s[3173]! } - public var Conversation_InstantPagePreview: String { return self._s[3174]! } - public var PeerInfo_ButtonUnmute: String { return self._s[3175]! } + public var AuthSessions_AddDevice: String { return self._s[3181]! } + public var WallpaperPreview_Blurred: String { return self._s[3182]! } + public var Conversation_InstantPagePreview: String { return self._s[3183]! } + public var PeerInfo_ButtonUnmute: String { return self._s[3184]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3176]!, self._r[3176]!, [_0]) + return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_0]) } - public var ChatList_PeerTypeChannel: String { return self._s[3177]! } - public var SecretTimer_VideoDescription: String { return self._s[3180]! } - public var WallpaperSearch_ColorRed: String { return self._s[3181]! } - public var GroupPermission_NoPinMessages: String { return self._s[3182]! } - public var Passport_Language_es: String { return self._s[3183]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3185]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[3186]! } + public var ChatList_PeerTypeChannel: String { return self._s[3186]! } + public var SecretTimer_VideoDescription: String { return self._s[3189]! } + public var WallpaperSearch_ColorRed: String { return self._s[3190]! } + public var GroupPermission_NoPinMessages: String { return self._s[3191]! } + public var Passport_Language_es: String { return self._s[3192]! } + public var Permissions_ContactsAllow_v0: String { return self._s[3194]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[3195]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3187]!, self._r[3187]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3196]!, self._r[3196]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3188]! } - public var WebPreview_GettingLinkInfo: String { return self._s[3190]! } - public var Watch_UserInfo_Unmute: String { return self._s[3191]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3192]! } - public var AccessDenied_CameraRestricted: String { return self._s[3194]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3197]! } + public var WebPreview_GettingLinkInfo: String { return self._s[3199]! } + public var Watch_UserInfo_Unmute: String { return self._s[3200]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3201]! } + public var AccessDenied_CameraRestricted: String { return self._s[3203]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3195]!, self._r[3195]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3204]!, self._r[3204]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[3197]! } - public var Settings_CopyUsername: String { return self._s[3198]! } - public var Contacts_SearchLabel: String { return self._s[3199]! } - public var Map_OpenInYandexNavigator: String { return self._s[3201]! } - public var PasscodeSettings_EncryptData: String { return self._s[3202]! } - public var Settings_Wallet: String { return self._s[3203]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[3204]! } - public var ChatList_PeerTypeBot: String { return self._s[3205]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[3206]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3207]! } - public var DialogList_AdNoticeAlert: String { return self._s[3208]! } - public var Wallet_Month_GenMay: String { return self._s[3210]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[3211]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[3212]! } - public var Localization_LanguageCustom: String { return self._s[3213]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3214]! } - public var CallFeedback_Title: String { return self._s[3215]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[3218]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[3219]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[3220]! } - public var Conversation_InfoGroup: String { return self._s[3221]! } - public var Compose_NewMessage: String { return self._s[3222]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[3223]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[3224]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[3225]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[3226]! } + public var ChatList_ReadAll: String { return self._s[3206]! } + public var Settings_CopyUsername: String { return self._s[3207]! } + public var Contacts_SearchLabel: String { return self._s[3208]! } + public var Map_OpenInYandexNavigator: String { return self._s[3210]! } + public var PasscodeSettings_EncryptData: String { return self._s[3211]! } + public var Settings_Wallet: String { return self._s[3212]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[3213]! } + public var ChatList_PeerTypeBot: String { return self._s[3214]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[3215]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[3216]! } + public var DialogList_AdNoticeAlert: String { return self._s[3217]! } + public var Wallet_Month_GenMay: String { return self._s[3219]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[3220]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[3221]! } + public var Localization_LanguageCustom: String { return self._s[3222]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3223]! } + public var CallFeedback_Title: String { return self._s[3224]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[3227]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[3228]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[3229]! } + public var Conversation_InfoGroup: String { return self._s[3230]! } + public var Compose_NewMessage: String { return self._s[3231]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[3232]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[3233]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[3234]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[3235]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_0]) + return formatWithArgumentRanges(self._s[3236]!, self._r[3236]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[3228]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3229]! } - public var ChangePhoneNumberCode_Help: String { return self._s[3230]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3231]! } - public var ChatList_Context_RemoveFromFolder: String { return self._s[3232]! } - public var Channel_BlackList_Title: String { return self._s[3233]! } - public var UserInfo_PhoneCall: String { return self._s[3234]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3236]! } - public var Wallet_Month_ShortJanuary: String { return self._s[3237]! } - public var State_connecting: String { return self._s[3238]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[3239]! } - public var Wallet_Month_GenMarch: String { return self._s[3240]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[3241]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[3242]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[3237]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3238]! } + public var ChangePhoneNumberCode_Help: String { return self._s[3239]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[3240]! } + public var ChatList_Context_RemoveFromFolder: String { return self._s[3241]! } + public var Channel_BlackList_Title: String { return self._s[3242]! } + public var UserInfo_PhoneCall: String { return self._s[3243]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3245]! } + public var Wallet_Month_ShortJanuary: String { return self._s[3246]! } + public var State_connecting: String { return self._s[3247]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[3248]! } + public var Wallet_Month_GenMarch: String { return self._s[3249]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[3250]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[3251]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3243]!, self._r[3243]!, [_0]) + return formatWithArgumentRanges(self._s[3252]!, self._r[3252]!, [_0]) } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3244]!, self._r[3244]!, [_0]) + return formatWithArgumentRanges(self._s[3253]!, self._r[3253]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[3245]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3246]! } - public var Passport_Identity_EditPassport: String { return self._s[3247]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[3249]! } - public var Localization_EnglishLanguageName: String { return self._s[3250]! } - public var Share_AuthDescription: String { return self._s[3251]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3252]! } - public var Passport_Identity_Surname: String { return self._s[3253]! } - public var Compose_TokenListPlaceholder: String { return self._s[3254]! } - public var Wallet_AccessDenied_Camera: String { return self._s[3255]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[3256]! } - public var Settings_AboutEmpty: String { return self._s[3257]! } - public var Conversation_Unmute: String { return self._s[3258]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[3260]! } - public var Wallet_Sending_Text: String { return self._s[3261]! } + public var Notifications_GroupNotifications: String { return self._s[3254]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3255]! } + public var Passport_Identity_EditPassport: String { return self._s[3256]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[3258]! } + public var Localization_EnglishLanguageName: String { return self._s[3259]! } + public var Share_AuthDescription: String { return self._s[3260]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3261]! } + public var Passport_Identity_Surname: String { return self._s[3262]! } + public var Compose_TokenListPlaceholder: String { return self._s[3263]! } + public var Wallet_AccessDenied_Camera: String { return self._s[3264]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[3265]! } + public var Settings_AboutEmpty: String { return self._s[3266]! } + public var Conversation_Unmute: String { return self._s[3267]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[3269]! } + public var Wallet_Sending_Text: String { return self._s[3270]! } public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3262]!, self._r[3262]!, [_1]) + return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_1]) } - public var Login_CodeSentCall: String { return self._s[3263]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3265]! } - public var ChatSettings_Appearance: String { return self._s[3266]! } - public var ClearCache_StorageUsage: String { return self._s[3267]! } - public var ChatListFolder_NameContacts: String { return self._s[3268]! } - public var Appearance_PickAccentColor: String { return self._s[3270]! } + public var Login_CodeSentCall: String { return self._s[3272]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3274]! } + public var ChatSettings_Appearance: String { return self._s[3275]! } + public var ClearCache_StorageUsage: String { return self._s[3276]! } + public var ChatListFolder_NameContacts: String { return self._s[3277]! } + public var Appearance_PickAccentColor: String { return self._s[3279]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3280]!, self._r[3280]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3272]!, self._r[3272]!, [_1]) + return formatWithArgumentRanges(self._s[3281]!, self._r[3281]!, [_1]) } - public var Notification_CallMissed: String { return self._s[3273]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3274]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3275]! } - public var Wallet_Month_GenOctober: String { return self._s[3277]! } - public var ChatAdmins_AdminLabel: String { return self._s[3278]! } - public var KeyCommand_JumpToNextChat: String { return self._s[3279]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[3281]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3282]! } - public var Month_GenJune: String { return self._s[3283]! } - public var IntentsSettings_MainAccountInfo: String { return self._s[3284]! } - public var Watch_Location_Current: String { return self._s[3285]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3286]! } - public var Conversation_TitleMute: String { return self._s[3287]! } - public var Map_PlacesInThisArea: String { return self._s[3288]! } + public var Notification_CallMissed: String { return self._s[3282]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3283]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3284]! } + public var Wallet_Month_GenOctober: String { return self._s[3286]! } + public var ChatAdmins_AdminLabel: String { return self._s[3287]! } + public var KeyCommand_JumpToNextChat: String { return self._s[3288]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[3290]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3291]! } + public var Month_GenJune: String { return self._s[3292]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[3293]! } + public var Watch_Location_Current: String { return self._s[3294]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3295]! } + public var Conversation_TitleMute: String { return self._s[3296]! } + public var Map_PlacesInThisArea: String { return self._s[3297]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_1]) + return formatWithArgumentRanges(self._s[3298]!, self._r[3298]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3290]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3299]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3291]!, self._r[3291]!, [_0]) + return formatWithArgumentRanges(self._s[3300]!, self._r[3300]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3292]! } - public var Chat_SlowmodeSendError: String { return self._s[3293]! } - public var MaskStickerSettings_Info: String { return self._s[3294]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3295]! } + public var Call_ReportPlaceholder: String { return self._s[3301]! } + public var Chat_SlowmodeSendError: String { return self._s[3302]! } + public var MaskStickerSettings_Info: String { return self._s[3303]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3304]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3296]!, self._r[3296]!, [_0]) + return formatWithArgumentRanges(self._s[3305]!, self._r[3305]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3297]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3299]! } - public var Contacts_ShareTelegram: String { return self._s[3300]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3301]! } - public var Map_AddressOnMap: String { return self._s[3302]! } - public var Channel_ErrorAccessDenied: String { return self._s[3303]! } - public var UserInfo_ScamBotWarning: String { return self._s[3305]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3306]! } - public var Call_ConnectionErrorTitle: String { return self._s[3307]! } - public var UserInfo_NotificationsEnable: String { return self._s[3308]! } - public var ArchivedChats_IntroText1: String { return self._s[3309]! } - public var Tour_Text4: String { return self._s[3312]! } - public var WallpaperSearch_Recent: String { return self._s[3313]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3314]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3315]! } - public var Profile_MessageLifetime2s: String { return self._s[3317]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3318]! } - public var Notification_MessageLifetime2s: String { return self._s[3319]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3306]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3308]! } + public var Contacts_ShareTelegram: String { return self._s[3309]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3310]! } + public var Map_AddressOnMap: String { return self._s[3311]! } + public var Channel_ErrorAccessDenied: String { return self._s[3312]! } + public var UserInfo_ScamBotWarning: String { return self._s[3314]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3315]! } + public var Call_ConnectionErrorTitle: String { return self._s[3316]! } + public var UserInfo_NotificationsEnable: String { return self._s[3317]! } + public var ArchivedChats_IntroText1: String { return self._s[3318]! } + public var Tour_Text4: String { return self._s[3321]! } + public var WallpaperSearch_Recent: String { return self._s[3322]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3323]! } + public var PeopleNearby_MakeVisibleTitle: String { return self._s[3324]! } + public var Profile_MessageLifetime2s: String { return self._s[3326]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3327]! } + public var Notification_MessageLifetime2s: String { return self._s[3328]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3320]!, self._r[3320]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3329]!, self._r[3329]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3321]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3322]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3323]! } + public var Cache_ClearCache: String { return self._s[3330]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3331]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3332]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3327]!, self._r[3327]!, [_0]) + return formatWithArgumentRanges(self._s[3336]!, self._r[3336]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3329]!, self._r[3329]!, [_0]) + return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3330]! } - public var PeerInfo_PaneMembers: String { return self._s[3331]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3332]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3333]! } - public var ChatList_UnarchiveAction: String { return self._s[3334]! } - public var AutoNightTheme_Title: String { return self._s[3335]! } - public var InstantPage_FeedbackButton: String { return self._s[3336]! } - public var Passport_FieldAddress: String { return self._s[3337]! } + public var LocalGroup_Text: String { return self._s[3339]! } + public var PeerInfo_PaneMembers: String { return self._s[3340]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3341]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3342]! } + public var ChatList_UnarchiveAction: String { return self._s[3343]! } + public var AutoNightTheme_Title: String { return self._s[3344]! } + public var InstantPage_FeedbackButton: String { return self._s[3345]! } + public var Passport_FieldAddress: String { return self._s[3346]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3347]!, self._r[3347]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[3339]! } + public var Month_ShortMarch: String { return self._s[3348]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3340]!, self._r[3340]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3349]!, self._r[3349]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3341]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3342]! } - public var Passport_FloodError: String { return self._s[3343]! } - public var SecretGif_Title: String { return self._s[3344]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3345]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3346]! } - public var Passport_Language_th: String { return self._s[3348]! } - public var Passport_Address_Address: String { return self._s[3349]! } - public var Login_InvalidLastNameError: String { return self._s[3350]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3351]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3352]! } - public var ChatList_Context_Archive: String { return self._s[3353]! } - public var SettingsSearch_FAQ: String { return self._s[3354]! } - public var ShareMenu_Send: String { return self._s[3355]! } - public var ChatState_Connecting: String { return self._s[3356]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3358]! } - public var Month_GenNovember: String { return self._s[3360]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3362]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3350]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3351]! } + public var Passport_FloodError: String { return self._s[3352]! } + public var SecretGif_Title: String { return self._s[3353]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3354]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3355]! } + public var Passport_Language_th: String { return self._s[3357]! } + public var Passport_Address_Address: String { return self._s[3358]! } + public var Login_InvalidLastNameError: String { return self._s[3359]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3360]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3361]! } + public var ChatList_Context_Archive: String { return self._s[3362]! } + public var SettingsSearch_FAQ: String { return self._s[3363]! } + public var ShareMenu_Send: String { return self._s[3364]! } + public var ChatState_Connecting: String { return self._s[3365]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3367]! } + public var Month_GenNovember: String { return self._s[3369]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3371]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3363]!, self._r[3363]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3372]!, self._r[3372]!, [_1, _2]) } - public var ChatListFolder_CategoryChannels: String { return self._s[3364]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3365]! } - public var Checkout_Email: String { return self._s[3366]! } - public var NotificationsSound_Tritone: String { return self._s[3367]! } - public var Paint_Marker: String { return self._s[3369]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3371]! } - public var Wallet_ContextMenuCopy: String { return self._s[3373]! } + public var ChatListFolder_CategoryChannels: String { return self._s[3373]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3374]! } + public var Checkout_Email: String { return self._s[3375]! } + public var NotificationsSound_Tritone: String { return self._s[3376]! } + public var Paint_Marker: String { return self._s[3378]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3380]! } + public var Wallet_ContextMenuCopy: String { return self._s[3382]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3375]!, self._r[3375]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3384]!, self._r[3384]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3376]! } - public var Stickers_Installed: String { return self._s[3378]! } + public var Appearance_TextSize_Automatic: String { return self._s[3385]! } + public var Stickers_Installed: String { return self._s[3387]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3379]!, self._r[3379]!, [_1]) + return formatWithArgumentRanges(self._s[3388]!, self._r[3388]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3380]!, self._r[3380]!, [_0]) + return formatWithArgumentRanges(self._s[3389]!, self._r[3389]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3381]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3390]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3382]!, self._r[3382]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3383]! } - public var Notification_Exceptions_Add: String { return self._s[3384]! } - public var DialogList_You: String { return self._s[3385]! } - public var ChatList_PsaLabel_covid: String { return self._s[3387]! } - public var MediaPicker_Send: String { return self._s[3389]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3390]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3391]! } - public var Call_AudioRouteSpeaker: String { return self._s[3392]! } - public var Watch_UserInfo_Title: String { return self._s[3393]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3394]! } - public var Appearance_AccentColor: String { return self._s[3396]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3392]! } + public var Notification_Exceptions_Add: String { return self._s[3393]! } + public var DialogList_You: String { return self._s[3394]! } + public var ChatList_PsaLabel_covid: String { return self._s[3396]! } + public var MediaPicker_Send: String { return self._s[3398]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3399]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3400]! } + public var Call_AudioRouteSpeaker: String { return self._s[3401]! } + public var Watch_UserInfo_Title: String { return self._s[3402]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3403]! } + public var Appearance_AccentColor: String { return self._s[3405]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3397]!, self._r[3397]!, [_0]) + return formatWithArgumentRanges(self._s[3406]!, self._r[3406]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3398]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3407]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3399]!, self._r[3399]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3408]!, self._r[3408]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3400]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3401]! } - public var Notification_CallOutgoing: String { return self._s[3402]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3403]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3404]! } - public var Call_RecordingDisabledMessage: String { return self._s[3405]! } - public var Message_Game: String { return self._s[3406]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3407]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3408]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3409]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3410]! } - public var Date_DialogDateFormat: String { return self._s[3412]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3413]! } - public var Notifications_InAppNotifications: String { return self._s[3414]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3409]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3410]! } + public var Notification_CallOutgoing: String { return self._s[3411]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3412]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3413]! } + public var Call_RecordingDisabledMessage: String { return self._s[3414]! } + public var Message_Game: String { return self._s[3415]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3416]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3417]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3418]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3419]! } + public var Date_DialogDateFormat: String { return self._s[3421]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3422]! } + public var Notifications_InAppNotifications: String { return self._s[3423]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3415]!, self._r[3415]!, [_0]) + return formatWithArgumentRanges(self._s[3424]!, self._r[3424]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3425]!, self._r[3425]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[3417]! } + public var NewContact_Title: String { return self._s[3426]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3418]!, self._r[3418]!, [_0]) + return formatWithArgumentRanges(self._s[3427]!, self._r[3427]!, [_0]) } - public var Stats_GroupTopPoster_Promote: String { return self._s[3419]! } - public var Conversation_ViewContactDetails: String { return self._s[3420]! } + public var Stats_GroupTopPoster_Promote: String { return self._s[3428]! } + public var Conversation_ViewContactDetails: String { return self._s[3429]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3422]!, self._r[3422]!, [_1]) + return formatWithArgumentRanges(self._s[3431]!, self._r[3431]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3423]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3424]! } - public var PrivacySettings_Title: String { return self._s[3425]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3428]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3429]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3430]! } - public var Contacts_PhoneNumber: String { return self._s[3431]! } - public var PeerInfo_ButtonMute: String { return self._s[3432]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3434]! } - public var Map_ShowPlaces: String { return self._s[3435]! } - public var ChatAdmins_Title: String { return self._s[3436]! } - public var InstantPage_Reference: String { return self._s[3438]! } - public var Wallet_Info_Updating: String { return self._s[3439]! } - public var ReportGroupLocation_Text: String { return self._s[3440]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3432]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3433]! } + public var PrivacySettings_Title: String { return self._s[3434]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3437]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3438]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3439]! } + public var Contacts_PhoneNumber: String { return self._s[3440]! } + public var PeerInfo_ButtonMute: String { return self._s[3441]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3443]! } + public var Map_ShowPlaces: String { return self._s[3444]! } + public var ChatAdmins_Title: String { return self._s[3445]! } + public var InstantPage_Reference: String { return self._s[3447]! } + public var Wallet_Info_Updating: String { return self._s[3448]! } + public var ReportGroupLocation_Text: String { return self._s[3449]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3441]!, self._r[3441]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3450]!, self._r[3450]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3442]! } - public var Watch_UserInfo_Block: String { return self._s[3443]! } - public var ChatSettings_Stickers: String { return self._s[3444]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3445]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3446]! } + public var Camera_FlashOff: String { return self._s[3451]! } + public var Watch_UserInfo_Block: String { return self._s[3452]! } + public var ChatSettings_Stickers: String { return self._s[3453]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3454]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3455]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3447]!, self._r[3447]!, [_0]) + return formatWithArgumentRanges(self._s[3456]!, self._r[3456]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[3448]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3449]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3450]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3451]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3452]! } - public var VoiceOver_MessageContextShare: String { return self._s[3453]! } + public var Settings_ViewPhoto: String { return self._s[3457]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3458]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3459]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3460]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3461]! } + public var VoiceOver_MessageContextShare: String { return self._s[3462]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3455]!, self._r[3455]!, [_0]) + return formatWithArgumentRanges(self._s[3464]!, self._r[3464]!, [_0]) } - public var Privacy_DeleteDrafts: String { return self._s[3456]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3457]! } + public var Privacy_DeleteDrafts: String { return self._s[3465]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3466]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3458]!, self._r[3458]!, [_0]) - } - public var DialogList_SavedMessagesHelp: String { return self._s[3459]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3460]! } - public var DialogList_SavedMessages: String { return self._s[3461]! } - public var GroupInfo_UpgradeButton: String { return self._s[3462]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3464]! } - public var DialogList_Pin: String { return self._s[3465]! } - public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3466]!, self._r[3466]!, [_0, _1]) - } - public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3467]!, self._r[3467]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3468]! } - public var UserInfo_NotificationsDisable: String { return self._s[3469]! } - public var Conversation_UnarchiveDone: String { return self._s[3470]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3471]! } - public var Paint_Outlined: String { return self._s[3472]! } - public var Activity_PlayingGame: String { return self._s[3473]! } - public var SearchImages_NoImagesFound: String { return self._s[3474]! } - public var SocksProxySetup_ProxyType: String { return self._s[3475]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3477]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3478]! } - public var Settings_AppLanguage: String { return self._s[3479]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3480]! } - public var Common_ChoosePhoto: String { return self._s[3481]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3482]! } - public var CallFeedback_ReasonEcho: String { return self._s[3483]! } + public var DialogList_SavedMessagesHelp: String { return self._s[3468]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3469]! } + public var DialogList_SavedMessages: String { return self._s[3470]! } + public var GroupInfo_UpgradeButton: String { return self._s[3471]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3473]! } + public var DialogList_Pin: String { return self._s[3474]! } + public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3475]!, self._r[3475]!, [_0, _1]) + } + public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3476]!, self._r[3476]!, [_0]) + } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3477]! } + public var UserInfo_NotificationsDisable: String { return self._s[3478]! } + public var Conversation_UnarchiveDone: String { return self._s[3479]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3480]! } + public var Paint_Outlined: String { return self._s[3481]! } + public var Activity_PlayingGame: String { return self._s[3482]! } + public var SearchImages_NoImagesFound: String { return self._s[3483]! } + public var SocksProxySetup_ProxyType: String { return self._s[3484]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3486]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3487]! } + public var Settings_AppLanguage: String { return self._s[3488]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3489]! } + public var Common_ChoosePhoto: String { return self._s[3490]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3491]! } + public var CallFeedback_ReasonEcho: String { return self._s[3492]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3484]!, self._r[3484]!, [_1]) + return formatWithArgumentRanges(self._s[3493]!, self._r[3493]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3485]! } - public var PollResults_Collapse: String { return self._s[3486]! } - public var Activity_UploadingVideo: String { return self._s[3487]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3488]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3489]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3490]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3491]! } - public var PUSH_SENDER_YOU: String { return self._s[3492]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3493]! } - public var Checkout_PayWithTouchId: String { return self._s[3494]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3495]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3494]! } + public var PollResults_Collapse: String { return self._s[3495]! } + public var Activity_UploadingVideo: String { return self._s[3496]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3497]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3498]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3499]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3500]! } + public var PUSH_SENDER_YOU: String { return self._s[3501]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3502]! } + public var Checkout_PayWithTouchId: String { return self._s[3503]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3504]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3497]!, self._r[3497]!, [_1]) + return formatWithArgumentRanges(self._s[3506]!, self._r[3506]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3498]! } + public var Notifications_ExceptionsNone: String { return self._s[3507]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3499]!, self._r[3499]!, [_0]) + return formatWithArgumentRanges(self._s[3508]!, self._r[3508]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3500]!, self._r[3500]!, [_1]) + return formatWithArgumentRanges(self._s[3509]!, self._r[3509]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3502]! } - public var Passport_Address_Region: String { return self._s[3505]! } - public var ChatList_DeleteChat: String { return self._s[3506]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3507]! } - public var PhotoEditor_TiltShift: String { return self._s[3508]! } - public var Settings_FAQ_URL: String { return self._s[3509]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3510]! } - public var SharedMedia_TitleLink: String { return self._s[3513]! } - public var Settings_PrivacySettings: String { return self._s[3514]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3515]! } - public var Passport_Language_sl: String { return self._s[3516]! } - public var Settings_SetProfilePhoto: String { return self._s[3517]! } - public var Channel_About_Help: String { return self._s[3518]! } - public var Contacts_PermissionsEnable: String { return self._s[3519]! } - public var Wallet_Sending_Title: String { return self._s[3520]! } - public var PeerInfo_PaneMedia: String { return self._s[3521]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3522]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3523]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3525]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3526]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3527]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3528]! } - public var OldChannels_Title: String { return self._s[3529]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3530]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3532]! } - public var Map_OpenInYandexMaps: String { return self._s[3534]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3535]! } - public var VoiceOver_MessageContextReply: String { return self._s[3536]! } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3538]! } - public var PhotoEditor_SaturationTool: String { return self._s[3539]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3511]! } + public var Passport_Address_Region: String { return self._s[3514]! } + public var ChatList_DeleteChat: String { return self._s[3515]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3516]! } + public var PhotoEditor_TiltShift: String { return self._s[3517]! } + public var Settings_FAQ_URL: String { return self._s[3518]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3519]! } + public var SharedMedia_TitleLink: String { return self._s[3522]! } + public var Settings_PrivacySettings: String { return self._s[3523]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3524]! } + public var Passport_Language_sl: String { return self._s[3525]! } + public var Settings_SetProfilePhoto: String { return self._s[3526]! } + public var Channel_About_Help: String { return self._s[3527]! } + public var Contacts_PermissionsEnable: String { return self._s[3528]! } + public var Wallet_Sending_Title: String { return self._s[3529]! } + public var PeerInfo_PaneMedia: String { return self._s[3530]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3531]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3532]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3534]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3535]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3536]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3537]! } + public var OldChannels_Title: String { return self._s[3538]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3539]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3541]! } + public var Map_OpenInYandexMaps: String { return self._s[3543]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3544]! } + public var VoiceOver_MessageContextReply: String { return self._s[3545]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3547]! } + public var PhotoEditor_SaturationTool: String { return self._s[3548]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3540]!, self._r[3540]!, [_1, _2]) - } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3541]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3542]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3543]! } - public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3544]!, self._r[3544]!, [_1, "\(_2)"]) - } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3545]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3547]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3548]! } - public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3549]!, self._r[3549]!, [_1, _2]) } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3550]! } - public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3551]!, self._r[3551]!, [_1, _2, _3]) + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3550]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3551]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3552]! } + public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3553]!, self._r[3553]!, [_1, "\(_2)"]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3552]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3553]! } - public var Passport_PassportInformation: String { return self._s[3556]! } - public var Theme_Unsupported: String { return self._s[3557]! } - public var WatchRemote_AlertTitle: String { return self._s[3558]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3559]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3561]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3554]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3556]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3557]! } + public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3558]!, self._r[3558]!, [_1, _2]) + } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3559]! } + public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3560]!, self._r[3560]!, [_1, _2, _3]) + } + public var WallpaperPreview_PatternTitle: String { return self._s[3561]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3562]! } + public var Passport_PassportInformation: String { return self._s[3565]! } + public var Theme_Unsupported: String { return self._s[3566]! } + public var WatchRemote_AlertTitle: String { return self._s[3567]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3568]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3570]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3562]!, self._r[3562]!, [_0]) + return formatWithArgumentRanges(self._s[3571]!, self._r[3571]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3563]!, self._r[3563]!, [_1]) + return formatWithArgumentRanges(self._s[3572]!, self._r[3572]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3564]! } - public var Wallet_Navigation_Done: String { return self._s[3566]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3567]! } - public var AccessDenied_CameraDisabled: String { return self._s[3568]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3573]! } + public var Wallet_Navigation_Done: String { return self._s[3575]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3576]! } + public var AccessDenied_CameraDisabled: String { return self._s[3577]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3569]!, self._r[3569]!, [_0]) + return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3570]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3571]! } - public var CreatePoll_Quiz: String { return self._s[3572]! } - public var PhotoEditor_ContrastTool: String { return self._s[3575]! } + public var ClearCache_Forever: String { return self._s[3579]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3580]! } + public var CreatePoll_Quiz: String { return self._s[3581]! } + public var PhotoEditor_ContrastTool: String { return self._s[3584]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3576]!, self._r[3576]!, [_1]) + return formatWithArgumentRanges(self._s[3585]!, self._r[3585]!, [_1]) } - public var DialogList_Draft: String { return self._s[3577]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3578]! } + public var DialogList_Draft: String { return self._s[3586]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3587]! } public func PeopleNearby_VisibleUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3579]!, self._r[3579]!, [_0]) + return formatWithArgumentRanges(self._s[3588]!, self._r[3588]!, [_0]) } - public var ChatList_PsaAlert_covid: String { return self._s[3580]! } - public var Privacy_TopPeersDelete: String { return self._s[3582]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3583]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3584]! } - public var WebSearch_RecentSectionClear: String { return self._s[3585]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3586]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3588]! } - public var PeerInfo_ButtonMore: String { return self._s[3590]! } - public var Common_Done: String { return self._s[3591]! } - public var Shortcut_SwitchAccount: String { return self._s[3592]! } - public var AuthSessions_EmptyText: String { return self._s[3593]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3594]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3595]! } - public var Tour_Title5: String { return self._s[3597]! } - public var Wallet_Settings_Title: String { return self._s[3598]! } + public var ChatList_PsaAlert_covid: String { return self._s[3589]! } + public var Privacy_TopPeersDelete: String { return self._s[3591]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3592]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3593]! } + public var WebSearch_RecentSectionClear: String { return self._s[3594]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3595]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3597]! } + public var PeerInfo_ButtonMore: String { return self._s[3599]! } + public var Common_Done: String { return self._s[3600]! } + public var Shortcut_SwitchAccount: String { return self._s[3601]! } + public var AuthSessions_EmptyText: String { return self._s[3602]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3603]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3604]! } + public var Tour_Title5: String { return self._s[3606]! } + public var Wallet_Settings_Title: String { return self._s[3607]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3599]!, self._r[3599]!, [_0]) + return formatWithArgumentRanges(self._s[3608]!, self._r[3608]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3600]! } - public var Conversation_LinkDialogSave: String { return self._s[3601]! } - public var GroupInfo_ActionRestrict: String { return self._s[3602]! } - public var Checkout_Title: String { return self._s[3604]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3606]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3608]! } - public var Notification_RenamedGroup: String { return self._s[3609]! } - public var PeopleNearby_Groups: String { return self._s[3610]! } - public var Checkout_PayWithFaceId: String { return self._s[3611]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3612]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3614]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3615]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3616]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3609]! } + public var Conversation_LinkDialogSave: String { return self._s[3610]! } + public var GroupInfo_ActionRestrict: String { return self._s[3611]! } + public var Checkout_Title: String { return self._s[3613]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3615]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3617]! } + public var Notification_RenamedGroup: String { return self._s[3618]! } + public var PeopleNearby_Groups: String { return self._s[3619]! } + public var Checkout_PayWithFaceId: String { return self._s[3620]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3621]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3623]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3624]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3625]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3617]!, self._r[3617]!, [_0]) + return formatWithArgumentRanges(self._s[3626]!, self._r[3626]!, [_0]) } - public var Stats_GroupGrowthTitle: String { return self._s[3618]! } - public var Profile_AddToExisting: String { return self._s[3620]! } + public var Stats_GroupGrowthTitle: String { return self._s[3627]! } + public var Profile_AddToExisting: String { return self._s[3629]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3621]!, self._r[3621]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3630]!, self._r[3630]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3623]! } - public var Permissions_PrivacyPolicy: String { return self._s[3625]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3626]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3627]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3629]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3631]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3632]! } + public var Cache_Files: String { return self._s[3632]! } + public var Permissions_PrivacyPolicy: String { return self._s[3634]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3635]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3636]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3638]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3640]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3641]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3633]!, self._r[3633]!, [_0]) + return formatWithArgumentRanges(self._s[3642]!, self._r[3642]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3634]! } - public var VoiceOver_AttachMedia: String { return self._s[3637]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3638]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3643]! } + public var VoiceOver_AttachMedia: String { return self._s[3646]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3647]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3639]!, self._r[3639]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3648]!, self._r[3648]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3640]! } - public var Conversation_SetReminder_Title: String { return self._s[3641]! } - public var Passport_FieldAddressHelp: String { return self._s[3642]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3643]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3644]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3649]! } + public var Conversation_SetReminder_Title: String { return self._s[3650]! } + public var Passport_FieldAddressHelp: String { return self._s[3651]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3652]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3653]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3645]!, self._r[3645]!, [_0]) + return formatWithArgumentRanges(self._s[3654]!, self._r[3654]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3646]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3647]! } - public var Login_UnknownError: String { return self._s[3648]! } - public var Group_UpgradeNoticeText2: String { return self._s[3651]! } - public var Watch_Compose_AddContact: String { return self._s[3652]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3653]! } - public var Web_Error: String { return self._s[3654]! } - public var Paint_Neon: String { return self._s[3655]! } - public var Gif_Search: String { return self._s[3656]! } - public var Profile_MessageLifetime1h: String { return self._s[3657]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3658]! } - public var Channel_Username_CheckingUsername: String { return self._s[3659]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3660]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3661]! } - public var Channel_AboutItem: String { return self._s[3662]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3665]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3666]! } - public var GroupInfo_SharedMedia: String { return self._s[3667]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3655]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3656]! } + public var Login_UnknownError: String { return self._s[3657]! } + public var Group_UpgradeNoticeText2: String { return self._s[3660]! } + public var Watch_Compose_AddContact: String { return self._s[3661]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3662]! } + public var Web_Error: String { return self._s[3663]! } + public var Paint_Neon: String { return self._s[3664]! } + public var Gif_Search: String { return self._s[3665]! } + public var Profile_MessageLifetime1h: String { return self._s[3666]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3667]! } + public var Channel_Username_CheckingUsername: String { return self._s[3668]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3669]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3670]! } + public var Channel_AboutItem: String { return self._s[3671]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3674]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3675]! } + public var GroupInfo_SharedMedia: String { return self._s[3676]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3668]!, self._r[3668]!, [_1]) + return formatWithArgumentRanges(self._s[3677]!, self._r[3677]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[3669]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3678]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3670]!, self._r[3670]!, [_1]) + return formatWithArgumentRanges(self._s[3679]!, self._r[3679]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3671]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3672]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3673]! } - public var CreatePoll_AddOption: String { return self._s[3674]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3675]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3676]! } - public var Channel_Management_AddModerator: String { return self._s[3677]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3678]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3679]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3680]! } - public var Theme_Colors_Background: String { return self._s[3681]! } - public var NotificationsSound_Hello: String { return self._s[3684]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3686]! } - public var Channel_Stickers_Placeholder: String { return self._s[3688]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3680]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3681]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3682]! } + public var CreatePoll_AddOption: String { return self._s[3683]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3684]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3685]! } + public var Channel_Management_AddModerator: String { return self._s[3686]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3687]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3688]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3689]! } + public var Theme_Colors_Background: String { return self._s[3690]! } + public var NotificationsSound_Hello: String { return self._s[3693]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3695]! } + public var Channel_Stickers_Placeholder: String { return self._s[3697]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3689]!, self._r[3689]!, [_0]) + return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3690]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3691]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3692]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3693]! } - public var AutoDownloadSettings_Channels: String { return self._s[3694]! } - public var Passport_Language_mn: String { return self._s[3695]! } - public var Settings_ChatFolders: String { return self._s[3696]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3699]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3700]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3701]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3702]! } + public var AutoDownloadSettings_Channels: String { return self._s[3703]! } + public var Passport_Language_mn: String { return self._s[3704]! } + public var Settings_ChatFolders: String { return self._s[3705]! } public func ChatList_AddedToFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3697]!, self._r[3697]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_1, _2]) } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3700]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3701]! } - public var Passport_Language_ja: String { return self._s[3703]! } - public var Settings_About_Title: String { return self._s[3704]! } - public var Settings_NotificationsAndSounds: String { return self._s[3705]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3706]! } - public var Settings_BlockedUsers: String { return self._s[3707]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3709]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3710]! } + public var Passport_Language_ja: String { return self._s[3712]! } + public var Settings_About_Title: String { return self._s[3713]! } + public var Settings_NotificationsAndSounds: String { return self._s[3714]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3715]! } + public var Settings_BlockedUsers: String { return self._s[3716]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3708]!, self._r[3708]!, [_0]) + return formatWithArgumentRanges(self._s[3717]!, self._r[3717]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3709]! } - public var Wallet_Weekday_Today: String { return self._s[3710]! } - public var ChatListFolderSettings_AddRecommended: String { return self._s[3711]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3712]! } - public var Widget_ApplicationLocked: String { return self._s[3713]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3714]! } - public var Channel_Username_Title: String { return self._s[3715]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3718]! } + public var Wallet_Weekday_Today: String { return self._s[3719]! } + public var ChatListFolderSettings_AddRecommended: String { return self._s[3720]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3721]! } + public var Widget_ApplicationLocked: String { return self._s[3722]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3723]! } + public var Channel_Username_Title: String { return self._s[3724]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3716]!, self._r[3716]!, [_0]) + return formatWithArgumentRanges(self._s[3725]!, self._r[3725]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3718]! } - public var AppleWatch_Title: String { return self._s[3719]! } - public var Activity_RecordingVideoMessage: String { return self._s[3720]! } + public var AttachmentMenu_File: String { return self._s[3727]! } + public var AppleWatch_Title: String { return self._s[3728]! } + public var Activity_RecordingVideoMessage: String { return self._s[3729]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3721]!, self._r[3721]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3730]!, self._r[3730]!, [_1, _2]) } - public var Theme_Colors_Messages: String { return self._s[3722]! } - public var Weekday_Saturday: String { return self._s[3723]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3724]! } - public var Conversation_Timer_Send: String { return self._s[3725]! } - public var Settings_CancelUpload: String { return self._s[3726]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3727]! } - public var Common_Next: String { return self._s[3729]! } - public var Channel_Stickers_YourStickers: String { return self._s[3731]! } - public var Message_Theme: String { return self._s[3732]! } - public var Call_AudioRouteHeadphones: String { return self._s[3733]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3735]! } - public var Watch_Contacts_NoResults: String { return self._s[3737]! } - public var PhotoEditor_TintTool: String { return self._s[3740]! } - public var LoginPassword_ResetAccount: String { return self._s[3742]! } - public var Settings_SavedMessages: String { return self._s[3743]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3744]! } - public var Bot_GenericSupportStatus: String { return self._s[3745]! } - public var StickerPack_Add: String { return self._s[3746]! } - public var Checkout_TotalAmount: String { return self._s[3747]! } - public var Your_cards_number_is_invalid: String { return self._s[3748]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3749]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3750]! } + public var Theme_Colors_Messages: String { return self._s[3731]! } + public var Weekday_Saturday: String { return self._s[3732]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3733]! } + public var Conversation_Timer_Send: String { return self._s[3734]! } + public var Settings_CancelUpload: String { return self._s[3735]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3736]! } + public var Common_Next: String { return self._s[3738]! } + public var Channel_Stickers_YourStickers: String { return self._s[3740]! } + public var Message_Theme: String { return self._s[3741]! } + public var Call_AudioRouteHeadphones: String { return self._s[3742]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3744]! } + public var Watch_Contacts_NoResults: String { return self._s[3746]! } + public var PhotoEditor_TintTool: String { return self._s[3749]! } + public var LoginPassword_ResetAccount: String { return self._s[3751]! } + public var Settings_SavedMessages: String { return self._s[3752]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3753]! } + public var Bot_GenericSupportStatus: String { return self._s[3754]! } + public var StickerPack_Add: String { return self._s[3755]! } + public var Checkout_TotalAmount: String { return self._s[3756]! } + public var Your_cards_number_is_invalid: String { return self._s[3757]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3758]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3759]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3751]!, self._r[3751]!, [_0]) + return formatWithArgumentRanges(self._s[3760]!, self._r[3760]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3752]!, self._r[3752]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3761]!, self._r[3761]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3753]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3762]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3755]!, self._r[3755]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3764]!, self._r[3764]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3756]!, self._r[3756]!, [_0]) + return formatWithArgumentRanges(self._s[3765]!, self._r[3765]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3757]! } - public var StickerPack_Share: String { return self._s[3758]! } - public var Passport_DeleteAddress: String { return self._s[3759]! } - public var Settings_Passport: String { return self._s[3760]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3761]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3762]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3763]! } - public var Contacts_PermissionsText: String { return self._s[3764]! } - public var Group_Setup_HistoryVisible: String { return self._s[3765]! } - public var Wallet_Month_ShortDecember: String { return self._s[3767]! } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3769]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3770]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3771]! } - public var SocksProxySetup_Title: String { return self._s[3772]! } - public var Notification_Mute1h: String { return self._s[3773]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3766]! } + public var StickerPack_Share: String { return self._s[3767]! } + public var Passport_DeleteAddress: String { return self._s[3768]! } + public var Settings_Passport: String { return self._s[3769]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3770]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3771]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3772]! } + public var Contacts_PermissionsText: String { return self._s[3773]! } + public var Group_Setup_HistoryVisible: String { return self._s[3774]! } + public var Wallet_Month_ShortDecember: String { return self._s[3776]! } + public var PrivacySettings_AutoArchiveTitle: String { return self._s[3778]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3779]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3780]! } + public var SocksProxySetup_Title: String { return self._s[3781]! } + public var Notification_Mute1h: String { return self._s[3782]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3774]!, self._r[3774]!, [_0]) + return formatWithArgumentRanges(self._s[3783]!, self._r[3783]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3775]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3784]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3776]!, self._r[3776]!, [_1]) + return formatWithArgumentRanges(self._s[3785]!, self._r[3785]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3777]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3780]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3782]! } - public var DialogList_NoMessagesText: String { return self._s[3783]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3784]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3785]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3787]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3788]! } - public var Common_TakePhotoOrVideo: String { return self._s[3789]! } - public var Wallet_Words_Text: String { return self._s[3790]! } - public var Call_StatusBusy: String { return self._s[3791]! } - public var Conversation_PinnedMessage: String { return self._s[3792]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3793]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3794]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3795]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3796]! } - public var Undo_ChatCleared: String { return self._s[3797]! } - public var CreatePoll_Explanation: String { return self._s[3798]! } - public var AppleWatch_ReplyPresets: String { return self._s[3799]! } - public var Passport_DiscardMessageDescription: String { return self._s[3801]! } - public var Login_NetworkError: String { return self._s[3802]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3786]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3789]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3791]! } + public var DialogList_NoMessagesText: String { return self._s[3792]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3793]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3794]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3796]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3797]! } + public var Common_TakePhotoOrVideo: String { return self._s[3798]! } + public var Wallet_Words_Text: String { return self._s[3799]! } + public var Call_StatusBusy: String { return self._s[3800]! } + public var Conversation_PinnedMessage: String { return self._s[3801]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3802]! } + public var ChatList_EmptyChatListNewMessage: String { return self._s[3803]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3804]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3805]! } + public var Undo_ChatCleared: String { return self._s[3806]! } + public var CreatePoll_Explanation: String { return self._s[3807]! } + public var AppleWatch_ReplyPresets: String { return self._s[3808]! } + public var Passport_DiscardMessageDescription: String { return self._s[3810]! } + public var Login_NetworkError: String { return self._s[3811]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3803]!, self._r[3803]!, [_0]) + return formatWithArgumentRanges(self._s[3812]!, self._r[3812]!, [_0]) } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3804]!, self._r[3804]!, [_0]) + return formatWithArgumentRanges(self._s[3813]!, self._r[3813]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3805]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3807]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3808]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3814]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3816]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3817]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3810]!, self._r[3810]!, [_0]) + return formatWithArgumentRanges(self._s[3819]!, self._r[3819]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3811]! } - public var VoiceOver_Chat_Music: String { return self._s[3812]! } - public var ChatListFolder_CategoryContacts: String { return self._s[3813]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3814]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3816]! } - public var ConversationMedia_Title: String { return self._s[3817]! } - public var EncryptionKey_Title: String { return self._s[3819]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3820]! } - public var Notification_Exceptions_AddException: String { return self._s[3821]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3822]! } - public var Profile_MessageLifetime1m: String { return self._s[3823]! } + public var Call_ConnectionErrorMessage: String { return self._s[3820]! } + public var VoiceOver_Chat_Music: String { return self._s[3821]! } + public var ChatListFolder_CategoryContacts: String { return self._s[3822]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3823]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3825]! } + public var ConversationMedia_Title: String { return self._s[3826]! } + public var EncryptionKey_Title: String { return self._s[3828]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3829]! } + public var Notification_Exceptions_AddException: String { return self._s[3830]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3831]! } + public var Profile_MessageLifetime1m: String { return self._s[3832]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3824]!, self._r[3824]!, [_1]) + return formatWithArgumentRanges(self._s[3833]!, self._r[3833]!, [_1]) } - public var Month_GenMay: String { return self._s[3825]! } + public var Month_GenMay: String { return self._s[3834]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3826]!, self._r[3826]!, [_0]) + return formatWithArgumentRanges(self._s[3835]!, self._r[3835]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3827]! } - public var Wallet_Send_AddressInfo: String { return self._s[3828]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3829]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3830]! } + public var PeopleNearby_Users: String { return self._s[3836]! } + public var Wallet_Send_AddressInfo: String { return self._s[3837]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3838]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3839]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_0]) + return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_0]) } - public var Stats_LoadingTitle: String { return self._s[3833]! } - public var Conversation_EmptyPlaceholder: String { return self._s[3834]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3835]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3836]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3837]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3838]! } - public var Channel_JoinChannel: String { return self._s[3841]! } - public var Appearance_Animations: String { return self._s[3844]! } + public var Stats_LoadingTitle: String { return self._s[3842]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3843]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3844]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3845]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3846]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3847]! } + public var Channel_JoinChannel: String { return self._s[3850]! } + public var Appearance_Animations: String { return self._s[3853]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3845]!, self._r[3845]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3854]!, self._r[3854]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3847]! } - public var Appearance_ShareTheme: String { return self._s[3848]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3849]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3853]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3854]! } - public var Passport_Address_Street: String { return self._s[3855]! } - public var Conversation_AddContact: String { return self._s[3856]! } - public var Login_PhonePlaceholder: String { return self._s[3857]! } - public var Channel_Members_InviteLink: String { return self._s[3859]! } - public var Bot_Stop: String { return self._s[3860]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3862]! } - public var Notification_PassportValueAddress: String { return self._s[3863]! } - public var Month_ShortJuly: String { return self._s[3864]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3865]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3866]! } - public var Passport_Identity_ReverseSide: String { return self._s[3867]! } - public var Watch_Stickers_Recents: String { return self._s[3871]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3873]! } - public var Map_SendThisLocation: String { return self._s[3874]! } + public var Stickers_GroupStickers: String { return self._s[3856]! } + public var Appearance_ShareTheme: String { return self._s[3857]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3858]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3862]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3863]! } + public var Passport_Address_Street: String { return self._s[3864]! } + public var Conversation_AddContact: String { return self._s[3865]! } + public var Login_PhonePlaceholder: String { return self._s[3866]! } + public var Channel_Members_InviteLink: String { return self._s[3868]! } + public var Bot_Stop: String { return self._s[3869]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3871]! } + public var Notification_PassportValueAddress: String { return self._s[3872]! } + public var Month_ShortJuly: String { return self._s[3873]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3874]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3875]! } + public var Passport_Identity_ReverseSide: String { return self._s[3876]! } + public var Watch_Stickers_Recents: String { return self._s[3880]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3882]! } + public var Map_SendThisLocation: String { return self._s[3883]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_0]) + return formatWithArgumentRanges(self._s[3884]!, self._r[3884]!, [_0]) } public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_0]) + return formatWithArgumentRanges(self._s[3885]!, self._r[3885]!, [_0]) } - public var ConvertToSupergroup_Note: String { return self._s[3877]! } - public var Wallet_Intro_NotNow: String { return self._s[3878]! } - public var Stats_GroupMembers: String { return self._s[3879]! } + public var ConvertToSupergroup_Note: String { return self._s[3886]! } + public var Wallet_Intro_NotNow: String { return self._s[3887]! } + public var Stats_GroupMembers: String { return self._s[3888]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3880]!, self._r[3880]!, [_0]) + return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3881]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3890]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3882]!, self._r[3882]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3891]!, self._r[3891]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3884]! } - public var Wallpaper_SearchShort: String { return self._s[3885]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3887]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3888]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3889]! } + public var Login_CallRequestState3: String { return self._s[3893]! } + public var Wallpaper_SearchShort: String { return self._s[3894]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3896]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3897]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3898]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3890]!, self._r[3890]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3899]!, self._r[3899]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3891]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3893]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3896]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3900]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3902]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3905]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3897]!, self._r[3897]!, [_0]) + return formatWithArgumentRanges(self._s[3906]!, self._r[3906]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3898]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3899]! } + public var Passport_CorrectErrors: String { return self._s[3907]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3908]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3900]!, self._r[3900]!, [_0]) + return formatWithArgumentRanges(self._s[3909]!, self._r[3909]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3901]! } - public var Channel_DiscussionGroup: String { return self._s[3903]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3904]! } + public var Map_SendMyCurrentLocation: String { return self._s[3910]! } + public var Channel_DiscussionGroup: String { return self._s[3912]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3913]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3905]!, self._r[3905]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3914]!, self._r[3914]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3906]! } - public var Permissions_NotificationsText_v0: String { return self._s[3907]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3908]! } - public var Appearance_AppIcon: String { return self._s[3909]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3910]! } - public var LoginPassword_FloodError: String { return self._s[3911]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3913]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3914]! } + public var SharedMedia_SearchNoResults: String { return self._s[3915]! } + public var Permissions_NotificationsText_v0: String { return self._s[3916]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3917]! } + public var Appearance_AppIcon: String { return self._s[3918]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3919]! } + public var LoginPassword_FloodError: String { return self._s[3920]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3922]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3923]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_0]) + return formatWithArgumentRanges(self._s[3924]!, self._r[3924]!, [_0]) } - public var Passport_Language_bn: String { return self._s[3916]! } + public var Passport_Language_bn: String { return self._s[3925]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3917]!, self._r[3917]!, [_0]) + return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_0]) } - public var ChatList_Context_Pin: String { return self._s[3918]! } + public var ChatList_Context_Pin: String { return self._s[3927]! } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3919]!, self._r[3919]!, [_0]) + return formatWithArgumentRanges(self._s[3928]!, self._r[3928]!, [_0]) } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3920]!, self._r[3920]!, [_0]) + return formatWithArgumentRanges(self._s[3929]!, self._r[3929]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3921]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3925]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3927]! } - public var Wallet_Month_GenDecember: String { return self._s[3928]! } - public var Contacts_PermissionsAllow: String { return self._s[3929]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3930]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3931]! } - public var WallpaperPreview_Pattern: String { return self._s[3932]! } - public var Paint_Duplicate: String { return self._s[3933]! } - public var Passport_Address_Country: String { return self._s[3934]! } - public var Notification_RenamedChannel: String { return self._s[3936]! } - public var DialogList_UnknownPinLimitError: String { return self._s[3937]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3938]! } - public var ChatList_Context_Unmute: String { return self._s[3939]! } - public var KeyCommand_SearchInChat: String { return self._s[3940]! } - public var Group_MessagePhotoUpdated: String { return self._s[3941]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3942]! } - public var Conversation_ContextMenuBan: String { return self._s[3943]! } - public var TwoStepAuth_EmailSent: String { return self._s[3944]! } - public var Settings_SetProfilePhotoOrVideo: String { return self._s[3945]! } - public var MessagePoll_NoVotes: String { return self._s[3946]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3947]! } - public var Passport_Language_is: String { return self._s[3949]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3951]! } - public var Tour_Text5: String { return self._s[3952]! } + public var Wallet_Navigation_Close: String { return self._s[3930]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3934]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3936]! } + public var Wallet_Month_GenDecember: String { return self._s[3937]! } + public var Contacts_PermissionsAllow: String { return self._s[3938]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3939]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3940]! } + public var WallpaperPreview_Pattern: String { return self._s[3941]! } + public var Paint_Duplicate: String { return self._s[3942]! } + public var Passport_Address_Country: String { return self._s[3943]! } + public var Notification_RenamedChannel: String { return self._s[3945]! } + public var DialogList_UnknownPinLimitError: String { return self._s[3946]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3947]! } + public var ChatList_Context_Unmute: String { return self._s[3948]! } + public var KeyCommand_SearchInChat: String { return self._s[3949]! } + public var Group_MessagePhotoUpdated: String { return self._s[3950]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3951]! } + public var Conversation_ContextMenuBan: String { return self._s[3952]! } + public var TwoStepAuth_EmailSent: String { return self._s[3953]! } + public var Settings_SetProfilePhotoOrVideo: String { return self._s[3954]! } + public var MessagePoll_NoVotes: String { return self._s[3955]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3956]! } + public var Passport_Language_is: String { return self._s[3958]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3960]! } + public var Tour_Text5: String { return self._s[3961]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3964]!, self._r[3964]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3956]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3957]! } + public var Undo_SecretChatDeleted: String { return self._s[3965]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3966]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3958]!, self._r[3958]!, [_0]) + return formatWithArgumentRanges(self._s[3967]!, self._r[3967]!, [_0]) } - public var Forward_ErrorDisabledForChat: String { return self._s[3959]! } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3961]! } - public var Paint_Edit: String { return self._s[3963]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3965]! } - public var Undo_DeletedGroup: String { return self._s[3967]! } - public var LoginPassword_ForgotPassword: String { return self._s[3968]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3969]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3970]! } + public var Forward_ErrorDisabledForChat: String { return self._s[3968]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3970]! } + public var Paint_Edit: String { return self._s[3972]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3974]! } + public var Undo_DeletedGroup: String { return self._s[3976]! } + public var LoginPassword_ForgotPassword: String { return self._s[3977]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3978]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3979]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3971]!, self._r[3971]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3980]!, self._r[3980]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3972]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3973]! } - public var Conversation_ContextMenuMention: String { return self._s[3974]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3975]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3976]! } - public var Passport_Language_uz: String { return self._s[3977]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3978]! } - public var Channel_MessageVideoUpdated: String { return self._s[3980]! } - public var Map_StopLiveLocation: String { return self._s[3981]! } - public var VoiceOver_MessageContextSend: String { return self._s[3983]! } - public var PasscodeSettings_Help: String { return self._s[3984]! } - public var NotificationsSound_Input: String { return self._s[3985]! } - public var ProfilePhoto_MainVideo: String { return self._s[3987]! } - public var Share_Title: String { return self._s[3989]! } - public var LogoutOptions_Title: String { return self._s[3990]! } - public var Wallet_Send_AddressText: String { return self._s[3991]! } - public var Login_TermsOfServiceAgree: String { return self._s[3992]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3993]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3994]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3995]! } - public var EnterPasscode_EnterTitle: String { return self._s[3996]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3981]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3982]! } + public var Conversation_ContextMenuMention: String { return self._s[3983]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3984]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3985]! } + public var Passport_Language_uz: String { return self._s[3986]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3987]! } + public var Channel_MessageVideoUpdated: String { return self._s[3989]! } + public var Map_StopLiveLocation: String { return self._s[3990]! } + public var VoiceOver_MessageContextSend: String { return self._s[3992]! } + public var PasscodeSettings_Help: String { return self._s[3993]! } + public var NotificationsSound_Input: String { return self._s[3994]! } + public var ProfilePhoto_MainVideo: String { return self._s[3996]! } + public var Share_Title: String { return self._s[3998]! } + public var LogoutOptions_Title: String { return self._s[3999]! } + public var Wallet_Send_AddressText: String { return self._s[4000]! } + public var Login_TermsOfServiceAgree: String { return self._s[4001]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[4002]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[4003]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[4004]! } + public var EnterPasscode_EnterTitle: String { return self._s[4005]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3997]!, self._r[3997]!, [_0]) + return formatWithArgumentRanges(self._s[4006]!, self._r[4006]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3998]! } - public var Conversation_AddToContacts: String { return self._s[3999]! } + public var Settings_CopyPhoneNumber: String { return self._s[4007]! } + public var Conversation_AddToContacts: String { return self._s[4008]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4000]!, self._r[4000]!, [_0]) + return formatWithArgumentRanges(self._s[4009]!, self._r[4009]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[4001]! } + public var NotificationsSound_Keys: String { return self._s[4010]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4002]!, self._r[4002]!, [_0]) - } - public var Notification_MessageLifetime1w: String { return self._s[4003]! } - public var Message_Video: String { return self._s[4004]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[4005]! } - public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4006]!, self._r[4006]!, [_1]) - } - public var Wallet_Receive_AmountInfo: String { return self._s[4009]! } - public var Stats_Overview: String { return self._s[4010]! } - public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4011]!, self._r[4011]!, [_0]) } + public var Notification_MessageLifetime1w: String { return self._s[4012]! } + public var Message_Video: String { return self._s[4013]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[4014]! } + public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4015]!, self._r[4015]!, [_1]) + } + public var Wallet_Receive_AmountInfo: String { return self._s[4018]! } + public var Stats_Overview: String { return self._s[4019]! } + public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4020]!, self._r[4020]!, [_0]) + } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4012]!, self._r[4012]!, [_0]) + return formatWithArgumentRanges(self._s[4021]!, self._r[4021]!, [_0]) } - public var ChatListFolder_ExcludeChatsTitle: String { return self._s[4013]! } - public var Passport_Language_mk: String { return self._s[4014]! } - public var ChatListFolder_CategoryNonContacts: String { return self._s[4015]! } + public var ChatListFolder_ExcludeChatsTitle: String { return self._s[4022]! } + public var Passport_Language_mk: String { return self._s[4023]! } + public var ChatListFolder_CategoryNonContacts: String { return self._s[4024]! } public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4016]!, self._r[4016]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4025]!, self._r[4025]!, [_1, _2, _3]) } - public var CreatePoll_CancelConfirmation: String { return self._s[4017]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[4018]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[4020]! } - public var PrivacyPolicy_Decline: String { return self._s[4021]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4022]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[4023]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[4024]! } - public var Permissions_SiriAllow_v0: String { return self._s[4026]! } - public var Wallet_Month_ShortAugust: String { return self._s[4027]! } - public var Appearance_ThemeCarouselNight: String { return self._s[4028]! } + public var CreatePoll_CancelConfirmation: String { return self._s[4026]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[4027]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[4029]! } + public var PrivacyPolicy_Decline: String { return self._s[4030]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4031]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[4032]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[4033]! } + public var Permissions_SiriAllow_v0: String { return self._s[4035]! } + public var Wallet_Month_ShortAugust: String { return self._s[4036]! } + public var Appearance_ThemeCarouselNight: String { return self._s[4037]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4029]!, self._r[4029]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4038]!, self._r[4038]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4030]!, self._r[4030]!, [_0]) + return formatWithArgumentRanges(self._s[4039]!, self._r[4039]!, [_0]) } - public var Paint_Regular: String { return self._s[4031]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[4032]! } - public var SocksProxySetup_ShareLink: String { return self._s[4033]! } - public var Wallet_Qr_Title: String { return self._s[4034]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[4035]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[4037]! } - public var Wallet_Settings_Configuration: String { return self._s[4038]! } - public var GroupInfo_InviteByLink: String { return self._s[4039]! } - public var MessageTimer_Custom: String { return self._s[4040]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[4041]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[4042]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[4044]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[4045]! } - public var VoiceOver_Chat_Selected: String { return self._s[4046]! } - public var Paint_Pen: String { return self._s[4047]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4048]! } - public var Channel_Username_InvalidTaken: String { return self._s[4049]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[4050]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[4051]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[4052]! } - public var Settings_ChatBackground: String { return self._s[4053]! } - public var Channel_Subscribers_Title: String { return self._s[4054]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[4055]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[4056]! } - public var Watch_ConnectionDescription: String { return self._s[4057]! } - public var OldChannels_NoticeText: String { return self._s[4060]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[4061]! } - public var IntentsSettings_SuggestBy: String { return self._s[4063]! } - public var Theme_ThemeChangedText: String { return self._s[4064]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4065]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4066]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[4067]! } - public var Conversation_SendDice: String { return self._s[4068]! } - public var EditProfile_Title: String { return self._s[4069]! } - public var NotificationsSound_Bamboo: String { return self._s[4071]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[4073]! } - public var Login_SmsRequestState2: String { return self._s[4074]! } - public var Passport_Language_ar: String { return self._s[4075]! } + public var Paint_Regular: String { return self._s[4040]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[4041]! } + public var SocksProxySetup_ShareLink: String { return self._s[4042]! } + public var Wallet_Qr_Title: String { return self._s[4043]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[4044]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[4046]! } + public var Wallet_Settings_Configuration: String { return self._s[4047]! } + public var GroupInfo_InviteByLink: String { return self._s[4048]! } + public var MessageTimer_Custom: String { return self._s[4049]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[4050]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[4051]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[4053]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[4054]! } + public var VoiceOver_Chat_Selected: String { return self._s[4055]! } + public var Paint_Pen: String { return self._s[4056]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4057]! } + public var Channel_Username_InvalidTaken: String { return self._s[4058]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[4059]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[4060]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[4061]! } + public var Settings_ChatBackground: String { return self._s[4062]! } + public var Channel_Subscribers_Title: String { return self._s[4063]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[4064]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[4065]! } + public var Watch_ConnectionDescription: String { return self._s[4066]! } + public var OldChannels_NoticeText: String { return self._s[4069]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[4070]! } + public var IntentsSettings_SuggestBy: String { return self._s[4072]! } + public var Theme_ThemeChangedText: String { return self._s[4073]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4074]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4075]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[4076]! } + public var Conversation_SendDice: String { return self._s[4077]! } + public var EditProfile_Title: String { return self._s[4078]! } + public var NotificationsSound_Bamboo: String { return self._s[4080]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[4082]! } + public var Login_SmsRequestState2: String { return self._s[4083]! } + public var Passport_Language_ar: String { return self._s[4084]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4076]!, self._r[4076]!, [_0]) + return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4077]! } - public var Wallet_Created_Text: String { return self._s[4078]! } - public var Conversation_MessageDialogEdit: String { return self._s[4080]! } - public var Wallet_Created_Proceed: String { return self._s[4081]! } - public var Wallet_Words_Done: String { return self._s[4082]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[4083]! } - public var ChatListFolder_NameChannels: String { return self._s[4084]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4086]! } + public var Wallet_Created_Text: String { return self._s[4087]! } + public var Conversation_MessageDialogEdit: String { return self._s[4089]! } + public var Wallet_Created_Proceed: String { return self._s[4090]! } + public var Wallet_Words_Done: String { return self._s[4091]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[4092]! } + public var ChatListFolder_NameChannels: String { return self._s[4093]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_1]) + return formatWithArgumentRanges(self._s[4094]!, self._r[4094]!, [_1]) } - public var Common_Close: String { return self._s[4087]! } - public var GroupInfo_PublicLink: String { return self._s[4088]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[4089]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4090]! } - public var Conversation_ContextMenuOpenChannel: String { return self._s[4094]! } + public var Common_Close: String { return self._s[4096]! } + public var GroupInfo_PublicLink: String { return self._s[4097]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[4098]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4099]! } + public var Conversation_ContextMenuOpenChannel: String { return self._s[4103]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4095]!, self._r[4095]!, [_0]) + return formatWithArgumentRanges(self._s[4104]!, self._r[4104]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[4096]! } + public var UserInfo_About_Placeholder: String { return self._s[4105]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4097]!, self._r[4097]!, [_0]) + return formatWithArgumentRanges(self._s[4106]!, self._r[4106]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[4098]! } - public var Channel_Info_Banned: String { return self._s[4100]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[4107]! } + public var Channel_Info_Banned: String { return self._s[4109]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4101]!, self._r[4101]!, [_0]) + return formatWithArgumentRanges(self._s[4110]!, self._r[4110]!, [_0]) } - public var Appearance_Other: String { return self._s[4102]! } - public var Passport_Language_my: String { return self._s[4103]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[4104]! } + public var Appearance_Other: String { return self._s[4111]! } + public var Passport_Language_my: String { return self._s[4112]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[4113]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4105]!, self._r[4105]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4114]!, self._r[4114]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[4106]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[4107]! } - public var Preview_CopyAddress: String { return self._s[4108]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[4115]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[4116]! } + public var Preview_CopyAddress: String { return self._s[4117]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4109]!, self._r[4109]!, [_0]) + return formatWithArgumentRanges(self._s[4118]!, self._r[4118]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[4110]! } - public var UserInfo_BotSettings: String { return self._s[4111]! } - public var LiveLocation_MenuStopAll: String { return self._s[4113]! } - public var Passport_PasswordCreate: String { return self._s[4114]! } - public var StickerSettings_MaskContextInfo: String { return self._s[4115]! } - public var Message_PinnedLocationMessage: String { return self._s[4116]! } - public var Map_Satellite: String { return self._s[4117]! } - public var Watch_Message_Unsupported: String { return self._s[4118]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[4119]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[4120]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[4119]! } + public var UserInfo_BotSettings: String { return self._s[4120]! } + public var LiveLocation_MenuStopAll: String { return self._s[4122]! } + public var Passport_PasswordCreate: String { return self._s[4123]! } + public var StickerSettings_MaskContextInfo: String { return self._s[4124]! } + public var Message_PinnedLocationMessage: String { return self._s[4125]! } + public var Map_Satellite: String { return self._s[4126]! } + public var Watch_Message_Unsupported: String { return self._s[4127]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[4128]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[4129]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4121]!, self._r[4121]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4130]!, self._r[4130]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4122]!, self._r[4122]!, [_0]) + return formatWithArgumentRanges(self._s[4131]!, self._r[4131]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[4123]! } + public var Wallet_WordImport_Continue: String { return self._s[4132]! } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4124]!, self._r[4124]!, [_0]) + return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[4125]! } - public var Privacy_Calls_P2PContacts: String { return self._s[4126]! } - public var NotificationsSound_None: String { return self._s[4127]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[4128]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4130]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4131]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[4134]! } + public var Privacy_Calls_P2PContacts: String { return self._s[4135]! } + public var NotificationsSound_None: String { return self._s[4136]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[4137]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[4139]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4140]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4132]!, self._r[4132]!, [_1]) + return formatWithArgumentRanges(self._s[4141]!, self._r[4141]!, [_1]) } - public var Cache_Indexing: String { return self._s[4133]! } - public var DialogList_RecentTitlePeople: String { return self._s[4135]! } - public var DialogList_EncryptionRejected: String { return self._s[4136]! } - public var GroupInfo_Administrators: String { return self._s[4137]! } - public var Passport_ScanPassportHelp: String { return self._s[4138]! } - public var Application_Name: String { return self._s[4139]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[4140]! } - public var Conversation_Timer_Title: String { return self._s[4141]! } - public var ChatList_PeerTypeGroup: String { return self._s[4142]! } - public var PeopleNearby_MakeVisible: String { return self._s[4144]! } - public var Appearance_ThemeCarouselDay: String { return self._s[4145]! } - public var Stats_GrowthTitle: String { return self._s[4146]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4147]! } + public var Cache_Indexing: String { return self._s[4142]! } + public var DialogList_RecentTitlePeople: String { return self._s[4144]! } + public var DialogList_EncryptionRejected: String { return self._s[4145]! } + public var GroupInfo_Administrators: String { return self._s[4146]! } + public var Passport_ScanPassportHelp: String { return self._s[4147]! } + public var Application_Name: String { return self._s[4148]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[4149]! } + public var Conversation_Timer_Title: String { return self._s[4150]! } + public var ChatList_PeerTypeGroup: String { return self._s[4151]! } + public var PeopleNearby_MakeVisible: String { return self._s[4153]! } + public var Appearance_ThemeCarouselDay: String { return self._s[4154]! } + public var Stats_GrowthTitle: String { return self._s[4155]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4156]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4148]!, self._r[4148]!, [_0]) + return formatWithArgumentRanges(self._s[4157]!, self._r[4157]!, [_0]) } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4149]!, self._r[4149]!, [_0]) + return formatWithArgumentRanges(self._s[4158]!, self._r[4158]!, [_0]) } public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_0]) + return formatWithArgumentRanges(self._s[4159]!, self._r[4159]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[4151]! } - public var Privacy_ChatsTitle: String { return self._s[4152]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[4153]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[4154]! } - public var Watch_Suggestion_HoldOn: String { return self._s[4155]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[4156]! } - public var WebBrowser_Title: String { return self._s[4157]! } - public var Group_LinkedChannel: String { return self._s[4158]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[4159]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4160]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[4161]! } - public var Appearance_TextSize_UseSystem: String { return self._s[4162]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[4163]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[4165]! } - public var Channel_Setup_TypePublic: String { return self._s[4167]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[4160]! } + public var Privacy_ChatsTitle: String { return self._s[4161]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[4162]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[4163]! } + public var Watch_Suggestion_HoldOn: String { return self._s[4164]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[4165]! } + public var WebBrowser_Title: String { return self._s[4166]! } + public var Group_LinkedChannel: String { return self._s[4167]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[4168]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4169]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[4170]! } + public var Appearance_TextSize_UseSystem: String { return self._s[4171]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[4172]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[4174]! } + public var Channel_Setup_TypePublic: String { return self._s[4176]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4168]!, self._r[4168]!, [_0]) + return formatWithArgumentRanges(self._s[4177]!, self._r[4177]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[4170]! } - public var MessagePoll_ViewResults: String { return self._s[4171]! } - public var Map_OpenInMaps: String { return self._s[4173]! } + public var Channel_TypeSetup_Title: String { return self._s[4179]! } + public var MessagePoll_ViewResults: String { return self._s[4180]! } + public var Map_OpenInMaps: String { return self._s[4182]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4174]!, self._r[4174]!, [_1]) + return formatWithArgumentRanges(self._s[4183]!, self._r[4183]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[4176]! } + public var NotificationsSound_Tremolo: String { return self._s[4185]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4177]!, self._r[4177]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4186]!, self._r[4186]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[4178]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[4179]! } - public var Passport_PasswordHelp: String { return self._s[4181]! } - public var Login_CodeExpiredError: String { return self._s[4182]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[4183]! } - public var Conversation_TitleUnmute: String { return self._s[4184]! } - public var Passport_Identity_ScansHelp: String { return self._s[4185]! } - public var Passport_Language_lo: String { return self._s[4186]! } - public var Camera_FlashAuto: String { return self._s[4187]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[4188]! } - public var Common_Cancel: String { return self._s[4189]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[4190]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[4191]! } - public var Appearance_TintAllColors: String { return self._s[4192]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[4187]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[4188]! } + public var Passport_PasswordHelp: String { return self._s[4190]! } + public var Login_CodeExpiredError: String { return self._s[4191]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[4192]! } + public var Conversation_TitleUnmute: String { return self._s[4193]! } + public var Passport_Identity_ScansHelp: String { return self._s[4194]! } + public var Passport_Language_lo: String { return self._s[4195]! } + public var Camera_FlashAuto: String { return self._s[4196]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[4197]! } + public var Common_Cancel: String { return self._s[4198]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[4199]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[4200]! } + public var Appearance_TintAllColors: String { return self._s[4201]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4193]!, self._r[4193]!, [_1]) + return formatWithArgumentRanges(self._s[4202]!, self._r[4202]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[4194]! } - public var ChatSettings_Title: String { return self._s[4196]! } - public var Passport_PasswordReset: String { return self._s[4197]! } - public var SocksProxySetup_TypeNone: String { return self._s[4198]! } - public var EditTheme_Title: String { return self._s[4201]! } - public var PhoneNumberHelp_Help: String { return self._s[4202]! } - public var Checkout_EnterPassword: String { return self._s[4203]! } - public var Activity_UploadingDocument: String { return self._s[4205]! } - public var Share_AuthTitle: String { return self._s[4206]! } - public var State_Connecting: String { return self._s[4207]! } - public var Profile_MessageLifetime1w: String { return self._s[4208]! } - public var Conversation_ContextMenuReport: String { return self._s[4209]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[4210]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[4211]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[4203]! } + public var ChatSettings_Title: String { return self._s[4205]! } + public var Passport_PasswordReset: String { return self._s[4206]! } + public var SocksProxySetup_TypeNone: String { return self._s[4207]! } + public var EditTheme_Title: String { return self._s[4210]! } + public var PhoneNumberHelp_Help: String { return self._s[4211]! } + public var Checkout_EnterPassword: String { return self._s[4212]! } + public var Activity_UploadingDocument: String { return self._s[4214]! } + public var Share_AuthTitle: String { return self._s[4215]! } + public var State_Connecting: String { return self._s[4216]! } + public var Profile_MessageLifetime1w: String { return self._s[4217]! } + public var Conversation_ContextMenuReport: String { return self._s[4218]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[4219]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[4220]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4212]!, self._r[4212]!, [_0]) + return formatWithArgumentRanges(self._s[4221]!, self._r[4221]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[4213]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[4214]! } - public var PeerInfo_PaneAudio: String { return self._s[4215]! } + public var AuthSessions_Terminate: String { return self._s[4222]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[4223]! } + public var PeerInfo_PaneAudio: String { return self._s[4224]! } public func Message_ForwardedPsa_covid(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4216]!, self._r[4216]!, [_0]) + return formatWithArgumentRanges(self._s[4225]!, self._r[4225]!, [_0]) } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[4218]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[4219]! } - public var PhotoEditor_Set: String { return self._s[4220]! } - public var EmptyGroupInfo_Title: String { return self._s[4221]! } - public var Login_PadPhoneHelp: String { return self._s[4223]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[4225]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[4227]! } - public var NotificationsSound_Complete: String { return self._s[4228]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4229]! } - public var Group_Info_AdminLog: String { return self._s[4230]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[4231]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[4227]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[4228]! } + public var PhotoEditor_Set: String { return self._s[4229]! } + public var EmptyGroupInfo_Title: String { return self._s[4230]! } + public var Login_PadPhoneHelp: String { return self._s[4232]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[4234]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[4236]! } + public var NotificationsSound_Complete: String { return self._s[4237]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4238]! } + public var Group_Info_AdminLog: String { return self._s[4239]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[4240]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4232]!, self._r[4232]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4241]!, self._r[4241]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[4233]! } - public var Group_Location_CreateInThisPlace: String { return self._s[4235]! } - public var Conversation_Admin: String { return self._s[4236]! } - public var Conversation_GifTooltip: String { return self._s[4237]! } - public var Passport_NotLoggedInMessage: String { return self._s[4238]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[4242]! } + public var Group_Location_CreateInThisPlace: String { return self._s[4244]! } + public var Conversation_Admin: String { return self._s[4245]! } + public var Conversation_GifTooltip: String { return self._s[4246]! } + public var Passport_NotLoggedInMessage: String { return self._s[4247]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4240]!, self._r[4240]!, [_0]) + return formatWithArgumentRanges(self._s[4249]!, self._r[4249]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[4241]! } - public var SharedMedia_EmptyTitle: String { return self._s[4243]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[4245]! } - public var Username_Help: String { return self._s[4246]! } - public var DialogList_LanguageTooltip: String { return self._s[4248]! } - public var Map_LoadError: String { return self._s[4249]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[4250]! } - public var Channel_AdminLog_AddMembers: String { return self._s[4251]! } - public var ArchivedChats_IntroTitle2: String { return self._s[4252]! } - public var Notification_Exceptions_NewException: String { return self._s[4253]! } - public var TwoStepAuth_EmailTitle: String { return self._s[4254]! } - public var WatchRemote_AlertText: String { return self._s[4255]! } + public var Profile_MessageLifetimeForever: String { return self._s[4250]! } + public var SharedMedia_EmptyTitle: String { return self._s[4252]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[4254]! } + public var Username_Help: String { return self._s[4255]! } + public var DialogList_LanguageTooltip: String { return self._s[4257]! } + public var Map_LoadError: String { return self._s[4258]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[4259]! } + public var Channel_AdminLog_AddMembers: String { return self._s[4260]! } + public var ArchivedChats_IntroTitle2: String { return self._s[4261]! } + public var Notification_Exceptions_NewException: String { return self._s[4262]! } + public var TwoStepAuth_EmailTitle: String { return self._s[4263]! } + public var WatchRemote_AlertText: String { return self._s[4264]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4256]!, self._r[4256]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4265]!, self._r[4265]!, [_1, _2, _3]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[4260]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[4269]! } public func PUSH_PINNED_QUIZ(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4261]!, self._r[4261]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4270]!, self._r[4270]!, [_1, _2]) } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4262]!, self._r[4262]!, [_0]) + return formatWithArgumentRanges(self._s[4271]!, self._r[4271]!, [_0]) } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[4263]! } - public var WebBrowser_DefaultBrowser: String { return self._s[4264]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[4265]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[4272]! } + public var WebBrowser_DefaultBrowser: String { return self._s[4273]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[4274]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4266]!, self._r[4266]!, [_0]) + return formatWithArgumentRanges(self._s[4275]!, self._r[4275]!, [_0]) } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4267]!, self._r[4267]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4276]!, self._r[4276]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[4268]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[4269]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[4271]! } - public var Wallet_Created_ExportErrorText: String { return self._s[4272]! } - public var ChatList_UndoArchiveText1: String { return self._s[4273]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4274]! } - public var AccessDenied_VideoMicrophone: String { return self._s[4275]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4276]! } - public var Stats_GroupTopInviter_History: String { return self._s[4277]! } - public var Cache_ClearNone: String { return self._s[4278]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[4279]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[4280]! } + public var Group_AdminLog_EmptyText: String { return self._s[4277]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[4278]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[4280]! } + public var Wallet_Created_ExportErrorText: String { return self._s[4281]! } + public var ChatList_UndoArchiveText1: String { return self._s[4282]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4283]! } + public var AccessDenied_VideoMicrophone: String { return self._s[4284]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4285]! } + public var Stats_GroupTopInviter_History: String { return self._s[4286]! } + public var Cache_ClearNone: String { return self._s[4287]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[4288]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[4289]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4281]!, self._r[4281]!, [_0]) + return formatWithArgumentRanges(self._s[4290]!, self._r[4290]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[4282]! } + public var Passport_Identity_Country: String { return self._s[4291]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4283]!, self._r[4283]!, [_0]) + return formatWithArgumentRanges(self._s[4292]!, self._r[4292]!, [_0]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4284]!, self._r[4284]!, [_0]) + return formatWithArgumentRanges(self._s[4293]!, self._r[4293]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[4285]! } - public var AccessDenied_Settings: String { return self._s[4286]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[4287]! } - public var Month_ShortMay: String { return self._s[4289]! } - public var Compose_NewGroup: String { return self._s[4291]! } - public var Group_Setup_TypePrivate: String { return self._s[4293]! } - public var Login_PadPhoneHelpTitle: String { return self._s[4295]! } - public var Appearance_ThemeDayClassic: String { return self._s[4296]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[4297]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[4298]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[4299]! } - public var Conversation_typing: String { return self._s[4301]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[4302]! } - public var Paint_Masks: String { return self._s[4303]! } - public var Contacts_DeselectAll: String { return self._s[4304]! } + public var Exceptions_AddToExceptions: String { return self._s[4294]! } + public var AccessDenied_Settings: String { return self._s[4295]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[4296]! } + public var Month_ShortMay: String { return self._s[4298]! } + public var Compose_NewGroup: String { return self._s[4300]! } + public var Group_Setup_TypePrivate: String { return self._s[4302]! } + public var Login_PadPhoneHelpTitle: String { return self._s[4304]! } + public var Appearance_ThemeDayClassic: String { return self._s[4305]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[4306]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[4307]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[4308]! } + public var Conversation_typing: String { return self._s[4310]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[4311]! } + public var Paint_Masks: String { return self._s[4312]! } + public var Contacts_DeselectAll: String { return self._s[4313]! } public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4305]!, self._r[4305]!, [_0]) + return formatWithArgumentRanges(self._s[4314]!, self._r[4314]!, [_0]) } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[4306]! } - public var Stats_GroupMembersTitle: String { return self._s[4307]! } - public var Username_InvalidTaken: String { return self._s[4308]! } - public var Call_StatusNoAnswer: String { return self._s[4309]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[4310]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4311]! } - public var Passport_Identity_Selfie: String { return self._s[4312]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[4313]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[4314]! } - public var Conversation_ClearSecretHistory: String { return self._s[4315]! } - public var PeopleNearby_Description: String { return self._s[4317]! } - public var NetworkUsageSettings_Title: String { return self._s[4318]! } - public var Your_cards_security_code_is_invalid: String { return self._s[4320]! } - public var Stats_EnabledNotifications: String { return self._s[4321]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[4315]! } + public var Stats_GroupMembersTitle: String { return self._s[4316]! } + public var Username_InvalidTaken: String { return self._s[4317]! } + public var Call_StatusNoAnswer: String { return self._s[4318]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[4319]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4320]! } + public var Passport_Identity_Selfie: String { return self._s[4321]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[4322]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[4323]! } + public var Conversation_ClearSecretHistory: String { return self._s[4324]! } + public var PeopleNearby_Description: String { return self._s[4326]! } + public var NetworkUsageSettings_Title: String { return self._s[4327]! } + public var Your_cards_security_code_is_invalid: String { return self._s[4329]! } + public var Stats_EnabledNotifications: String { return self._s[4330]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4324]!, self._r[4324]!, [_0]) + return formatWithArgumentRanges(self._s[4333]!, self._r[4333]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4325]!, self._r[4325]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4334]!, self._r[4334]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[4327]! } - public var VoiceOver_Navigation_Search: String { return self._s[4328]! } - public var Map_LiveLocationTitle: String { return self._s[4329]! } - public var Login_InfoAvatarAdd: String { return self._s[4330]! } - public var Passport_Identity_FilesView: String { return self._s[4331]! } - public var ChatListFolderSettings_Title: String { return self._s[4332]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[4333]! } - public var Privacy_Calls_NeverAllow: String { return self._s[4334]! } - public var VoiceOver_Chat_File: String { return self._s[4335]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4336]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[4336]! } + public var VoiceOver_Navigation_Search: String { return self._s[4337]! } + public var Map_LiveLocationTitle: String { return self._s[4338]! } + public var Login_InfoAvatarAdd: String { return self._s[4339]! } + public var Passport_Identity_FilesView: String { return self._s[4340]! } + public var ChatListFolderSettings_Title: String { return self._s[4341]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[4342]! } + public var Privacy_Calls_NeverAllow: String { return self._s[4343]! } + public var VoiceOver_Chat_File: String { return self._s[4344]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4345]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4337]!, self._r[4337]!, [_0]) + return formatWithArgumentRanges(self._s[4346]!, self._r[4346]!, [_0]) } - public var ChatList_EmptyChatList: String { return self._s[4339]! } - public var ContactInfo_PhoneNumberHidden: String { return self._s[4340]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[4341]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4342]! } + public var ChatList_EmptyChatList: String { return self._s[4348]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[4349]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[4350]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4351]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4343]!, self._r[4343]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4352]!, self._r[4352]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4344]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[4345]! } - public var Tour_Title2: String { return self._s[4346]! } - public var Wallet_Sent_ViewWallet: String { return self._s[4347]! } - public var Stats_GroupMessagesTitle: String { return self._s[4348]! } - public var Conversation_FileOpenIn: String { return self._s[4349]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4350]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4351]! } - public var Wallpaper_Set: String { return self._s[4352]! } - public var Passport_Identity_Translations: String { return self._s[4355]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4353]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[4354]! } + public var Tour_Title2: String { return self._s[4355]! } + public var Wallet_Sent_ViewWallet: String { return self._s[4356]! } + public var Stats_GroupMessagesTitle: String { return self._s[4357]! } + public var Conversation_FileOpenIn: String { return self._s[4358]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4359]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4360]! } + public var Wallpaper_Set: String { return self._s[4361]! } + public var Passport_Identity_Translations: String { return self._s[4364]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4356]!, self._r[4356]!, [_0]) + return formatWithArgumentRanges(self._s[4365]!, self._r[4365]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[4358]! } + public var Channel_LeaveChannel: String { return self._s[4367]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4359]!, self._r[4359]!, [_1]) + return formatWithArgumentRanges(self._s[4368]!, self._r[4368]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4361]! } - public var PhotoEditor_HighlightsTint: String { return self._s[4362]! } - public var MessagePoll_LabelPoll: String { return self._s[4363]! } - public var Passport_Email_Delete: String { return self._s[4364]! } - public var Conversation_Mute: String { return self._s[4366]! } - public var Channel_AddBotAsAdmin: String { return self._s[4367]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4369]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4370]! } - public var ChatSettings_IntentsSettings: String { return self._s[4372]! } - public var Channel_Management_LabelOwner: String { return self._s[4373]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4370]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4371]! } + public var MessagePoll_LabelPoll: String { return self._s[4372]! } + public var Passport_Email_Delete: String { return self._s[4373]! } + public var Conversation_Mute: String { return self._s[4375]! } + public var Channel_AddBotAsAdmin: String { return self._s[4376]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4378]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4379]! } + public var ChatSettings_IntentsSettings: String { return self._s[4381]! } + public var Channel_Management_LabelOwner: String { return self._s[4382]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4374]!, self._r[4374]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4383]!, self._r[4383]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[4375]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4376]! } - public var Common_No: String { return self._s[4377]! } - public var Weekday_Sunday: String { return self._s[4378]! } - public var Notification_Reply: String { return self._s[4379]! } - public var Conversation_ViewMessage: String { return self._s[4380]! } + public var Calls_CallTabDescription: String { return self._s[4384]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4385]! } + public var Common_No: String { return self._s[4386]! } + public var Weekday_Sunday: String { return self._s[4387]! } + public var Notification_Reply: String { return self._s[4388]! } + public var Conversation_ViewMessage: String { return self._s[4389]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4381]!, self._r[4381]!, [_0]) + return formatWithArgumentRanges(self._s[4390]!, self._r[4390]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4382]!, self._r[4382]!, [_0]) + return formatWithArgumentRanges(self._s[4391]!, self._r[4391]!, [_0]) } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4383]!, self._r[4383]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4392]!, self._r[4392]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4384]! } - public var Wallet_Send_Title: String { return self._s[4385]! } - public var Message_PinnedDocumentMessage: String { return self._s[4386]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4387]! } - public var DialogList_TabTitle: String { return self._s[4389]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4390]! } - public var Passport_FieldEmail: String { return self._s[4391]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4392]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4393]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4394]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4395]! } - public var Privacy_Calls_P2P: String { return self._s[4396]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4393]! } + public var Wallet_Send_Title: String { return self._s[4394]! } + public var Message_PinnedDocumentMessage: String { return self._s[4395]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4396]! } + public var DialogList_TabTitle: String { return self._s[4398]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4399]! } + public var Passport_FieldEmail: String { return self._s[4400]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4401]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4402]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4403]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4404]! } + public var Privacy_Calls_P2P: String { return self._s[4405]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4398]!, self._r[4398]!, [_0]) + return formatWithArgumentRanges(self._s[4407]!, self._r[4407]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4399]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4408]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4400]!, self._r[4400]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4409]!, self._r[4409]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4401]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4402]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4403]! } - public var Passport_InfoText: String { return self._s[4404]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4405]! } + public var Stickers_ClearRecent: String { return self._s[4410]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4411]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4412]! } + public var Passport_InfoText: String { return self._s[4413]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4414]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4406]!, self._r[4406]!, [_0]) + return formatWithArgumentRanges(self._s[4415]!, self._r[4415]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4407]!, self._r[4407]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4416]!, self._r[4416]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4408]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4409]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4410]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4411]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4413]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4414]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4417]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4418]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4419]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4420]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4422]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4423]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4415]!, self._r[4415]!, [_1, _2]) - } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4418]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4419]! } - public var Map_HomeAndWorkTitle: String { return self._s[4420]! } - public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4422]!, self._r[4422]!, [_0]) - } - public var DialogList_Unread: String { return self._s[4423]! } - public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4424]!, self._r[4424]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4425]! } - public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[4426]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4427]! } - public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4428]!, self._r[4428]!, [_0]) + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4427]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4428]! } + public var Map_HomeAndWorkTitle: String { return self._s[4429]! } + public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4431]!, self._r[4431]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[4429]! } - public var SharedMedia_CategoryMedia: String { return self._s[4430]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4431]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4432]! } - public var Watch_ChatList_Compose: String { return self._s[4433]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4434]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4435]! } - public var Watch_Microphone_Access: String { return self._s[4436]! } - public var Cache_MaximumCacheSize: String { return self._s[4437]! } - public var Group_Setup_HistoryHeader: String { return self._s[4438]! } - public var Map_SetThisLocation: String { return self._s[4439]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4440]! } - public var Activity_UploadingPhoto: String { return self._s[4441]! } - public var Conversation_Edit: String { return self._s[4443]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4444]! } - public var Login_TermsOfServiceDecline: String { return self._s[4445]! } - public var Message_PinnedContactMessage: String { return self._s[4446]! } + public var DialogList_Unread: String { return self._s[4432]! } + public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4433]!, self._r[4433]!, [_1, _2]) + } + public var User_DeletedAccount: String { return self._s[4434]! } + public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[4435]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4436]! } + public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4437]!, self._r[4437]!, [_0]) + } + public var UserInfo_NotificationsDefault: String { return self._s[4438]! } + public var SharedMedia_CategoryMedia: String { return self._s[4439]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4440]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4441]! } + public var Watch_ChatList_Compose: String { return self._s[4442]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4443]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4444]! } + public var Watch_Microphone_Access: String { return self._s[4445]! } + public var Cache_MaximumCacheSize: String { return self._s[4446]! } + public var Group_Setup_HistoryHeader: String { return self._s[4447]! } + public var Map_SetThisLocation: String { return self._s[4448]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4449]! } + public var Activity_UploadingPhoto: String { return self._s[4450]! } + public var Conversation_Edit: String { return self._s[4452]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4453]! } + public var Login_TermsOfServiceDecline: String { return self._s[4454]! } + public var Message_PinnedContactMessage: String { return self._s[4455]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4447]!, self._r[4447]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4456]!, self._r[4456]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4448]!, self._r[4448]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4457]!, self._r[4457]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4449]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4451]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4452]! } + public var Appearance_LargeEmoji: String { return self._s[4458]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4460]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4461]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4453]!, self._r[4453]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4462]!, self._r[4462]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4454]! } - public var Message_PinnedPhotoMessage: String { return self._s[4455]! } - public var Passport_FieldPhone: String { return self._s[4456]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4457]! } - public var Stats_NotificationsTitle: String { return self._s[4458]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4459]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4461]! } - public var Conversation_Call: String { return self._s[4462]! } - public var Common_TakePhoto: String { return self._s[4464]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4465]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4466]! } - public var Channel_NotificationLoading: String { return self._s[4467]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4463]! } + public var Message_PinnedPhotoMessage: String { return self._s[4464]! } + public var Passport_FieldPhone: String { return self._s[4465]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4466]! } + public var Stats_NotificationsTitle: String { return self._s[4467]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4468]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4470]! } + public var Conversation_Call: String { return self._s[4471]! } + public var Common_TakePhoto: String { return self._s[4473]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4474]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4475]! } + public var Channel_NotificationLoading: String { return self._s[4476]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4468]!, self._r[4468]!, [_0]) + return formatWithArgumentRanges(self._s[4477]!, self._r[4477]!, [_0]) } public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4469]!, self._r[4469]!, [_0]) + return formatWithArgumentRanges(self._s[4478]!, self._r[4478]!, [_0]) } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4470]!, self._r[4470]!, [_1]) + return formatWithArgumentRanges(self._s[4479]!, self._r[4479]!, [_1]) } - public var Permissions_SiriTitle_v0: String { return self._s[4471]! } + public var Permissions_SiriTitle_v0: String { return self._s[4480]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4472]!, self._r[4472]!, [_0]) + return formatWithArgumentRanges(self._s[4481]!, self._r[4481]!, [_0]) } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4473]!, self._r[4473]!, [_0]) + return formatWithArgumentRanges(self._s[4482]!, self._r[4482]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4474]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4475]! } - public var ClearCache_FreeSpace: String { return self._s[4476]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[4477]! } - public var Common_edit: String { return self._s[4478]! } - public var PrivacySettings_AuthSessions: String { return self._s[4479]! } - public var Month_ShortJune: String { return self._s[4480]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4481]! } - public var Call_ReportSend: String { return self._s[4482]! } - public var Watch_LastSeen_JustNow: String { return self._s[4483]! } - public var Notifications_MessageNotifications: String { return self._s[4484]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4485]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4487]! } - public var Group_Status: String { return self._s[4488]! } + public var Channel_MessagePhotoRemoved: String { return self._s[4483]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4484]! } + public var ClearCache_FreeSpace: String { return self._s[4485]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[4486]! } + public var Common_edit: String { return self._s[4487]! } + public var PrivacySettings_AuthSessions: String { return self._s[4488]! } + public var Month_ShortJune: String { return self._s[4489]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4490]! } + public var Call_ReportSend: String { return self._s[4491]! } + public var Watch_LastSeen_JustNow: String { return self._s[4492]! } + public var Notifications_MessageNotifications: String { return self._s[4493]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4494]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4496]! } + public var Group_Status: String { return self._s[4497]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4489]!, self._r[4489]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4498]!, self._r[4498]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4490]! } - public var ShareMenu_ShareTo: String { return self._s[4491]! } - public var Conversation_Moderate_Ban: String { return self._s[4492]! } + public var TextFormat_AddLinkTitle: String { return self._s[4499]! } + public var ShareMenu_ShareTo: String { return self._s[4500]! } + public var Conversation_Moderate_Ban: String { return self._s[4501]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4493]!, self._r[4493]!, [_0]) + return formatWithArgumentRanges(self._s[4502]!, self._r[4502]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4494]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4495]! } + public var SharedMedia_ViewInChat: String { return self._s[4503]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4504]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4496]!, self._r[4496]!, [_1]) + return formatWithArgumentRanges(self._s[4505]!, self._r[4505]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4497]!, self._r[4497]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4506]!, self._r[4506]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4499]!, self._r[4499]!, [_0]) + return formatWithArgumentRanges(self._s[4508]!, self._r[4508]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4500]! } - public var Appearance_ReduceMotion: String { return self._s[4501]! } + public var Map_OpenInHereMaps: String { return self._s[4509]! } + public var Appearance_ReduceMotion: String { return self._s[4510]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4502]!, self._r[4502]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4511]!, self._r[4511]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[4503]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4504]! } - public var PhotoEditor_Skip: String { return self._s[4505]! } - public func Notification_GameScoreSimple(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[4512]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4513]! } + public var PhotoEditor_Skip: String { return self._s[4514]! } + public func Call_ShortMinutes(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Call_Minutes(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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 Conversation_SelectedMessages(_ 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_VIDEOS(_ 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 OldChannels_InactiveMonth(_ 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 OldChannels_InactiveYear(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PrivacyLastSeenSettings_AddUsers(_ 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 MessageTimer_Minutes(_ 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 Stats_GroupTopPosterMessages(_ 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 ForwardedStickers(_ 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 MuteFor_Hours(_ 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 LiveLocation_MenuChatsCount(_ 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 Call_ShortMinutes(_ 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 Stats_GroupTopPosterChars(_ 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_PollOptionCount(_ 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 StickerPack_AddMaskCount(_ 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 Invitation_Members(_ 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_ROUNDS(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[21 * 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[22 * 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[23 * 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[24 * 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[25 * 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[26 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[1 * 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[27 * 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[28 * 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[29 * 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[30 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_GroupShowMoreTopPosters(_ 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 Notifications_Exceptions(_ 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 SharedMedia_File(_ 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 ForwardedPhotos(_ 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 Forward_ConfirmMultipleFiles(_ 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 Watch_UserInfo_Mute(_ 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 ForwardedMessages(_ 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 LastSeen_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 Notification_GameScoreSelfExtended(_ 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_ROUNDS(_ 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 OldChannels_Leave(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 Stats_GroupTopAdminKicks(_ 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 CreatePoll_AddMoreOptions(_ 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 Notification_GameScoreExtended(_ 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 MessageTimer_ShortHours(_ 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 Stats_GroupShowMoreTopAdmins(_ 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 PeopleNearby_ShowMorePeople(_ 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 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 Call_ShortSeconds(_ 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 QuickSend_Photos(_ 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 MessageTimer_Days(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func AttachmentMenu_SendGif(_ 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 Chat_DeleteMessagesConfirmation(_ 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 Contacts_ImportersCount(_ 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 ChatList_DeleteConfirmation(_ 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 MessageTimer_Weeks(_ 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 Stats_GroupTopInviterInvites(_ 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 ForwardedPolls(_ 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 Watch_LastSeen_HoursAgo(_ 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 OldChannels_GroupFormat(_ 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 Notification_GameScoreSelfSimple(_ 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_ShortMinutes(_ 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 MessageTimer_Hours(_ 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 Passport_Scans(_ 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_Seconds(_ 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 MessagePoll_QuizCount(_ 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 ForwardedVideoMessages(_ 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 MessageTimer_ShortSeconds(_ 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 Contacts_InviteContacts(_ 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 Stats_MessageForwards(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[2 * 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[75 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[3 * 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[4 * 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[5 * 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[6 * 6 + Int(form.rawValue)]!, _1, _2) } 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[76 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func Stats_GroupTopAdminBans(_ 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 SharedMedia_Generic(_ 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 MuteExpires_Minutes(_ 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 VoiceOver_Chat_ContactEmailCount(_ 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 AttachmentMenu_SendVideo(_ 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 ChatListFilter_ShowMoreChats(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + 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[83 * 6 + Int(form.rawValue)]!, _0, _1) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func Call_Seconds(_ value: Int32) -> String { + public func OldChannels_InactiveWeek(_ 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) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func Theme_UsersCount(_ value: Int32) -> String { + public func Stats_GroupTopAdminKicks(_ 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) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + 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) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func MessageTimer_ShortHours(_ 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 Stats_GroupShowMoreTopInviters(_ 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 Media_ShareItem(_ 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 ChatList_SelectedChats(_ 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 MuteExpires_Days(_ 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 StickerPack_StickerCount(_ 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 Media_SharePhoto(_ 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 InviteText_ContactsCountText(_ 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 ChatList_MessageVideos(_ 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 SharedMedia_Link(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[97 * 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[98 * 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[99 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 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[100 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func OldChannels_InactiveMonth(_ 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 OldChannels_Leave(_ 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 MessageTimer_Seconds(_ 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 QuickSend_Photos(_ 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 Contacts_ImportersCount(_ 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 ChatList_DeletedChats(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 Stats_GroupTopAdminDeletions(_ 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 Media_ShareVideo(_ 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_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 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) + return String(format: self._ps[25 * 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[26 * 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[27 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func SharedMedia_Generic(_ 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 ForwardedVideoMessages(_ 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 Conversation_SelectedMessages(_ 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 Wallpaper_DeleteConfirmation(_ 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 Stats_MessageForwards(_ 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 StickerPack_StickerCount(_ 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 MuteExpires_Hours(_ 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 OldChannels_GroupFormat(_ 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 MessagePoll_VotedCount(_ 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 ChatList_SelectedChats(_ 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 LiveLocationUpdated_MinutesAgo(_ 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 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 UserCount(_ 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_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Invitation_Members(_ 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 Notification_GameScoreSelfExtended(_ 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 InviteText_ContactsCountText(_ 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 ChatList_DeleteConfirmation(_ 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 OldChannels_InactiveYear(_ 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 Passport_Scans(_ 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_ShortSeconds(_ 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 ForwardedFiles(_ 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 LiveLocation_MenuChatsCount(_ 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 ServiceMessage_GameScoreSimple(_ 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) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) } - public func Map_ETAHours(_ 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[52 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedPhotos(_ 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) + return String(format: self._ps[53 * 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[54 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func DialogList_LiveLocationChatsCount(_ 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 Watch_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 Watch_LastSeen_HoursAgo(_ 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 ForwardedPolls(_ 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 MessageTimer_Years(_ 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 Stats_MessageViews(_ 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 PollResults_ShowMore(_ 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 StickerPack_AddMaskCount(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[63 * 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[64 * 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[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_QuizCount(_ 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 ForwardedMessages(_ 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 ForwardedLocations(_ 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_File(_ 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 CreatePoll_AddMoreOptions(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func ForwardedStickers(_ 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 Notification_GameScoreSimple(_ 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 MessageTimer_ShortMinutes(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 AttachmentMenu_SendGif(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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 Conversation_StatusOnline(_ 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 VoiceOver_Chat_PollOptionCount(_ 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 PasscodeSettings_FailedAttempts(_ 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 Call_Minutes(_ 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 MuteFor_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 Map_ETAHours(_ 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_Months(_ 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 VoiceOver_Chat_PollVotes(_ 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 ChatListFilter_ShowMoreChats(_ 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 Wallet_Updated_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 SharedMedia_Link(_ 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 Stats_GroupShowMoreTopAdmins(_ 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 GroupInfo_ShowMoreMembers(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ChatList_MessageVideos(_ 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 Stats_GroupTopInviterInvites(_ 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_LiveLocationMembersCount(_ 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 StickerPack_RemoveStickerCount(_ 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 MessageTimer_Hours(_ 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 Stats_GroupTopAdminBans(_ 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_ShareItem(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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_ShortDays(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 PeopleNearby_ShowMorePeople(_ 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 Contacts_InviteContacts(_ 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 Stats_GroupShowMoreTopInviters(_ 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 PollResults_ShowMore(_ 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[105 * 6 + Int(form.rawValue)]!, stringValue) @@ -5500,174 +5516,173 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + public func StickerPack_RemoveMaskCount(_ 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 SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + public func SharedMedia_Photo(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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[109 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveMaskCount(_ 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[110 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_MessageViews(_ value: Int32) -> String { + public func ChatList_MessagePhotos(_ 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 AttachmentMenu_SendPhoto(_ value: Int32) -> String { + public func Stats_GroupShowMoreTopPosters(_ 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 ForwardedLocations(_ value: Int32) -> String { + public func ForwardedContacts(_ 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 StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public func Chat_DeleteMessagesConfirmation(_ 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 SharedMedia_Video(_ 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[115 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { + public func MuteExpires_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[116 * 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[117 * 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[117 * 6 + Int(form.rawValue)]!, _1, _2) } - public func MessagePoll_VotedCount(_ value: Int32) -> String { + public func LastSeen_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_ShareVideo(_ 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[119 * 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[120 * 6 + Int(form.rawValue)]!, _1, _2) + public func Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public func ForwardedVideos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Photo(_ 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[122 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[123 * 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[123 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[124 * 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[124 * 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[125 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ 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[126 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminDeletions(_ 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[127 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessagePhotos(_ value: Int32) -> String { + public func InstantPage_Views(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, stringValue) } - public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { + public func Conversation_StatusSubscribers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) } - public func DialogList_LiveLocationChatsCount(_ 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[130 * 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[131 * 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[131 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + public func Notifications_Exceptions(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + public func Stats_GroupTopPosterMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Years(_ value: Int32) -> String { + public func AttachmentMenu_SendItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[134 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedFiles(_ value: Int32) -> String { + public func StickerPack_AddStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[135 * 6 + Int(form.rawValue)]!, stringValue) } - public func InstantPage_Views(_ 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[136 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[137 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_InactiveWeek(_ value: Int32) -> String { + 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[138 * 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[139 * 6 + Int(form.rawValue)]!, _1, _2) + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[139 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_DeletedChats(_ 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[140 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteFor_Days(_ value: Int32) -> String { + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift index df0a347265..8ba11022da 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift @@ -55,6 +55,9 @@ public enum PresentationResourceKey: Int32 { case itemListCornersBottom case itemListCornersBoth + case itemListVoiceCallIcon + case itemListVideoCallIcon + case chatListLockTopUnlockedImage case chatListLockBottomUnlockedImage case chatListPending @@ -207,8 +210,12 @@ public enum PresentationResourceKey: Int32 { case chatBubbleIncomingCallButtonImage case chatBubbleOutgoingCallButtonImage + + case chatBubbleIncomingVideoCallButtonImage + case chatBubbleOutgoingVideoCallButtonImage case callListOutgoingIcon + case callListOutgoingVideoIcon case callListInfoButton case genericSearchBarLoupeImage diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesCallList.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesCallList.swift index 519697a987..07c3aced71 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesCallList.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesCallList.swift @@ -10,6 +10,12 @@ public struct PresentationResourcesCallList { }) } + public static func outgoingVideoIcon(_ theme: PresentationTheme) -> UIImage? { + return theme.image(PresentationResourceKey.callListOutgoingVideoIcon.rawValue, { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Call List/OutgoingVideoIcon"), color: theme.list.disclosureArrowColor) + }) + } + public static func infoButton(_ theme: PresentationTheme) -> UIImage? { return theme.image(PresentationResourceKey.callListInfoButton.rawValue, { theme in return generateTintedImage(image: UIImage(bundleImageName: "Call List/InfoButton"), color: theme.list.itemAccentColor) diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift index 2d90995d69..42eaae3348 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift @@ -723,6 +723,18 @@ public struct PresentationResourcesChat { }) } + public static func chatBubbleIncomingVideoCallButtonImage(_ theme: PresentationTheme) -> UIImage? { + return theme.image(PresentationResourceKey.chatBubbleIncomingVideoCallButtonImage.rawValue, { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Chat/Info/VideoCallButton"), color: theme.chat.message.incoming.accentControlColor) + }) + } + + public static func chatBubbleOutgoingVideoCallButtonImage(_ theme: PresentationTheme) -> UIImage? { + return theme.image(PresentationResourceKey.chatBubbleOutgoingVideoCallButtonImage.rawValue, { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Chat/Info/VideoCallButton"), color: theme.chat.message.outgoing.accentControlColor) + }) + } + public static func chatInputSearchPanelUpImage(_ theme: PresentationTheme) -> UIImage? { return theme.image(PresentationResourceKey.chatInputSearchPanelUpImage.rawValue, { theme in return generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Search/UpButton"), color: theme.chat.inputPanel.panelControlAccentColor) diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesItemList.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesItemList.swift index 8a3e6fc808..aaf11406da 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesItemList.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesItemList.swift @@ -108,6 +108,18 @@ public struct PresentationResourcesItemList { }) } + public static func voiceCallIcon(_ theme: PresentationTheme) -> UIImage? { + return theme.image(PresentationResourceKey.itemListVoiceCallIcon.rawValue, { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Chat/Info/CallButton"), color: theme.list.itemAccentColor) + }) + } + + public static func videoCallIcon(_ theme: PresentationTheme) -> UIImage? { + return theme.image(PresentationResourceKey.itemListVideoCallIcon.rawValue, { theme in + return generateTintedImage(image: UIImage(bundleImageName: "Chat/Info/VideoCallButton"), color: theme.list.itemAccentColor) + }) + } + public static func addPhoneIcon(_ theme: PresentationTheme) -> UIImage? { return theme.image(PresentationResourceKey.itemListAddPhoneIcon.rawValue, { theme in guard let image = generateTintedImage(image: UIImage(bundleImageName: "Item List/AddItemIcon"), color: theme.list.itemAccentColor) else { diff --git a/submodules/TelegramUI/Images.xcassets/Call List/OutgoingIcon.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Call List/OutgoingIcon.imageset/Contents.json index 3eb9c046c6..4a566054b2 100644 --- a/submodules/TelegramUI/Images.xcassets/Call List/OutgoingIcon.imageset/Contents.json +++ b/submodules/TelegramUI/Images.xcassets/Call List/OutgoingIcon.imageset/Contents.json @@ -1,12 +1,12 @@ { "images" : [ { - "idiom" : "universal", - "filename" : "ic_outgoingcall.pdf" + "filename" : "ic_outvoice.pdf", + "idiom" : "universal" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/submodules/TelegramUI/Images.xcassets/Call List/OutgoingIcon.imageset/ic_outvoice.pdf b/submodules/TelegramUI/Images.xcassets/Call List/OutgoingIcon.imageset/ic_outvoice.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6e1cba8f6446b90d0ae12cb8957bcf7516e2eea8 GIT binary patch literal 4572 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 literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Images.xcassets/Call/CallAirpodsProButton.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Call/CallAirpodsProButton.imageset/Contents.json new file mode 100644 index 0000000000..370377d8ee --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Call/CallAirpodsProButton.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "ic_call_audioairpodspro.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Call/CallAirpodsProButton.imageset/ic_call_audioairpodspro.pdf b/submodules/TelegramUI/Images.xcassets/Call/CallAirpodsProButton.imageset/ic_call_audioairpodspro.pdf new file mode 100644 index 0000000000000000000000000000000000000000..305f6ba52bfef415c4f5ecd2ce5005e527b1e088 GIT binary patch literal 5057 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
  • HzW#R;ij$c1FGLFD<*Bp(9C%5HN|AzFH;6}_2WP_i_AnNh7`mZqz0VVPn7Mj{w$ z-jYBi+eJk_plm?JzNsi5YrsQ#;i^L%cMe&BQfe$+4tsU<-8k1da*8Ke$YfULj?1%8 z45MZ&^^qf%s*vGiRIwGqG}i2mwx5RW6zeFiqF1*(&f3oS71zQp$u z8VQUlVLU84Jp3sYf%jGHxlO@R;QFfx-M6d|Zmfo~W|}2DnILms`gj?w#Oq*2O;rvh z`7sSi)oNKESs#U5o%8vaA%nu?nsg)0dPP4~KM_QN7;YOk+g+Sc6z7n%f_uoTnK+8` z!kG(a@|j=tSN-w&xQa}>S+-d>FuP1YOL?ZEMJiN9DfLy7F?@*(8(Z+=91P%fl zp}a?jq6K2HFQ#)jH!2~jHY#QtHeZdO#eWemwKF@d<4-yezz94_;!d(oB29`ZRM&GJ zW*km0bSl&wg4l!Yk@jQuN5jHJ(fB;PR|Y=a9CkW){A9VTCfv8`(EfYtvea?{TPj-v z+hsOAHXN)2emNDB+MP;BU4V5~*c#Ei2N)5I7T%jdl2X<`-nZs0kCe%xOe48vFM&^@GMO zBIVMW^Rptd8j%^u>>1Rx!nmRVfo!Af+Z{JiA6z3grDu)7W#Q>6@hZ{X_jErGP2RVt z!B^mE9p-Jpup)SE=c}^c4GrHYkGzy@z0>t5+b8Yd28~ptL1a4f1hcu|nxL-GiXfLE zzu`Fpr;6pW!`AV(R0mU(UuT&8EULWk^~C)9;sT*5&&D;s+o`5y6U?<5wfJ4SUG5|B z5tLHuiT9Iwy1ma>&+D}ze!~}57H6vZHlt=K`5yAU9aPDiN;mA|?>pa@O+(A_jb%uP z)os9ari#NYPS{E~%G}!}Ye?@)(yYk!PHhvPrN&OGj&9Ja(Z?YoI}`H~ z7TEAKW>0aY58@t_R>tpHZrE?+N#BwVmyVXc)Zp1r3Ki)_5ui5Dk&1*qf|;%m{exTH09n; zd%QE>3Y;rQj7`ku7b_Sj_{}b)V!vWgo);NWcEeOmimzUz6_yQAsOhmAUe~+yN_HSl z{kprMb#3yqAL`%lM)9Qa1{>0p+rOK%L7+2xv_D>$-NBQuYB5xJc$F&@LWhejpxB@)G3qT@T>&boFwpG<#OczCI3NlPrd zdLMA}s^sR^&V8M;)Zau(C*Hp}XN-rrZnd}Y3m6~l< zyA^z?KRVXK71@+Xn%?$H_p4tEJBc2-Qk(JIeD$&2()$gk`X!h0ljpO=&l=A8EgYI2 ziA?U+_z|9+rn8erQXH-eH#|Hw`(0|uZ}Mb-vVh)9=A-Y;6WbHi>g+2%pr$}Zp-l0~ z@cyWELH*9^%TWt_`BR&iuqp+S)1-q^&DL}H0{ji-3gu-)F#;cT5H;cZcBlPYZxn8D zHnfrd$A`V7fuhXEUPtvdmfdaN90pcWWK<{f8zc`$cAXZi7Uu@N>^5HKMNAeo$m|B5 zWF4V)I^&jBHTN}>GNWa@9#J1}d4rv-=co2UwvYY|&}S6-6Pm@L{{`qXem&EOkgKAg zAdhrMTY=61RtIGICljAR^q)-p7h}7FMDC%j?2z)#-XLQL(L_R&c>jcC4UP&uXy5 zQHn$k2VPgaB?=LRKyE_Bp>T*KT+#>v;UnHeyL--7XC|Qk-{h}Jdb^>mfe;WB3WWUk z0*S-nVsMZ(=$8hALy6m%vkQdzQ-i|9i7Wn34JLMzxHb8w27!nY*Yckl6bAd(SSbA8 z8cYmEjQ;-_D-I=YcmAot#6PTuac%R@IR~M^A7+3 literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/CallBluetoothIcon@2x.png b/submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/CallBluetoothIcon@2x.png deleted file mode 100644 index bc5951252f5132b66bada2b49bcd6e866b200bed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmV-w0+s!VP)LFXP!&b#qJ@4Hq0nWa(9hA8pp;T5 zrT7U{)I{=_r1`r^t}~M{GdFW@dZ=@RAZkpfHE)avsSqVO&C;pX%qE;Ppw26uyX)hUfE(j z=EvF4b}=p=n9r0+oaW5F^d}DBmU5WIgX~91tD>7^569)fwiY!P_LPF^(Y)j8RU2iy$os^U>aS%X-Zf#Duld z1!y6#oPxc(JM}lZkKm=uh0&U|GShZcgS}4Y1aq)(njfZ)hh_Yo%aQVPBKg)SFD7g(VssjZ0DL=^FmZI2te z?OBh49SYqjIu89EK5r-`-dej|ZLK3Ob(UZM^4Vciepx8m`q?1M(Y5WIq1Mt7t&D{C=H2?qr07*qoM6N<$ Ef;4{{QUCw| diff --git a/submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/CallBluetoothIcon@3x.png b/submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/CallBluetoothIcon@3x.png deleted file mode 100644 index 846ad33529ec3e7ad8713ecd1a1a461db3b0cb74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1022 zcmVMIvh%r}+nwh*j*X3tjg5_sjg5_s zO_hfZHsl}K%MkVXN5VTA@{fdJHs>D+qioGT5>O{;#I0kQbRRKL5o* z{lv9A3Vi-akt^sDn3EjROWenYkV=*q={O$dAKLU)(;j9Z9i)#r#W5YkH9SNXB}gB0 zn)a-TO}vM+kv`@OC$l78VH&bP`k1qv&IY)e2b78w$>K_pKIR-}(kJfaEyP9A$}4Is zMFyDX(j{IhQB5O}v@!_{$e41Zk2y~vE#NBdQ*L^sMC8mUq>l*~(je|;2ofPXg+hih zOCVj(xjbK9u^YI`^)erQOhGcFub3gs$m;4Pc9wf?21qZm3r{37;=<#`yuL#A$Y`eY z7UFsu1g9$bmT5soF(r)w*VD8+QQ4(L6H?9$ZPtnJ{abM(T^~}$3~8Xdp6=F>%5Mr9 zk>SihS4(`)Z(8Eq`LrU#n7&T4_u_$au93}weB39ipvB`MzLvCI#};(k)kn-@ zFT_ub>`(q!kp0OZF?S;aVZ@w`@q`o88LgYvgOm}|8F#(IoQ4r}DKTOMy%2i@-EmmX z$}%5yJW(-Sw^)DudXc#)(p6rtQimv*v8kG7oL`wt3SMxuxFht!g`)% zxQ@rocpZ;WZErS|x_DirQGu&22ScBfat?+gs) s{}&^w;kQ3*Y;0_7Y;0_7Y;1C!fA);>?+NB@o&W#<07*qoM6N<$f*aT4q5uE@ diff --git a/submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/Contents.json index f97cc97939..a448d215b7 100644 --- a/submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/Contents.json +++ b/submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/Contents.json @@ -1,22 +1,12 @@ { "images" : [ { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "CallBluetoothIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "CallBluetoothIcon@3x.png", - "scale" : "3x" + "filename" : "ic_call_audiobt.pdf", + "idiom" : "universal" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/ic_call_audiobt.pdf b/submodules/TelegramUI/Images.xcassets/Call/CallBluetoothButton.imageset/ic_call_audiobt.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a2f8cad6cf2ed356f7d46b3764924f493e5bd642 GIT binary patch literal 4412 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 literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Images.xcassets/Call/CallCameraHDButton.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Call/CallCameraHDButton.imageset/Contents.json new file mode 100644 index 0000000000..05d9903d16 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Call/CallCameraHDButton.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "ic_call_camerahd.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Call/CallCameraHDButton.imageset/ic_call_camerahd.pdf b/submodules/TelegramUI/Images.xcassets/Call/CallCameraHDButton.imageset/ic_call_camerahd.pdf new file mode 100644 index 0000000000000000000000000000000000000000..51d0299b883887ef81c46bf5f70814334d5bdea5 GIT binary patch literal 4552 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 byM)qz{pg-4x%?4mgak|y41p+Xseu0nKo8K$ literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Images.xcassets/Call/CallToastCamera.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Call/CallToastCamera.imageset/Contents.json new file mode 100644 index 0000000000..886fff96dd --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Call/CallToastCamera.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "ic_call_cameraoff.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Call List/OutgoingIcon.imageset/ic_outgoingcall.pdf b/submodules/TelegramUI/Images.xcassets/Call/CallToastCamera.imageset/ic_call_cameraoff.pdf similarity index 73% rename from submodules/TelegramUI/Images.xcassets/Call List/OutgoingIcon.imageset/ic_outgoingcall.pdf rename to submodules/TelegramUI/Images.xcassets/Call/CallToastCamera.imageset/ic_call_cameraoff.pdf index 57fcc73721def36d35d528c1c4903e119be6e2fc..1b299535bd696659a8acd9031f05e0cc91cf9b8d 100644 GIT binary patch delta 1022 zcmaE_G(&MhKz(Y6cUFue&z=3j8L|b-zvi#4Wm;d<(D>khMM6!z$IIF@p2P#nQq z)-LXR+n6vfFJyjcKWF{{qbur7#ZRsjy*Mzblwr~;{*7i!WRmW_kX^B&$gr^IQmdg| z$5)fbTuyqj54~q5ok`6SV1JdJ%h=4MZ1wNn!R@Eke&+b_R6{pqL7M-|?EzhPy0!Q| zz5SoJ%YA0-#s#?xcjwJdy(wJJ9Q116`Gjk)OoOy`ZtQp3-gBL`&^}VZqjP0Przvz6vI=p$m0EV4O+`1&wD$Ea&3aV} z)&P0C62Fj|&&=g5e91eGIkoc6tH@*ynp|s|6lw77vh6SCXIqoht)Ab|3_Fok6tnT1 zL+%2_V-p;VBpxwaZu?$4d2i$#zV-Wd>k-y9L-U9@XMVYKw4(2NSclIr$F-2O`9 z>)-K|7ySL@SfAOq!2ZkUuiVoA7wxRym-oe9N%_NU(f8|l&0FgEck{B{(ARMOQTNpL zPx&w3{QnFg`|nTYO3h0tE-6Y)%muOXld`x>6$})>w28@PdFBt?lUw*j>NRo`ll_Ag z!cvQhGxPHl3=Q-QP4!F_VlFr~?sDoo{{$NQnX#C5ccqc6KmV zRurYCaTzEW8gd!Hfr6Q-sj;a-ngUeJ*xbNO0W7PK2NN?eGqpq)Gd49hoh&Dys%>Us zfG%fXZj42}iNWM={Hi9VMi}ai%}kN(EGbIN%tIAN8*-_t Jy863u0RZL)f_ne} delta 1188 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

    x=q70OC$4<_vK&B%BJ6K2yB&`W@}dP%^I# z&#m1BNnAt`?+v?LtC`f&Bi<2y#q<0}S=%q)8%G#t4}BR5f0-wS_to?rpAYQMxX^py zirk~)yIWD)Y3WsOZLSjHde1+8gv#>t-%xxLx*i$Md|&dWn`~Y6w+|WRmE~hSK`9mH z>$NULpBoMi^;1f0%28%gei?oZ%V9^+L!9-Q$relg`1u#Bjt%p-tB#VV${seJ_M6=| zI}jb)uJfCIc$~q0D)P+!ib$jHvH2I7dB3rvKJp@3bGdgu5=XX2R!dVk{9rA?%woB+ zqru%_>!OCOr6m*)iPB=)Lzu6&$F$LwVtSy z{;AL=fgdk-lKM)r{5=mEY%IIm*X;Wi)8sV9o;ITPhqfJOv2)-0J@Kmrg%M*VjdI&T zN7)BfTb*(9OIo{HNm;`YC>9QxY=B9>#_t%%p+%Z?Z;EnUC> z=i-WYb^@Rf5hzjw37B41bjLej0VqlZ3W1sm06Oj%7dIb($nZb0-^)#ai0;H2v>S1i z5|P8fmz5-85Euj^0YO4gNEA%M7y{uZcB0=kXY7d!@c+B~y-6<@oHZB%K%rpB|204i ziG(8oYv7j+E`cIu{Gwo(8c@Uh~Eo{-f(s%mi(lw#J?8mPS(!E z`u{mrBAx(ggf#+&!iizUVQ{E56lW=hg~5wWKi>&==qbJjll{O8Qsd(Zlvff#CNNy4QNU`XrC zmzl-F_4{vH+rhE`4Di4@gD+eFr1kOc4&IIcl4ddnq_vz}z3~Lv-4)}F*TCaE?C^k+ z64=X|fXBFj{psXR~0AiVt

    H&)V0z8n&fQ>QFk1yqfVAR7?h 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 literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index 68de17d59418e7599dbf07b1a7afc9fd9c595a85..2a28d021d8cd527c41eb0d62125d9c7500279f2c 100644 GIT binary patch delta 39794 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

    J)4oJCJLT z(Wx|d3jE4DY55dDmJey)6v*r@x;h0zvYY;$f|d9Y8Kz?I-s{@DGNvNpXdmTGWp-sh z6u_6_Zc3PPKqs*%1i_tOdL6eBrlQtE^k6EgJ4{~FpoWg1&Dwl{S1`Rf4N&MPjhTjS z9-}pa_z8${FpwMRk7>}spOS7m8u&~nqsy|ULrWZ|oayM|Ng6+$g&R+UUqa`KtL)+t zOP4k7937mFrGB1%o{r(W06qkRt~62n49ww|B1yMBvEgOTz;Jv;{bpbj`sOsD*$Q}ls3$W@AEJ}M=6g|pkI`uAUO@z*h^sB&PGS)-rihEQt8+!Z!EuM{~ z{1AM0?i&(9S7zf-_87?!oC%B#h15MkN~j6x;;B3j{f5j+>j&cN#e1~k(s!Bbk%8aI zJ_maE4=L2tcMfw`{?zdu!GSbp4(k64g`+Apx?a=0M7kgTb}fOjp`y`$=*Aof)zc+& zA-n(T=Vcb4VIKDp_|+l>JjJi^2kCGWvn)It{vF<*Si@Ey`VhrQ%Q17hr}1 zY4ZZ?utD_G0+wJ6t|(OnQ>vUlA)pxeq!uQrG(xG%LWq`$CN9J(GSkY1kY0;kT;ZXc z3-M5|m3~?XAZH^#jx~!j1P4Qy-gRFUcY<}^ju91zM2K5BE#NRGM4%BojXE||Bd#Ee z?~kP092Vjzy?k?&CIrHnAHRr&sL^1>`@JwjQr|^bi?K*2@Gb@M8sRJ!MdN7AA_#oE zp3h4%()WunLkVEAkv*6NiPNl@lWI$3ZP4s=XCbpyfy6}0T8ytuq6v#3Yss{BG4_!Z zI&b_uD2On%O{hLW{WKL_lzy`k!gkV3Pe*)!vR4zdV{_U97S@6; z6U(V@EQ-19;L2RfM<>WBuM?`jE~@i?!7XVW^Ho z>CG0Co=%hB!I>$8cD#e;GwIShSQuI0wbG$)aqqT!ae*@@ud?r5$i9rdrgYQ4ax_P* zy+0t{!etPy9(qcCh5@{^463gu-Cl;7>qWlHSqIje`YeZ8tq)CFjs@~MZCs9#dV?-3 zN3(Cz!{xxHeMz$d2lRe=@n$H!v4Uxp{(8QuiJ4#M>M0|B0r!@y07M)>CszQj=IULW z?6VcvWF6$Y5@x1B)M+I&d%m9AFZ%QIef2bVCG%H?=y~eSK-#yGd4(0=^F(AutE!zQ zXB6N@t~BNrf*2&@)RwG57-bQXA+8uX^D0=pofNwYsI-{6t%5!uM#J96*=o)zEQS)v zDWl~M3(j&nvq}Ivkl-T-)fBF7(HJz zJjJ^TQjA3z`L-WjTaAjx(XXp9k`u^h4GicLss0-DWD@mQ!;;j=qI!O5ND!@AgFu3} zY5N+inyGYo4M6EMdLUS*llNK-`b?pTCx^ceJ-67 ztn=vpTCAt}dU=6ieq99IZ1GowOSkR2z%`tPybJ%!B0WzSZ{_`ZxK7QBE0Z4DIvDI4 zOVE%}I6mp+yTIUtWTNnt7%2KZW(r@5bmeAMbq=aJ;V%a@M%Du80zVsf{!YXDHoRVd7aQpAI)uWkqvz}JUF*rV9vET+Wvs_h{(VSL`|8ULAJD4xu(WMNQM>C! zg=bDJJy;Jz^d|aeJ+%5}GHyUOwqo%D@ymyQsm}&jWwxP=Yjx{ic{z4FE!Y4j?G7RR zu~lJEJL%R2%-M&;-p35=LdPxse07YT+P}~A=G~}CgoboR%yzcJQG`vg>Qe6>A)CqS zM_{puco%8P*sB+h4vU9w(bxB30NV$$>m3GhgUlDM;*<{{-yhQ(A7JY^NYg)no;ifU z6ZbGgz=ybpp&Zr&Kw~cOs7$gk5vu-}UOdl1c&|DT#=s>TAsC-xEq?E> ztBwUdPG4?>1fQU1AOrt}Zo-dK)MyjDJZI1$NN{I^u+F%7w#^wSgy$?x+ysloIS}R3 zB6M&QRP=cy;bO;DLbo=r0Ns0`=u>W9ANlBq<1x4|I}QzAZ6T1ZMe6m=V%Uz!FJ zB(iIKua|Miv}P+t^9L{o^NBA*CA#>L&ToY=_NOJ=m_7XG%9cbdV>a%m7Q%2WuHH+m zDr)+LT5p4i>{l>`;DQFOC~kvj+@aaqpq1_-*8(H8iLPx!L-&ys7r5Y|K8=Xu|7W^+ zKmptF*$=^F7okj)wVl;6KSEMWqWBWTfr&fJnMFv5wja}k?bu9yqjlRcDZkUn?U3L< z=r?4lf1;d8yuWYIwJ8$jeNo^qYOw={y{Djw!(P?HT=fL;UmCRoO5_w+tTgJy6Aq=IjJQu8E7oPXp=jPF72G zgAl~?^K}rfv=fI|PcPTKHQ`hC5|``5qqSmt)>7(+tYNAS?7}4`-k2?r7T~J3^&rXf zGF-aSDk|=yz4G#g7wA>5=e_a{l{ek~5QFAJ?z^Dsd?{`h6ulpH+=Y*>Ma8?Ibo^<- zE-dT-+P@2i`oPMD@TLoAPXg2+WQ4o?DEi&d$-zh`i8pho*=`JA2=&{IWo@AGyK!g@ z1+jrJBhrc8u$3CUgyV?**bQw9N7WgyS@*z%Yyn${6piM4AU{^>xCi~QQSlx`M%Y1w z10L4w*RSj8;vN`p!vw!nzw}rX2&d^6FqBR!@<@ zp|1CZqd~{@d~DanA3>GJ(wL6`G~v4z-zL!IkAR74dx^{M z7GGDWg_M&-l(O?Pzt}6$W)k(^i|GGkFZtkJH#l-CPPn*Hv=<{-PZkh=805>n(8aIO zPkV7>Zs;Y$&fH%U0?~+S?_)96Cg2piWz`ky4n?In4pn%sn$oco%wO9zvwMb&9&JVo z_5oNm_ag5Gc++FvaRJAKH4OvEEB(_-5UX7MWiji$C z|3Zhndkep$ptPpK{aAi&Y5sorG}?hr-q5ag$+Y(pxK3BEN_0Dr-vJ0pN4j|wAw5-l zeJ3v$s>?qBRF_WU1y2U8IRO2iDQYEehVAsm0j!%WFZq5_yR`H+VsN^6RXJgdt}uzN zl=U%=F4KL=s_dXwA_ zVLA1s=tD3j^rJ3^u(kH5afbj8bHEzHy(bt|@c{$q^dSshE;6m~!e%2*o_| zJq&(_BwenJKa3zR^0#)B;e~A}ZiBo;co$7L3=_m)FTUzYF!hU2ysHN`--|yAhin~& z0vdvP0(si90D5^C9>PK|>aqnZJyVN^CtPn56;b0OfIUu(DgM}ie3VKnBf-RE7t^dG z&=lHEU3YI)!Wq9gTPKN4Rzz!CnrE(B5Lz$)ML)!rVtt^P?D@k<{-f zY8*uqj$$7fExU&;JiKjBDZ*orA)`v986&YR%zc9^9#0x8MR+K|JaBbaaG45XzJu8352{S|}OB{>6Kfg>|P#~)X? zVXHc&&7!1FfwN~*$4`Oy=Xk+E8;Ym1yuB);!RDe!2xWWnwFreQ{J_ajJ>E?p0<9*5YOxSFL>>LcAoZU?IF=x`zJ+4ex%}Ot zcA_so18`c3;*r8yOoro7%E-S@s#xx(t7yk@ zSjSdZ75)o_)ip@sPaVt(me%XFNZ}>DdB&>C!S7Pm3D^wZqoNbA=C7kwC!jpm3&mvu z;=XZ$MMSxhK1w(RJ-nTookHh! zQ2$dndwxg@PC@2((T-DCkGoNena@c#YUN*o5aYdv*lA4dUNW7=Is5<^f-Av}7QlMQ zX+YwGUNUNZ)oJG6{17-qxUiH&aUD)x6euXm9-Ke04EZ$_ zbec5;(vCR;;s2C6oWXAX85N#^P5ZdmSgnBB$B-F*61B(!R>h0WGITAm@??Js)KGD8 z$@SRzX^K6IqGzbXS*W|SAT|?M1)A{WW*T;mcASMIT%fPdVr9UsevZ{sE_qQ48$1Ag z&*9j9*-OTo6r?I%h{ark*R_=|pgyfZ{K$u1)e($DCT{}fZk#3<#RTNZ;|9j@U_a^@PJeMcTH)rOXZ|2OIGpDvDHQ6Ss zKHw&{U0(aZRZ_A82#XhOqsz6iYTZeFi47#^kmp^Ld$+N|pZOtY?QR~{SgoVThu9(R zp{&zW-%wXuAB|ZD^_ie+`i0$ha_U3w2wwq7FrMqVExuFYN^*Zq8G-c3oJ7ZB3GkS` zGJONw^FCR*fw|eAyqd_1vSR}r%K@MRQKvf}4n^LLAlG5(wh>a15ba-087-cgw2^6f?t@O$xX;z;}<0^_T@yk$xA!pMT2WC`YF%GH~o?ms54 zp61F+;`T6W!8~iX`jb4ji9P$XHnyQ#<>)2|P#2R}!H|X8^SXn5)B* zIl3h)$6Y?}D*afDADcG23Ii^Pzk=9{RyapS*zC-By8%$j_Jc> z$^96qlUGK6?8?jZ(V3NcISHnQh50SNtoRtNqNDr|f7~emRfPwYAeFsMQdIhwy807W z_ssNgFRk7*J@vCQWb`L&x=dN{37uuh-JhWK%J$gkLRiGcPY4Gv%8{==aTVnU=!IXa z*eS~Kdui$jt0E6W!-1kpZ4-N?p$X-L#)!rV;Q`f=;72?hHix%^^=RY zq73a%?-dTRJ++nnK1kl*%DV^4;jIv>AyV);_qE!{=k#y=lA*Hlb7rAVUIqeP_s-9; z<{2)*ZA`{FGI$$Q_FS3~oG%cr5ESNo8RF4_-Uv3&=^xao3e z2jZ6*9)iBw2$KYLmw`JWnHR_Mc;czp3sKH0B$d|0`E%N6t zF`T*8KE?J|_I`;m-EDUH1EHs?5-dY^yOe$fqk9KXr4D;=(B+o7Ux7S#@{F(#XscU! z_q#lfq0v{|OW*~+a^(e90j6vL@tGFPu_54EtyJ!jc3*?{_sWpNT%zm0cBKsp0j_L@ z<1uRe5nC$T+MoU|++Q@BZks^5_sQC?p{lFp(QjQTKHh^eF&ZINrOfr_#Dee~m$8Em#k?e|4seG5O`fI!{^1+6^okrhfOPa#r+NJd z**`g@?SQG$7>X`rTUC3ojfWn^TKkgH)Q=cbn*{y;lp%wIc_7* z`KNdf;sp0E8rsmra=}5i-&+*Z92w1B2T^GMTjU@c=|A$~L3oF^sqJHhGO>qPrFSH7 zh{|_mz#;7CKA^IT<&W`6Opv<|u@D<%?IHNEjq<@EHryup?hv}8&60l@I{vZZS`YUp zG%Jz2dUGD$dl=2o7J2M2+vZbwhww|epHb^vPW*#AJjqAjnTcIXCw*yYpRSr1_~XJ>BsO*I4JiVgMB_E zFCF8;aaeYeZxqJw>@jYiM?KMqN3G}Ix3c70=J`9_e1*l|(`gFdHoWPg#mlT!)aW_O zT6g{rRAXGuu4*M7Cp@x<`1Vrq9V0*Kv9b@D_#JY%AMH^Vw@~NsC+C=X1|VW4z5X3C zk5it|*xzN7NG+;WI4x(tgF`$6{f;$R(d+D48GIc3!e8XF$djMFkRlm*52Mj{S?ze%ZEGGbRA{s z4=@kuJPgPOFy2wVFGJq@0hT3`8hd#Qk+aW|ZOoodfX>-6_ykClE3;0xO40*>sZF5c zDegq9$@h{uD^FfI0l^N+#uF?cp?gli0~Z3_!+v}9Nyt=@zCB`HK%h-oaS~G5NuD^# z3p&gDC%N8r5%-VGXN6Y}omd;6v#SjIk@KUH)|oo?jCd}+mZDV2ojn7@ajHWtA9_;MOv&&pBS*Ia7 zV|d!l3i1+jjVJW_pOV~TdDPKHnNbOzzh zB(LQuE^Oj8F_Y!tGcYMrS> zsm(ULRL=ear!@b*a#P`60Eo>GmVVzN)4{dyzGbG+)pXxOrr6bd-K zwYg8E$_3D3>Ekk;i(6=_YZc~BEQ30>c{2FjqQhK5b#dr}y+sL;%jp$fDZsip)>dCB zn_Z?bV;NAt((c$h+tre23_&=h%$NfAHNb?E(#(Wfp;KREOdj&WmBy60ucx+1x=!KZ zwUe;JnKy=ebf!loH9DG`y_(QLD)I=j5@^SI+$xprOfFWCqubHR?KBF8s_WC_&UU6F zhLCI9nR4WQ@3iAZcgg;CrpnyywGlEM%bK3;O}bg>Ro4rd-`*seRbG1{N{9+n?oYHg z73N-xQ*x}miFJo~Lyf#y$T0KVCJkq5c0;<1ax<3Ia=x3qV)p|=7>9olp$(;-j{5gJ zNmI3d)Rg@JuM-4rr`wSFTK2n5LFO8ulz3SFruB?jD+RHP{t+1xYYNSyUO8P2MZ6}K zhJTP-V@)T-dh241iuLxyn(ppD(oLq-o%mbr4uA|^6_p&7>{+7mS-Ye0E=1(ING_X0H;vN8vw8c#eD;J;EXwyq`C9Y6-@ z!xwoNl&gQ^%F>gjO@P0by!Or!XW78NdF7rD5S$;G>gwPl^eys78+lh>^Rm1dZ%SYa z_r)_=uZk}LoLDdY5==F=mGcu!(EU0uaT1To9}|q<{RUpKtNEu_ zYKEKiWRwKWOT$qJ{w0GFO_BR88U(C~cf#0tb1$*D`fs@-kzM#7c?O8Qw}H^vbMSfm zoVk~Wlh3|Gh4mD zq)j@!G2sl749OGarzDf--ptct)y4*8Kr*QP5huV?+;(Rsn=JE*H*}ZcucbUbBf5;kjy1c#MQ{sxozH7osg{c zkVbGjP?`l6Rjh|ZR68gZtG%1-_ZUA~cf!RMV)+^Hnqsrt8}hEnZ{u#hM;3Zb1yO_^ z@S0M>X1?i#jO?{tgaghdMn(Ah?TbiZ9yio-xCf+<59n`roD=f@C&f4W*XVOlR`{Tf zhvYFITl}z>2rH@O?AKwa{B=T(&`|A`l=6i0TD9)UW8(KS;P1TRsWhcB!_V{{_exWy zD<`g-w*Fp8Mpo=%{r?a0q~8>o6Aq6;P=mDMlXR{$H|%xkhz9U`2ul!tqB@VLD1rD0 z-TPU_bTq0bZ|(@SJ1uv1WZBQ?w>cIW8#~kw<1J363;pi!F=m6>RuWj2U_RQNM@Oj1J&S5A+vTOq zPcPlbgEXyNWi*bvPmZM;RigXS*qR-E*0$cpZ%>gKX=Z>sm6nwldF09~X(p>UjiSD~ zaq%3bKj=0VEeqQ==&RGIE_9qY6VsvV8B&lAwaAoF>AWRdE=`Ae=E&XYplhzIOE;bQ zrtN@a=h4!VMODOcfG;2rrk(G6a(#edL8;3yRqg`7g7&I_dva7XT^ZGI{%l*kW3TjE~Q)=(lkvAzrbFlOs>kL^G>oh(-gYPsVu{OxLCf) zGzso56de(#Z<2PLIh4f|bQfQ?DGv0YmY)@eDBFTzX*8>CPeqFEDAb1pq3jQ4Lo0d%i;on+ z?L5(;^yL{I<|&TK4Q4jml;-#6q3$~8umE=Hl1rkJ+X23i`h3^t81?y{nPbqhJM*`e z^m=BnPY&fXUE6X@l6wdpb&fET9dY!|%Y~2+l>xb?(p^Vo6-tDltjy*7ALa`ko1P)B z-6Met8*D5N zm<;zQ%GQVuZzH6 z%*U{Bn)J)3-T5*j-}G=#r(IXa68A6pCId$Jy?hfy26`wT0yI-RK~n=4%-R;23w@zy z*JjG{AZ)}%KFfGJ0>;_$WDv%0j$(9vd?Z-K#d0)gGTn1|L%vnE`r25?U&7No6)LpK zljq5d0#J^?Lj`m;Umh-ikzFY77qF5|@=bv$FwH(2-7k3}>d{EV`^8dS$Vu5EqYK%( zOJsf_1HVGV=z+2zp4E=D6i1u_-WV%z| z?}RjIEMeo`B{NH4{qOcUL3QwVX`>WeDeFs2o>}D!t@|Nej`M%_J+!w0`Vt)?e6M{M z(*AHFv{;#0YT^hcbV;e{l7Any`gy-Hi?cT$9m{HYz7*6F`J|K~{GNTbI>*z{grS9A zxgMZxo~+sq<_{?Y5g(HJGL~wMG?nr7YvtiGlZhYCi)EZ9e~|53`XBkB%yf1CuN|Xm zAo_RW#QCF)>I5--Oqx5v!~99scA}d<%bT5G?H&g-*SgRpL_(cC?URBxQPSs?o6Le| zsOR^qeGo+&rQ?&kq;1b_$2xi9=hAW5Cf3(jF= zO^E&~qdK!wUi6XjA&<}(NzrT6-+Yd1^qG26@wIx2yeu0#gKV$Rvo#K~qpso2F|SH~ z7e4RrO2W&`dY@Xz5EeX1qzlyhHF>;?>6H6A?G(Z5W?dAqJdf;)H{@^^)7kwd5CsxA z&H2^00+#F_l+mc>=Oik#;Rtg6Da{pp-oL2oOt6CzSziHv@s_+>!G8R=9I0SM{v)Yf zP0+mUQ%2I}MjBn0DAT*L9`DNht|lw+KF#?lBeDn{M6(w}ssD%aXjd>}qx_3M?oEJ^ zCE(Q*IjikAOLC>@Mns_@l}yFQRF+u1%^j7-Yqt2*z*U~Dgj#0&Cy|1(bhTH^B6uQv4NqgfSMr=C3%Z#k^Mg-j-Ht7C!+`i!0($}>5!B}- z-DHN=t;w;nrXPKBnK5bcDh$$Iev*XlrVB#KUfo%#)4<|@LP9D_?9NbB1LD*)Cz}v4 zP05O(&CXJjOGqg$!H!z&7ak}wrG|oi+;X5hCxIUIj_q(x50hYAej>g&GAplRxWr9M z`!ar+(8HAWZwI`tbE|5&n^w2yu`02{+_VjAI2j(V)k47Smlt|4`dA<{EorbC*w*2%-U(EhnDY3w6l`T*l=pAK8v{Z<(}YxSKjSu^7DOw z>g_hHfp3!(sUtO|iZlT!=|zJS>D7zLPUW#p*AcIh79DywIE1 z2jwkd2bluDnx%!FB-lVwAJd_s5GY+q_UJ<8;hJ?sMLg7xiYlkbYvUw`D5gfqecMDA zjIm=xfS~D}htwZ(|(UHm!FR)!B+}@=agfPKeDq7~kZ6 zT(N7Y%9CT`kQY?>CtwbF(gRBGH z8hIAeTXyw>YwP28oP@}_oZ{*$)%{^a`pM}2kfHuEzdwi609n=FloSq(bQTWcZ?8g; z``;ici!3{Eus_GjU@-$g(jk7mOBeu6wd$n=DT-9L!qeG{xQ_gFN5M%9Z7S)|(-D4B8DCNnnk*ENo-*T}$T8oHduDo5#74Q-{R%`kac(e0R4uwmlaVYd* zfm}8eELi9dtsCE27T&}qut_!yWkH(d=ujAsMSk&jhq6`Gfzy{MzLP{rE~w)qZIOHH zIEcIP@5g48bn|bm^*-TUSO^hT}k{?1NLz|eJDduT>tUx?^dMgLI zMTVTi9q(4ZbrWtP02RXGYtJ#+?%M(G9tl;PUw#KghjUVoR2!^Woi4Q7JE>|#r_hSV zRQFvxBH#)5V~>Zs{np7=W}XX^zDh1V*OX`71Bl9DoO`09f7RaZm8Z^ysR&V>VIxi- zqEX@RDDrD-MX!2p=b~{RHCeLhY4p6+BVfK)OP>*@yhwPggd3{_%5pyuf2{EH z+PTfKF`*UHQxdIB{sdCdI9x`!tjfcVcr2xw3GwnWZ*%K8mmr-Q*h`7BaVjJipUX)m zD{ch&V_TAA)Sxh4trK;EvSj@zlM!p3ioCLCtjX-DbNXMS#NW2LX?BZ#x7K67chP)B zD0Q`8(%jNfUTS26rpSBKOs+|dab{CrqAZ^cx`0i>RFh)TW5oX&`+DkBSmO*Cbe_pb z%LGPoOMQ>HO;rvfzzI_0N%WX4GbVuDIn-L-s?ct?3Cb<#Y_-J|V*1a)6*C|M$D4r3 zi*Xdk3r4X=@+Ec}BtIw*j)y5JkbM)GoI-i3o=aGfEEva&iY0g+msOG)Oyp0gR8E9g zmB}6TCYaudH|dU4a$na>N|JI4b~q)CBN`?)Oz2Em83~(+)R7;B{b;)Iv`|)#GXZHB zg_^2D@+UEpuCk>Ox?HI%mT#(JLf0KkS!hRdu;Fk{EYnD!j^BN|L_z_|b_!H5E@ z1f+R!i!S0xP z;JGABG3o6w<{KjwqoCwtV?sOEWRXJ#f#jS9IXs$0X^hcuiuLE65`r3uOfTx80p907E^c0gcekSGrLJ&LNS=40kFDmf7d=WOd_V$BZyyZfw z6j3dsfS(5^f~Ib{D8`y_oUZ4drdwZ6sdTwue7LChw$e7qSAC_4v36V+%jO2Q#9X<0 zJd&PE0Lzny##qx5%?C{0L1`Rg($X)bMyET92`ppFdv?$C%>m%c%VoibWK4i)B?KhhmGi)-ySteWApoWr=K{$CjS4;I+jpY1nb5a)fcD8sd|&puH`0+ zhS|}8mN(N!hTU&&#g1F#BVDLl<)4!gCfp`TV@*-+?Z7DgcWf7RBCHBX50E?Lj&Vr* U@1(X+kKg>b33i*`rQ1CCf5S;|@Bjb+ delta 39681 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 diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 48d2e5addf..6d140958f5 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -6682,7 +6682,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G self.effectiveNavigationController?.pushViewController(contactsController) self.controllerNavigationDisposable.set((contactsController.result |> deliverOnMainQueue).start(next: { [weak self] peer in - if let strongSelf = self, let peer = peer { + if let strongSelf = self, let (peer, _) = peer { let dataSignal: Signal<(Peer?, DeviceContactExtendedData?), NoError> switch peer { case let .peer(contact, _, _): diff --git a/submodules/TelegramUI/Sources/ChatMessageCallBubbleContentNode.swift b/submodules/TelegramUI/Sources/ChatMessageCallBubbleContentNode.swift index 3c538b165e..c6193fa5a4 100644 --- a/submodules/TelegramUI/Sources/ChatMessageCallBubbleContentNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageCallBubbleContentNode.swift @@ -151,9 +151,17 @@ class ChatMessageCallBubbleContentNode: ChatMessageBubbleContentNode { var buttonImage: UIImage? if incoming { - buttonImage = PresentationResourcesChat.chatBubbleIncomingCallButtonImage(item.presentationData.theme.theme) + if isVideo { + buttonImage = PresentationResourcesChat.chatBubbleIncomingVideoCallButtonImage(item.presentationData.theme.theme) + } else { + buttonImage = PresentationResourcesChat.chatBubbleIncomingCallButtonImage(item.presentationData.theme.theme) + } } else { - buttonImage = PresentationResourcesChat.chatBubbleOutgoingCallButtonImage(item.presentationData.theme.theme) + if isVideo { + buttonImage = PresentationResourcesChat.chatBubbleOutgoingVideoCallButtonImage(item.presentationData.theme.theme) + } else { + buttonImage = PresentationResourcesChat.chatBubbleOutgoingCallButtonImage(item.presentationData.theme.theme) + } } let dateText = stringForMessageTimestampStatus(accountPeerId: item.context.account.peerId, message: item.message, dateTimeFormat: item.presentationData.dateTimeFormat, nameDisplayOrder: item.presentationData.nameDisplayOrder, strings: item.presentationData.strings, reactionCount: 0) diff --git a/submodules/TelegramUI/Sources/ComposeController.swift b/submodules/TelegramUI/Sources/ComposeController.swift index 4c760f3562..c76dbaae28 100644 --- a/submodules/TelegramUI/Sources/ComposeController.swift +++ b/submodules/TelegramUI/Sources/ComposeController.swift @@ -116,7 +116,7 @@ public class ComposeController: ViewController { self?.activateSearch() } - self.contactsNode.contactListNode.openPeer = { [weak self] peer in + self.contactsNode.contactListNode.openPeer = { [weak self] peer, _ in if case let .peer(peer, _, _) = peer { self?.openPeer(peerId: peer.id) } @@ -157,7 +157,7 @@ public class ComposeController: ViewController { strongSelf.createActionDisposable.set((controller.result |> take(1) |> deliverOnMainQueue).start(next: { [weak controller] peer in - if let strongSelf = self, let contactPeer = peer, case let .peer(peer, _, _) = contactPeer { + if let strongSelf = self, let (contactPeer, _) = peer, case let .peer(peer, _, _) = contactPeer { controller?.dismissSearch() controller?.displayNavigationActivity = true strongSelf.createActionDisposable.set((createSecretChat(account: strongSelf.context.account, peerId: peer.id) |> deliverOnMainQueue).start(next: { peerId in diff --git a/submodules/TelegramUI/Sources/ContactMultiselectionControllerNode.swift b/submodules/TelegramUI/Sources/ContactMultiselectionControllerNode.swift index 41e936fadb..c9e003959a 100644 --- a/submodules/TelegramUI/Sources/ContactMultiselectionControllerNode.swift +++ b/submodules/TelegramUI/Sources/ContactMultiselectionControllerNode.swift @@ -119,7 +119,7 @@ final class ContactMultiselectionControllerNode: ASDisplayNode { switch self.contentNode { case let .contacts(contactsNode): - contactsNode.openPeer = { [weak self] peer in + contactsNode.openPeer = { [weak self] peer, _ in self?.openPeer?(peer) } case let .chats(chatsNode): @@ -186,7 +186,7 @@ final class ContactMultiselectionControllerNode: ASDisplayNode { globalSearch = false } let searchResultsNode = ContactListNode(context: context, presentation: .single(.search(signal: searchText.get(), searchChatList: searchChatList, searchDeviceContacts: false, searchGroups: searchGroups, searchChannels: searchChannels, globalSearch: globalSearch)), filters: filters, selectionState: selectionState, isSearch: true) - searchResultsNode.openPeer = { peer in + searchResultsNode.openPeer = { peer, _ in self?.tokenListNode.setText("") self?.openPeer?(peer) } diff --git a/submodules/TelegramUI/Sources/ContactSelectionController.swift b/submodules/TelegramUI/Sources/ContactSelectionController.swift index d8ddcc4c9c..f677f76506 100644 --- a/submodules/TelegramUI/Sources/ContactSelectionController.swift +++ b/submodules/TelegramUI/Sources/ContactSelectionController.swift @@ -34,14 +34,15 @@ class ContactSelectionControllerImpl: ViewController, ContactSelectionController private let titleProducer: (PresentationStrings) -> String private let options: [ContactListAdditionalOption] private let displayDeviceContacts: Bool + private let displayCallIcons: Bool private var _ready = Promise() override var ready: Promise { return self._ready } - private let _result = Promise() - var result: Signal { + private let _result = Promise<(ContactListPeer, ContactListAction)?>() + var result: Signal<(ContactListPeer, ContactListAction)?, NoError> { return self._result.get() } @@ -74,6 +75,7 @@ class ContactSelectionControllerImpl: ViewController, ContactSelectionController self.titleProducer = params.title self.options = params.options self.displayDeviceContacts = params.displayDeviceContacts + self.displayCallIcons = params.displayCallIcons self.confirmation = params.confirmation self.presentationData = context.sharedContext.currentPresentationData.with { $0 } @@ -143,7 +145,7 @@ class ContactSelectionControllerImpl: ViewController, ContactSelectionController } override func loadDisplayNode() { - self.displayNode = ContactSelectionControllerNode(context: self.context, options: self.options, displayDeviceContacts: self.displayDeviceContacts) + self.displayNode = ContactSelectionControllerNode(context: self.context, options: self.options, displayDeviceContacts: self.displayDeviceContacts, displayCallIcons: self.displayCallIcons) self._ready.set(self.contactsNode.contactListNode.ready) self.contactsNode.navigationBar = self.navigationBar @@ -153,15 +155,15 @@ class ContactSelectionControllerImpl: ViewController, ContactSelectionController } self.contactsNode.requestOpenPeerFromSearch = { [weak self] peer in - self?.openPeer(peer: peer) + self?.openPeer(peer: peer, action: .generic) } self.contactsNode.contactListNode.activateSearch = { [weak self] in self?.activateSearch() } - self.contactsNode.contactListNode.openPeer = { [weak self] peer in - self?.openPeer(peer: peer) + self.contactsNode.contactListNode.openPeer = { [weak self] peer, action in + self?.openPeer(peer: peer, action: action) } self.contactsNode.contactListNode.suppressPermissionWarning = { [weak self] in @@ -256,12 +258,12 @@ class ContactSelectionControllerImpl: ViewController, ContactSelectionController } } - private func openPeer(peer: ContactListPeer) { + private func openPeer(peer: ContactListPeer, action: ContactListAction) { self.contactsNode.contactListNode.listNode.clearHighlightAnimated(true) self.confirmationDisposable.set((self.confirmation(peer) |> deliverOnMainQueue).start(next: { [weak self] value in if let strongSelf = self { if value { - strongSelf._result.set(.single(peer)) + strongSelf._result.set(.single((peer, action))) if strongSelf.autoDismiss { strongSelf.dismiss() } diff --git a/submodules/TelegramUI/Sources/ContactSelectionControllerNode.swift b/submodules/TelegramUI/Sources/ContactSelectionControllerNode.swift index b0920be509..baa6cf8b3d 100644 --- a/submodules/TelegramUI/Sources/ContactSelectionControllerNode.swift +++ b/submodules/TelegramUI/Sources/ContactSelectionControllerNode.swift @@ -21,7 +21,8 @@ final class ContactSelectionControllerNode: ASDisplayNode { } } - let displayDeviceContacts: Bool + private let displayDeviceContacts: Bool + private let displayCallIcons: Bool let contactListNode: ContactListNode private let dimNode: ASDisplayNode @@ -40,12 +41,13 @@ final class ContactSelectionControllerNode: ASDisplayNode { var presentationData: PresentationData var presentationDataDisposable: Disposable? - init(context: AccountContext, options: [ContactListAdditionalOption], displayDeviceContacts: Bool) { + init(context: AccountContext, options: [ContactListAdditionalOption], displayDeviceContacts: Bool, displayCallIcons: Bool) { self.context = context self.presentationData = context.sharedContext.currentPresentationData.with { $0 } self.displayDeviceContacts = displayDeviceContacts + self.displayCallIcons = displayCallIcons - self.contactListNode = ContactListNode(context: context, presentation: .single(.natural(options: options, includeChatList: false))) + self.contactListNode = ContactListNode(context: context, presentation: .single(.natural(options: options, includeChatList: false)), displayCallIcons: displayCallIcons) self.dimNode = ASDisplayNode() diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index 7cac894a24..07f3cd8d41 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -4425,7 +4425,7 @@ private final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewD if let contactsController = contactsController as? ContactSelectionController { selectAddMemberDisposable.set((contactsController.result |> deliverOnMainQueue).start(next: { [weak contactsController] memberPeer in - guard let memberPeer = memberPeer else { + guard let (memberPeer, _) = memberPeer else { return } diff --git a/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift b/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift index 9991f75414..b8cc8236fd 100644 --- a/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift +++ b/submodules/TelegramUI/Sources/PeerSelectionControllerNode.swift @@ -317,7 +317,7 @@ final class PeerSelectionControllerNode: ASDisplayNode { contactListNode.activateSearch = { [weak self] in self?.requestActivateSearch?() } - contactListNode.openPeer = { [weak self] peer in + contactListNode.openPeer = { [weak self] peer, _ in if case let .peer(peer, _, _) = peer { self?.requestOpenPeer?(peer.id) } diff --git a/submodules/TelegramVoip/Sources/OngoingCallContext.swift b/submodules/TelegramVoip/Sources/OngoingCallContext.swift index c1cfdbeee5..57a1669bd5 100644 --- a/submodules/TelegramVoip/Sources/OngoingCallContext.swift +++ b/submodules/TelegramVoip/Sources/OngoingCallContext.swift @@ -119,9 +119,15 @@ public struct OngoingCallContextState: Equatable { case active } + public enum RemoteBatteryLevel: Equatable { + case normal + case low + } + public let state: State public let videoState: VideoState public let remoteVideoState: RemoteVideoState + public let remoteBatteryLevel: RemoteBatteryLevel } private final class OngoingCallThreadLocalContextQueueImpl: NSObject, OngoingCallThreadLocalContextQueue, OngoingCallThreadLocalContextQueueWebrtc /*, OngoingCallThreadLocalContextQueueWebrtcCustom*/ { @@ -442,14 +448,14 @@ private extension OngoingCallVideoOrientation { public final class OngoingCallContextPresentationCallVideoView { public let view: UIView - public let setOnFirstFrameReceived: ((() -> Void)?) -> Void + public let setOnFirstFrameReceived: (((Float) -> Void)?) -> Void public let getOrientation: () -> OngoingCallVideoOrientation public let setOnOrientationUpdated: (((OngoingCallVideoOrientation) -> Void)?) -> Void public let setOnIsMirroredUpdated: (((Bool) -> Void)?) -> Void public init( view: UIView, - setOnFirstFrameReceived: @escaping ((() -> Void)?) -> Void, + setOnFirstFrameReceived: @escaping (((Float) -> Void)?) -> Void, getOrientation: @escaping () -> OngoingCallVideoOrientation, setOnOrientationUpdated: @escaping (((OngoingCallVideoOrientation) -> Void)?) -> Void, setOnIsMirroredUpdated: @escaping (((Bool) -> Void)?) -> Void @@ -582,7 +588,7 @@ public final class OngoingCallContext { }, videoCapturer: video?.impl, preferredAspectRatio: Float(preferredAspectRatio), enableHighBitrateVideoCalls: enableHighBitrateVideoCalls) strongSelf.contextRef = Unmanaged.passRetained(OngoingCallThreadLocalContextHolder(context)) - context.stateChanged = { [weak callSessionManager] state, videoState, remoteVideoState in + context.stateChanged = { [weak callSessionManager] state, videoState, remoteVideoState, remoteBatteryLevel, aspectRatio in queue.async { guard let strongSelf = self else { return @@ -612,11 +618,20 @@ public final class OngoingCallContext { @unknown default: mappedRemoteVideoState = .inactive } + let mappedRemoteBatteryLevel: OngoingCallContextState.RemoteBatteryLevel + switch remoteBatteryLevel { + case .normal: + mappedRemoteBatteryLevel = .normal + case .low: + mappedRemoteBatteryLevel = .low + @unknown default: + mappedRemoteBatteryLevel = .normal + } if case .active = mappedVideoState, !strongSelf.didReportCallAsVideo { strongSelf.didReportCallAsVideo = true callSessionManager?.updateCallType(internalId: internalId, type: .video) } - strongSelf.contextState.set(.single(OngoingCallContextState(state: mappedState, videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState))) + strongSelf.contextState.set(.single(OngoingCallContextState(state: mappedState, videoState: mappedVideoState, remoteVideoState: mappedRemoteVideoState, remoteBatteryLevel: mappedRemoteBatteryLevel))) } } context.signalBarsChanged = { signalBars in @@ -643,7 +658,7 @@ public final class OngoingCallContext { strongSelf.contextRef = Unmanaged.passRetained(OngoingCallThreadLocalContextHolder(context)) context.stateChanged = { state in - self?.contextState.set(.single(OngoingCallContextState(state: OngoingCallContextState.State(state), videoState: .notAvailable, remoteVideoState: .inactive))) + self?.contextState.set(.single(OngoingCallContextState(state: OngoingCallContextState.State(state), videoState: .notAvailable, remoteVideoState: .inactive, remoteBatteryLevel: .normal))) } context.signalBarsChanged = { signalBars in self?.receptionPromise.set(.single(signalBars)) diff --git a/submodules/TgVoip/PublicHeaders/TgVoip/OngoingCallThreadLocalContext.h b/submodules/TgVoip/PublicHeaders/TgVoip/OngoingCallThreadLocalContext.h index d7f6e16846..b2a73be4bf 100644 --- a/submodules/TgVoip/PublicHeaders/TgVoip/OngoingCallThreadLocalContext.h +++ b/submodules/TgVoip/PublicHeaders/TgVoip/OngoingCallThreadLocalContext.h @@ -74,6 +74,7 @@ typedef NS_ENUM(int32_t, OngoingCallDataSaving) { - (NSData * _Nonnull)getDerivedState; - (void)setIsMuted:(bool)isMuted; +- (void)setIsLowBatteryLevel:(bool)isLowBatteryLevel; - (void)setNetworkType:(OngoingCallNetworkType)networkType; @end diff --git a/submodules/TgVoip/Sources/OngoingCallThreadLocalContext.mm b/submodules/TgVoip/Sources/OngoingCallThreadLocalContext.mm index 7479f6cec8..38663d7668 100644 --- a/submodules/TgVoip/Sources/OngoingCallThreadLocalContext.mm +++ b/submodules/TgVoip/Sources/OngoingCallThreadLocalContext.mm @@ -419,6 +419,12 @@ static void (*InternalVoipLoggingFunction)(NSString *) = NULL; } } +- (void)setIsLowBatteryLevel:(bool)isLowBatteryLevel { + if (_tgVoip) { + _tgVoip->setIsLowBatteryLevel(isLowBatteryLevel); + } +} + - (void)setNetworkType:(OngoingCallNetworkType)networkType { if (_networkType != networkType) { _networkType = networkType; diff --git a/submodules/TgVoipWebrtc/PublicHeaders/TgVoip/OngoingCallThreadLocalContext.h b/submodules/TgVoipWebrtc/PublicHeaders/TgVoip/OngoingCallThreadLocalContext.h index 67cae45a52..503c8368e3 100644 --- a/submodules/TgVoipWebrtc/PublicHeaders/TgVoip/OngoingCallThreadLocalContext.h +++ b/submodules/TgVoipWebrtc/PublicHeaders/TgVoip/OngoingCallThreadLocalContext.h @@ -44,6 +44,11 @@ typedef NS_ENUM(int32_t, OngoingCallRemoteVideoStateWebrtc) { OngoingCallRemoteVideoStateActive }; +typedef NS_ENUM(int32_t, OngoingCallRemoteBatteryLevelWebrtc) { + OngoingCallRemoteBatteryLevelNormal, + OngoingCallRemoteBatteryLevelLow +}; + typedef NS_ENUM(int32_t, OngoingCallVideoOrientationWebrtc) { OngoingCallVideoOrientation0, OngoingCallVideoOrientation90, @@ -111,7 +116,7 @@ typedef NS_ENUM(int32_t, OngoingCallDataSavingWebrtc) { + (int32_t)maxLayer; + (NSArray * _Nonnull)versionsWithIncludeReference:(bool)includeReference; -@property (nonatomic, copy) void (^ _Nullable stateChanged)(OngoingCallStateWebrtc, OngoingCallVideoStateWebrtc, OngoingCallRemoteVideoStateWebrtc, float); +@property (nonatomic, copy) void (^ _Nullable stateChanged)(OngoingCallStateWebrtc, OngoingCallVideoStateWebrtc, OngoingCallRemoteVideoStateWebrtc, OngoingCallRemoteBatteryLevelWebrtc, float); @property (nonatomic, copy) void (^ _Nullable signalBarsChanged)(int32_t); - (instancetype _Nonnull)initWithVersion:(NSString * _Nonnull)version queue:(id _Nonnull)queue proxy:(VoipProxyServerWebrtc * _Nullable)proxy networkType:(OngoingCallNetworkTypeWebrtc)networkType dataSaving:(OngoingCallDataSavingWebrtc)dataSaving derivedState:(NSData * _Nonnull)derivedState key:(NSData * _Nonnull)key isOutgoing:(bool)isOutgoing primaryConnection:(OngoingCallConnectionDescriptionWebrtc * _Nonnull)primaryConnection alternativeConnections:(NSArray * _Nonnull)alternativeConnections maxLayer:(int32_t)maxLayer allowP2P:(BOOL)allowP2P logPath:(NSString * _Nonnull)logPath sendSignalingData:(void (^ _Nonnull)(NSData * _Nonnull))sendSignalingData videoCapturer:(OngoingCallThreadLocalContextVideoCapturer * _Nullable)videoCapturer preferredAspectRatio:(float)preferredAspectRatio enableHighBitrateVideoCalls:(bool)enableHighBitrateVideoCalls; diff --git a/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm b/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm index 550a49d3d5..41558925b6 100644 --- a/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm +++ b/submodules/TgVoipWebrtc/Sources/OngoingCallThreadLocalContext.mm @@ -15,7 +15,7 @@ #import "platform/darwin/VideoMetalViewMac.h" #define GLVideoView VideoMetalView #define UIViewContentModeScaleAspectFill kCAGravityResizeAspectFill -#define UIViewContentModeScaleAspect kCAGravityResizeAspect +#define UIViewContentModeScaleAspectFit kCAGravityResizeAspect #else #import "platform/darwin/VideoMetalView.h" @@ -212,6 +212,7 @@ OngoingCallStateWebrtc _state; OngoingCallVideoStateWebrtc _videoState; bool _connectedOnce; + OngoingCallRemoteBatteryLevelWebrtc _remoteBatteryLevel; OngoingCallRemoteVideoStateWebrtc _remoteVideoState; OngoingCallVideoOrientationWebrtc _remoteVideoOrientation; __weak UIView *_currentRemoteVideoRenderer; @@ -458,7 +459,26 @@ static void (*InternalVoipLoggingFunction)(NSString *) = NULL; if (strongSelf->_remoteVideoState != remoteVideoState) { strongSelf->_remoteVideoState = remoteVideoState; if (strongSelf->_stateChanged) { - strongSelf->_stateChanged(strongSelf->_state, strongSelf->_videoState, strongSelf->_remoteVideoState, strongSelf->_remotePreferredAspectRatio); + strongSelf->_stateChanged(strongSelf->_state, strongSelf->_videoState, strongSelf->_remoteVideoState, strongSelf->_remoteBatteryLevel, strongSelf->_remotePreferredAspectRatio); + } + } + } + }]; + }, + .remoteBatteryLevelIsLowUpdated = [weakSelf, queue](bool isLow) { + [queue dispatch:^{ + __strong OngoingCallThreadLocalContextWebrtc *strongSelf = weakSelf; + if (strongSelf) { + OngoingCallRemoteBatteryLevelWebrtc remoteBatteryLevel; + if (isLow) { + remoteBatteryLevel = OngoingCallRemoteBatteryLevelLow; + } else { + remoteBatteryLevel = OngoingCallRemoteBatteryLevelNormal; + } + if (strongSelf->_remoteBatteryLevel != remoteBatteryLevel) { + strongSelf->_remoteBatteryLevel = remoteBatteryLevel; + if (strongSelf->_stateChanged) { + strongSelf->_stateChanged(strongSelf->_state, strongSelf->_videoState, strongSelf->_remoteVideoState, strongSelf->_remoteBatteryLevel, strongSelf->_remotePreferredAspectRatio); } } } @@ -470,7 +490,7 @@ static void (*InternalVoipLoggingFunction)(NSString *) = NULL; if (strongSelf) { strongSelf->_remotePreferredAspectRatio = value; if (strongSelf->_stateChanged) { - strongSelf->_stateChanged(strongSelf->_state, strongSelf->_videoState, strongSelf->_remoteVideoState, strongSelf->_remotePreferredAspectRatio); + strongSelf->_stateChanged(strongSelf->_state, strongSelf->_videoState, strongSelf->_remoteVideoState, strongSelf->_remoteBatteryLevel, strongSelf->_remotePreferredAspectRatio); } } }]; @@ -582,7 +602,7 @@ static void (*InternalVoipLoggingFunction)(NSString *) = NULL; _videoState = videoState; if (_stateChanged) { - _stateChanged(_state, _videoState, _remoteVideoState, _remotePreferredAspectRatio); + _stateChanged(_state, _videoState, _remoteVideoState, _remoteBatteryLevel, _remotePreferredAspectRatio); } } } @@ -634,7 +654,7 @@ static void (*InternalVoipLoggingFunction)(NSString *) = NULL; dispatch_async(dispatch_get_main_queue(), ^{ if ([VideoMetalView isSupported]) { VideoMetalView *remoteRenderer = [[VideoMetalView alloc] initWithFrame:CGRectZero]; - remoteRenderer.videoContentMode = UIViewContentModeScaleAspect; + remoteRenderer.videoContentMode = UIViewContentModeScaleAspectFit; std::shared_ptr> sink = [remoteRenderer getSink]; __strong OngoingCallThreadLocalContextWebrtc *strongSelf = weakSelf; diff --git a/submodules/TgVoipWebrtc/tgcalls b/submodules/TgVoipWebrtc/tgcalls index 0806eae4d1..bcee981fb0 160000 --- a/submodules/TgVoipWebrtc/tgcalls +++ b/submodules/TgVoipWebrtc/tgcalls @@ -1 +1 @@ -Subproject commit 0806eae4d11e1fdc2f82402f2f49a3a2ff053077 +Subproject commit bcee981fb0cdd2252051d08fb5758be22fa7613f diff --git a/submodules/TooltipUI/Sources/TooltipScreen.swift b/submodules/TooltipUI/Sources/TooltipScreen.swift index b9ec084763..599f3f3dd6 100644 --- a/submodules/TooltipUI/Sources/TooltipScreen.swift +++ b/submodules/TooltipUI/Sources/TooltipScreen.swift @@ -25,6 +25,7 @@ public enum TooltipActiveTextAction { } private final class TooltipScreenNode: ViewControllerTracingNode { + private let tooltipStyle: TooltipScreen.Style private let icon: TooltipScreen.Icon? private let location: TooltipScreen.Location private let displayDuration: TooltipScreen.DisplayDuration @@ -33,10 +34,12 @@ private final class TooltipScreenNode: ViewControllerTracingNode { private let scrollingContainer: ASDisplayNode private let containerNode: ASDisplayNode + private let backgroundContainerNode: ASDisplayNode private let backgroundNode: ASImageNode private var effectView: UIView? private let arrowNode: ASImageNode private let arrowContainer: ASDisplayNode + private var arrowEffectView: UIView? private let animatedStickerNode: AnimatedStickerNode private let textNode: ImmediateTextNode @@ -44,7 +47,8 @@ private final class TooltipScreenNode: ViewControllerTracingNode { private var validLayout: ContainerViewLayout? - init(text: String, textEntities: [MessageTextEntity], icon: TooltipScreen.Icon?, location: TooltipScreen.Location, displayDuration: TooltipScreen.DisplayDuration, shouldDismissOnTouch: @escaping (CGPoint) -> TooltipScreen.DismissOnTouch, requestDismiss: @escaping () -> Void, openActiveTextItem: @escaping (TooltipActiveTextItem, TooltipActiveTextAction) -> Void) { + init(text: String, textEntities: [MessageTextEntity], style: TooltipScreen.Style, icon: TooltipScreen.Icon?, location: TooltipScreen.Location, displayDuration: TooltipScreen.DisplayDuration, shouldDismissOnTouch: @escaping (CGPoint) -> TooltipScreen.DismissOnTouch, requestDismiss: @escaping () -> Void, openActiveTextItem: @escaping (TooltipActiveTextItem, TooltipActiveTextAction) -> Void) { + self.tooltipStyle = style self.icon = icon self.location = location self.displayDuration = displayDuration @@ -52,6 +56,7 @@ private final class TooltipScreenNode: ViewControllerTracingNode { self.requestDismiss = requestDismiss self.containerNode = ASDisplayNode() + self.backgroundContainerNode = ASDisplayNode() let fillColor = UIColor(white: 0.0, alpha: 0.8) @@ -59,14 +64,43 @@ private final class TooltipScreenNode: ViewControllerTracingNode { self.backgroundNode = ASImageNode() self.backgroundNode.image = generateAdjustedStretchableFilledCircleImage(diameter: 15.0, color: fillColor) - if case .top = location { - self.effectView = UIVisualEffectView(effect: UIBlurEffect(style: .dark)) - self.containerNode.clipsToBounds = true - self.containerNode.cornerRadius = 9.0 + + func svgPath(_ path: StaticString, scale: CGPoint = CGPoint(x: 1.0, y: 1.0), offset: CGPoint = CGPoint()) throws -> UIBezierPath { + var index: UnsafePointer = path.utf8Start + let end = path.utf8Start.advanced(by: path.utf8CodeUnitCount) + let path = UIBezierPath() + while index < end { + let c = index.pointee + index = index.successor() + + if c == 77 { // M + let x = try readCGFloat(&index, end: end, separator: 44) * scale.x + offset.x + let y = try readCGFloat(&index, end: end, separator: 32) * scale.y + offset.y + + path.move(to: CGPoint(x: x, y: y)) + } else if c == 76 { // L + let x = try readCGFloat(&index, end: end, separator: 44) * scale.x + offset.x + let y = try readCGFloat(&index, end: end, separator: 32) * scale.y + offset.y + + path.addLine(to: CGPoint(x: x, y: y)) + } else if c == 67 { // C + let x1 = try readCGFloat(&index, end: end, separator: 44) * scale.x + offset.x + let y1 = try readCGFloat(&index, end: end, separator: 32) * scale.y + offset.y + let x2 = try readCGFloat(&index, end: end, separator: 44) * scale.x + offset.x + let y2 = try readCGFloat(&index, end: end, separator: 32) * scale.y + offset.y + let x = try readCGFloat(&index, end: end, separator: 44) * scale.x + offset.x + let y = try readCGFloat(&index, end: end, separator: 32) * scale.y + offset.y + path.addCurve(to: CGPoint(x: x, y: y), controlPoint1: CGPoint(x: x1, y: y1), controlPoint2: CGPoint(x: x2, y: y2)) + } else if c == 32 { // space + continue + } + } + path.close() + return path } - self.arrowNode = ASImageNode() let arrowSize = CGSize(width: 29.0, height: 10.0) + self.arrowNode = ASImageNode() self.arrowNode.image = generateImage(arrowSize, rotatedContext: { size, context in context.clear(CGRect(origin: CGPoint(), size: size)) context.setFillColor(fillColor.cgColor) @@ -77,11 +111,42 @@ private final class TooltipScreenNode: ViewControllerTracingNode { self.arrowContainer = ASDisplayNode() + let fontSize: CGFloat + if style == .light { + self.effectView = UIVisualEffectView(effect: UIBlurEffect(style: .light)) + self.backgroundContainerNode.clipsToBounds = true + self.backgroundContainerNode.cornerRadius = 14.0 + if #available(iOS 13.0, *) { + self.backgroundContainerNode.layer.cornerCurve = .continuous + } + fontSize = 17.0 + + self.arrowEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light)) + self.arrowContainer.view.addSubview(self.arrowEffectView!) + + let maskLayer = CAShapeLayer() + if let path = try? svgPath("M85.882251,0 C79.5170552,0 73.4125613,2.52817247 68.9116882,7.02834833 L51.4264069,24.5109211 C46.7401154,29.1964866 39.1421356,29.1964866 34.4558441,24.5109211 L16.9705627,7.02834833 C12.4696897,2.52817247 6.36519576,0 0,0 L85.882251,0 ", scale: CGPoint(x: 0.333333, y: 0.333333), offset: CGPoint()) { + maskLayer.path = path.cgPath + } + maskLayer.frame = CGRect(origin: CGPoint(), size: arrowSize) + self.arrowContainer.layer.mask = maskLayer + } else if case .top = location { + self.effectView = UIVisualEffectView(effect: UIBlurEffect(style: .dark)) + self.containerNode.clipsToBounds = true + self.containerNode.cornerRadius = 9.0 + if #available(iOS 13.0, *) { + self.containerNode.layer.cornerCurve = .continuous + } + fontSize = 14.0 + } else { + fontSize = 14.0 + } + self.textNode = ImmediateTextNode() self.textNode.displaysAsynchronously = false self.textNode.maximumNumberOfLines = 0 - self.textNode.attributedText = stringWithAppliedEntities(text, entities: textEntities, baseColor: .white, linkColor: .white, baseFont: Font.regular(14.0), linkFont: Font.regular(14.0), boldFont: Font.semibold(14.0), italicFont: Font.italic(14.0), boldItalicFont: Font.semiboldItalic(14.0), fixedFont: Font.monospace(14.0), blockQuoteFont: Font.regular(14.0), underlineLinks: true, external: false) + self.textNode.attributedText = stringWithAppliedEntities(text, entities: textEntities, baseColor: .white, linkColor: .white, baseFont: Font.regular(fontSize), linkFont: Font.regular(fontSize), boldFont: Font.semibold(14.0), italicFont: Font.italic(fontSize), boldItalicFont: Font.semiboldItalic(fontSize), fixedFont: Font.monospace(fontSize), blockQuoteFont: Font.regular(fontSize), underlineLinks: true, external: false) self.animatedStickerNode = AnimatedStickerNode() switch icon { @@ -101,12 +166,17 @@ private final class TooltipScreenNode: ViewControllerTracingNode { super.init() + self.containerNode.addSubnode(self.backgroundContainerNode) self.arrowContainer.addSubnode(self.arrowNode) self.backgroundNode.addSubnode(self.arrowContainer) if let effectView = self.effectView { - self.containerNode.view.addSubview(effectView) + self.backgroundContainerNode.view.addSubview(effectView) + if let _ = self.arrowEffectView { + self.containerNode.addSubnode(self.arrowContainer) + self.arrowNode.removeFromSupernode() + } } else { - self.containerNode.addSubnode(self.backgroundNode) + self.backgroundContainerNode.addSubnode(self.backgroundNode) } self.containerNode.addSubnode(self.textNode) self.containerNode.addSubnode(self.animatedStickerNode) @@ -207,8 +277,14 @@ private final class TooltipScreenNode: ViewControllerTracingNode { var backgroundFrame: CGRect - let backgroundHeight = max(animationSize.height, textSize.height) + contentVerticalInset * 2.0 - + let backgroundHeight: CGFloat + switch self.tooltipStyle { + case .default: + backgroundHeight = max(animationSize.height, textSize.height) + contentVerticalInset * 2.0 + case .light: + backgroundHeight = max(28.0, max(animationSize.height, textSize.height) + 4.0 * 2.0) + } + var invertArrow = false switch self.location { case let .point(rect): @@ -231,6 +307,7 @@ private final class TooltipScreenNode: ViewControllerTracingNode { } transition.updateFrame(node: self.containerNode, frame: backgroundFrame) + transition.updateFrame(node: self.backgroundContainerNode, frame: CGRect(origin: CGPoint(), size: backgroundFrame.size)) transition.updateFrame(node: self.backgroundNode, frame: CGRect(origin: CGPoint(), size: backgroundFrame.size)) if let effectView = self.effectView { transition.updateFrame(view: effectView, frame: CGRect(origin: CGPoint(), size: backgroundFrame.size)) @@ -252,8 +329,10 @@ private final class TooltipScreenNode: ViewControllerTracingNode { ContainedViewLayoutTransition.immediate.updateTransformScale(node: self.arrowContainer, scale: CGPoint(x: 1.0, y: invertArrow ? -1.0 : 1.0)) self.arrowNode.frame = CGRect(origin: CGPoint(), size: arrowFrame.size) + self.arrowEffectView?.frame = CGRect(origin: CGPoint(), size: arrowFrame.size) } else { self.arrowNode.isHidden = true + self.arrowEffectView?.isHidden = true } transition.updateFrame(node: self.textNode, frame: CGRect(origin: CGPoint(x: contentInset + animationSize.width + animationSpacing, y: floor((backgroundHeight - textSize.height) / 2.0)), size: textSize)) @@ -373,8 +452,14 @@ public final class TooltipScreen: ViewController { case custom(Double) } + public enum Style { + case `default` + case light + } + public let text: String public let textEntities: [MessageTextEntity] + private let style: TooltipScreen.Style private let icon: TooltipScreen.Icon? private let location: TooltipScreen.Location private let displayDuration: DisplayDuration @@ -393,9 +478,10 @@ public final class TooltipScreen: ViewController { private var dismissTimer: Foundation.Timer? - public init(text: String, textEntities: [MessageTextEntity] = [], icon: TooltipScreen.Icon?, location: TooltipScreen.Location, displayDuration: DisplayDuration = .default, shouldDismissOnTouch: @escaping (CGPoint) -> TooltipScreen.DismissOnTouch, openActiveTextItem: @escaping (TooltipActiveTextItem, TooltipActiveTextAction) -> Void = { _, _ in }) { + public init(text: String, textEntities: [MessageTextEntity] = [], style: TooltipScreen.Style = .default, icon: TooltipScreen.Icon?, location: TooltipScreen.Location, displayDuration: DisplayDuration = .default, shouldDismissOnTouch: @escaping (CGPoint) -> TooltipScreen.DismissOnTouch, openActiveTextItem: @escaping (TooltipActiveTextItem, TooltipActiveTextAction) -> Void = { _, _ in }) { self.text = text self.textEntities = textEntities + self.style = style self.icon = icon self.location = location self.displayDuration = displayDuration @@ -455,7 +541,7 @@ public final class TooltipScreen: ViewController { } override public func loadDisplayNode() { - self.displayNode = TooltipScreenNode(text: self.text, textEntities: self.textEntities, icon: self.icon, location: self.location, displayDuration: self.displayDuration, shouldDismissOnTouch: self.shouldDismissOnTouch, requestDismiss: { [weak self] in + self.displayNode = TooltipScreenNode(text: self.text, textEntities: self.textEntities, style: self.style, icon: self.icon, location: self.location, displayDuration: self.displayDuration, shouldDismissOnTouch: self.shouldDismissOnTouch, requestDismiss: { [weak self] in guard let strongSelf = self else { return }