From 0606bcf8da903e5accc696569cbcc473020419d3 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 14 Dec 2020 16:30:51 +0400 Subject: [PATCH 01/23] Voice Chat UI fixes --- .../Sources/VoiceChatActionButton.swift | 4 ++ .../Sources/VoiceChatController.swift | 28 +++++++-- .../Sources/VoiceChatOverlayController.swift | 63 ++++++++++++++++--- .../TelegramCore/Sources/StickerPack.swift | 4 +- 4 files changed, 82 insertions(+), 17 deletions(-) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift b/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift index 3065065211..d9c0e924bd 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift @@ -39,6 +39,7 @@ final class VoiceChatActionButton: HighlightTrackingButtonNode { return self.statePromise.get() } + let bottomNode: ASDisplayNode private let containerNode: ASDisplayNode private let backgroundNode: VoiceChatActionButtonBackgroundNode private let iconNode: VoiceChatMicrophoneNode @@ -93,6 +94,7 @@ final class VoiceChatActionButton: HighlightTrackingButtonNode { } init() { + self.bottomNode = ASDisplayNode() self.containerNode = ASDisplayNode() self.backgroundNode = VoiceChatActionButtonBackgroundNode() self.iconNode = VoiceChatMicrophoneNode() @@ -102,6 +104,7 @@ final class VoiceChatActionButton: HighlightTrackingButtonNode { super.init() + self.addSubnode(self.bottomNode) self.addSubnode(self.titleLabel) self.addSubnode(self.subtitleLabel) @@ -178,6 +181,7 @@ final class VoiceChatActionButton: HighlightTrackingButtonNode { self.titleLabel.frame = CGRect(origin: CGPoint(x: floor((size.width - titleSize.width) / 2.0), y: floor(size.height - totalHeight / 2.0) - 112.0), size: titleSize) self.subtitleLabel.frame = CGRect(origin: CGPoint(x: floor((size.width - subtitleSize.width) / 2.0), y: self.titleLabel.frame.maxY + 1.0), size: subtitleSize) + self.bottomNode.frame = CGRect(origin: CGPoint(), size: size) self.containerNode.frame = CGRect(origin: CGPoint(), size: size) self.backgroundNode.bounds = CGRect(origin: CGPoint(), size: size) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index 56a65f0341..a6fe0e6ebd 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -393,8 +393,8 @@ public final class VoiceChatController: ViewController { fileprivate let bottomPanelNode: ASDisplayNode private let bottomPanelBackgroundNode: ASDisplayNode private let bottomCornersNode: ASImageNode - private let audioOutputNode: CallControllerButtonItemNode - private let leaveNode: CallControllerButtonItemNode + fileprivate let audioOutputNode: CallControllerButtonItemNode + fileprivate let leaveNode: CallControllerButtonItemNode fileprivate let actionButton: VoiceChatActionButton private let leftBorderNode: ASDisplayNode private let rightBorderNode: ASDisplayNode @@ -1644,9 +1644,10 @@ public final class VoiceChatController: ViewController { let sideButtonOffset = min(36.0, floor((((layout.size.width - 144.0) / 2.0) - sideButtonSize.width) / 2.0)) let sideButtonOrigin = max(sideButtonMinimalInset, floor((layout.size.width - 144.0) / 2.0) - sideButtonOffset - sideButtonSize.width) - transition.updateFrame(node: self.audioOutputNode, frame: CGRect(origin: CGPoint(x: sideButtonOrigin, y: floor((bottomAreaHeight - sideButtonSize.height) / 2.0)), size: sideButtonSize)) - transition.updateFrame(node: self.leaveNode, frame: CGRect(origin: CGPoint(x: layout.size.width - sideButtonOrigin - sideButtonSize.width, y: floor((bottomAreaHeight - sideButtonSize.height) / 2.0)), size: sideButtonSize)) - + if self.audioOutputNode.supernode === self.bottomPanelNode { + transition.updateFrame(node: self.audioOutputNode, frame: CGRect(origin: CGPoint(x: sideButtonOrigin, y: floor((bottomAreaHeight - sideButtonSize.height) / 2.0)), size: sideButtonSize)) + transition.updateFrame(node: self.leaveNode, frame: CGRect(origin: CGPoint(x: layout.size.width - sideButtonOrigin - sideButtonSize.width, y: floor((bottomAreaHeight - sideButtonSize.height) / 2.0)), size: sideButtonSize)) + } if isFirstTime { while !self.enqueuedTransitions.isEmpty { self.dequeueTransition() @@ -1669,6 +1670,10 @@ public final class VoiceChatController: ViewController { self.contentContainer.view.bounds = initialBounds }, completion: { _ in if self.actionButton.supernode !== self.bottomPanelNode { + self.audioOutputNode.layer.removeAllAnimations() + self.leaveNode.layer.removeAllAnimations() + self.bottomPanelNode.addSubnode(self.audioOutputNode) + self.bottomPanelNode.addSubnode(self.leaveNode) self.bottomPanelNode.addSubnode(self.actionButton) self.containerLayoutUpdated(layout, navigationHeight :navigationHeight, transition: .immediate) } @@ -1865,6 +1870,17 @@ public final class VoiceChatController: ViewController { index += 1 } + if let accountPeer = self.accountPeer, !processedPeerIds.contains(accountPeer.id) { + entries.insert(.peer(PeerEntry( + peer: accountPeer, + presence: nil, + activityTimestamp: Int32.max - 1 - index, + state: .listening, + muteState: GroupCallParticipantsContext.Participant.MuteState(canUnmute: true), + canManageCall: callState?.canManageCall ?? false + )), at: 1) + } + for peer in invitedPeers { if processedPeerIds.contains(peer.id) { continue @@ -2235,7 +2251,7 @@ public final class VoiceChatController: ViewController { return } - let overlayController = VoiceChatOverlayController(actionButton: self.controllerNode.actionButton, navigationController: self.navigationController as? NavigationController) + let overlayController = VoiceChatOverlayController(actionButton: self.controllerNode.actionButton, audioOutputNode: self.controllerNode.audioOutputNode, leaveNode: self.controllerNode.leaveNode, navigationController: self.navigationController as? NavigationController) if let navigationController = self.navigationController as? NavigationController { navigationController.presentOverlay(controller: overlayController, inGlobal: true, blockInteraction: false) } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift index 9190330289..931955f57c 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift @@ -86,24 +86,44 @@ public final class VoiceChatOverlayController: ViewController { } } } - + + private var initialLeftButtonPosition: CGPoint? + private var initialRightButtonPosition: CGPoint? + func animateIn(from: CGRect) { - guard let actionButton = self.controller?.actionButton else { + guard let actionButton = self.controller?.actionButton, let leftButton = self.controller?.audioOutputNode, let rightButton = self.controller?.leaveNode else { return } actionButton.update(snap: true, animated: !self.isSlidOffscreen && !self.isButtonHidden) if self.isSlidOffscreen { + leftButton.isHidden = false + rightButton.isHidden = false actionButton.layer.sublayerTransform = CATransform3DMakeTranslation(slideOffset, 0.0, 0.0) return } else if self.isButtonHidden { + leftButton.isHidden = false + rightButton.isHidden = false actionButton.isHidden = true return } + + self.initialLeftButtonPosition = leftButton.position + self.initialRightButtonPosition = rightButton.position + + let center = CGPoint(x: actionButton.frame.width / 2.0, y: actionButton.frame.height / 2.0) + leftButton.layer.animatePosition(from: leftButton.position, to: center, duration: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false, completion: { [weak leftButton] _ in + leftButton?.isHidden = true + leftButton?.layer.removeAllAnimations() + }) + rightButton.layer.animatePosition(from: rightButton.position, to: center, duration: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false, completion: { [weak rightButton] _ in + rightButton?.isHidden = true + rightButton?.layer.removeAllAnimations() + }) let targetPosition = actionButton.position let sourcePoint = CGPoint(x: from.midX, y: from.midY) - let midPoint = CGPoint(x: (sourcePoint.x + targetPosition.x) / 2.0, y: sourcePoint.y + 120.0) + let midPoint = CGPoint(x: (sourcePoint.x + targetPosition.x) / 2.0, y: sourcePoint.y + 90.0) let x1 = sourcePoint.x let y1 = sourcePoint.y @@ -131,7 +151,7 @@ public final class VoiceChatOverlayController: ViewController { private var animating = false private var dismissed = false func animateOut(reclaim: Bool, completion: @escaping (Bool) -> Void) { - guard let actionButton = self.controller?.actionButton, let layout = self.validLayout else { + guard let actionButton = self.controller?.actionButton, let leftButton = self.controller?.audioOutputNode, let rightButton = self.controller?.leaveNode, let layout = self.validLayout else { return } @@ -155,7 +175,7 @@ public final class VoiceChatOverlayController: ViewController { } else { self.animating = true let sourcePoint = actionButton.position - var midPoint = CGPoint(x: (sourcePoint.x + targetPosition.x) / 2.0 - 60.0, y: sourcePoint.y) + var midPoint = CGPoint(x: (sourcePoint.x + targetPosition.x) / 2.0 - 25.0, y: (sourcePoint.y + targetPosition.y) / 2.0 + 25.0) if sourcePoint.y < layout.size.height - 100.0 { midPoint.x = (sourcePoint.x + targetPosition.x) / 2.0 + 30.0 midPoint.y = (sourcePoint.y + targetPosition.y) / 2.0 + 40.0 @@ -180,9 +200,19 @@ public final class VoiceChatOverlayController: ViewController { keyframes.append(NSValue(cgPoint: CGPoint(x: x, y: y))) } + if let leftButtonPosition = self.initialLeftButtonPosition, let rightButtonPosition = self.initialRightButtonPosition { + let center = CGPoint(x: actionButton.frame.width / 2.0, y: actionButton.frame.height / 2.0) + + leftButton.isHidden = false + leftButton.layer.animatePosition(from: center, to: leftButtonPosition, duration: 0.25, delay: 0.1, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) + + rightButton.isHidden = false + rightButton.layer.animatePosition(from: center, to: rightButtonPosition, duration: 0.25, delay: 0.1, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) + } + actionButton.update(snap: false, animated: true) actionButton.position = targetPosition - actionButton.layer.animateKeyframes(values: keyframes, duration: 0.34, keyPath: "position", timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, completion: { _ in + actionButton.layer.animateKeyframes(values: keyframes, duration: 0.37, keyPath: "position", timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, completion: { _ in self.animating = false completion(false) }) @@ -210,9 +240,20 @@ public final class VoiceChatOverlayController: ViewController { func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { self.validLayout = layout - if let actionButton = self.controller?.actionButton, !self.animating && !self.dismissed { + if let actionButton = self.controller?.actionButton, let leftButton = self.controller?.audioOutputNode, let rightButton = self.controller?.leaveNode, !self.animating && !self.dismissed { let convertedRect = actionButton.view.convert(actionButton.bounds, to: self.view) - let insets = layout.insets(options: [.input]) + let insets = layout.insets(options: [.input]) + + if !self.didAnimateIn { + let leftButtonFrame = leftButton.view.convert(leftButton.bounds, to: actionButton.bottomNode.view) + actionButton.bottomNode.addSubnode(leftButton) + leftButton.frame = leftButtonFrame + + let rightButtonFrame = rightButton.view.convert(rightButton.bounds, to: actionButton.bottomNode.view) + actionButton.bottomNode.addSubnode(rightButton) + rightButton.frame = rightButtonFrame + } + transition.updatePosition(node: actionButton, position: CGPoint(x: layout.size.width - layout.safeInsets.right - 21.0, y: layout.size.height - insets.bottom - 22.0)) if actionButton.supernode !== self && !self.didAnimateIn { @@ -225,6 +266,8 @@ public final class VoiceChatOverlayController: ViewController { } private weak var actionButton: VoiceChatActionButton? + private weak var audioOutputNode: CallControllerButtonItemNode? + private weak var leaveNode: CallControllerButtonItemNode? private var controllerNode: Node { return self.displayNode as! Node @@ -232,8 +275,10 @@ public final class VoiceChatOverlayController: ViewController { private var disposable: Disposable? - init(actionButton: VoiceChatActionButton, navigationController: NavigationController?) { + init(actionButton: VoiceChatActionButton, audioOutputNode: CallControllerButtonItemNode, leaveNode: CallControllerButtonItemNode, navigationController: NavigationController?) { self.actionButton = actionButton + self.audioOutputNode = audioOutputNode + self.leaveNode = leaveNode super.init(navigationBarPresentationData: nil) diff --git a/submodules/TelegramCore/Sources/StickerPack.swift b/submodules/TelegramCore/Sources/StickerPack.swift index f7322035c1..f1812d322d 100644 --- a/submodules/TelegramCore/Sources/StickerPack.swift +++ b/submodules/TelegramCore/Sources/StickerPack.swift @@ -37,7 +37,7 @@ func telegramStickerPackThumbnailRepresentationFromApiSize(datacenterId: Int32, extension StickerPackCollectionInfo { convenience init(apiSet: Api.StickerSet, namespace: ItemCollectionId.Namespace) { switch apiSet { - case let .stickerSet(flags, _, id, accessHash, title, shortName, thumb, thumbDcId, count, nHash): + case let .stickerSet(flags, _, id, accessHash, title, shortName, thumbs, thumbDcId, count, nHash): var setFlags: StickerPackCollectionInfoFlags = StickerPackCollectionInfoFlags() if (flags & (1 << 2)) != 0 { setFlags.insert(.isOfficial) @@ -50,7 +50,7 @@ extension StickerPackCollectionInfo { } var thumbnailRepresentation: TelegramMediaImageRepresentation? - if let thumb = thumb?.first, let thumbDcId = thumbDcId { + if let thumb = thumbs?.first, let thumbDcId = thumbDcId { thumbnailRepresentation = telegramStickerPackThumbnailRepresentationFromApiSize(datacenterId: thumbDcId, size: thumb) } From ae2bf3b908617d94d6207cc7c50182801d8e4575 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 14 Dec 2020 17:50:47 +0400 Subject: [PATCH 02/23] Voice Chat UI fixes --- .../Sources/VoiceChatController.swift | 32 ++++++++--------- .../Sources/VoiceChatOverlayController.swift | 36 ++++++++++++++----- 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index a6fe0e6ebd..2dc3efbc70 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -1670,6 +1670,8 @@ public final class VoiceChatController: ViewController { self.contentContainer.view.bounds = initialBounds }, completion: { _ in if self.actionButton.supernode !== self.bottomPanelNode { + self.audioOutputNode.isHidden = false + self.leaveNode.isHidden = false self.audioOutputNode.layer.removeAllAnimations() self.leaveNode.layer.removeAllAnimations() self.bottomPanelNode.addSubnode(self.audioOutputNode) @@ -1906,24 +1908,12 @@ public final class VoiceChatController: ViewController { } override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { -// if let callState = self.callState, case .connected = callState.networkState, let muteState = callState.muteState, !muteState.canUnmute { -// return false -// } -// if let recognizer = gestureRecognizer as? UIPanGestureRecognizer { -// let location = recognizer.location(in: self.view) -// if let view = super.hitTest(location, with: nil) { -// if let gestureRecognizers = view.gestureRecognizers, view != self.view { -// for gestureRecognizer in gestureRecognizers { -// if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer, gestureRecognizer.isEnabled { -// if panGestureRecognizer.state != .began { -// panGestureRecognizer.isEnabled = false -// panGestureRecognizer.isEnabled = true -// } -// } -// } -// } -// } -// } + if gestureRecognizer is DirectionalPanGestureRecognizer { + let location = gestureRecognizer.location(in: self.bottomPanelNode.view) + if self.audioOutputNode.frame.contains(location) || self.leaveNode.frame.contains(location) { + return false + } + } return true } @@ -2263,6 +2253,12 @@ public final class VoiceChatController: ViewController { overlayController?.animateOut(reclaim: true, completion: { [weak self] immediate in if let strongSelf = self, immediate { strongSelf.controllerNode.bottomPanelNode.addSubnode(strongSelf.controllerNode.actionButton) + strongSelf.controllerNode.bottomPanelNode.addSubnode(strongSelf.controllerNode.audioOutputNode) + strongSelf.controllerNode.bottomPanelNode.addSubnode(strongSelf.controllerNode.leaveNode) + + if immediate, let layout = strongSelf.validLayout { + strongSelf.containerLayoutUpdated(layout, transition: .immediate) + } } }) strongSelf.reclaimActionButton = nil diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift index 931955f57c..0be01d7c31 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift @@ -95,21 +95,21 @@ public final class VoiceChatOverlayController: ViewController { return } + self.initialLeftButtonPosition = leftButton.position + self.initialRightButtonPosition = rightButton.position + actionButton.update(snap: true, animated: !self.isSlidOffscreen && !self.isButtonHidden) if self.isSlidOffscreen { - leftButton.isHidden = false - rightButton.isHidden = false + leftButton.isHidden = true + rightButton.isHidden = true actionButton.layer.sublayerTransform = CATransform3DMakeTranslation(slideOffset, 0.0, 0.0) return } else if self.isButtonHidden { - leftButton.isHidden = false - rightButton.isHidden = false + leftButton.isHidden = true + rightButton.isHidden = true actionButton.isHidden = true return } - - self.initialLeftButtonPosition = leftButton.position - self.initialRightButtonPosition = rightButton.position let center = CGPoint(x: actionButton.frame.width / 2.0, y: actionButton.frame.height / 2.0) leftButton.layer.animatePosition(from: leftButton.position, to: center, duration: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false, completion: { [weak leftButton] _ in @@ -164,6 +164,15 @@ public final class VoiceChatOverlayController: ViewController { actionButton.layer.sublayerTransform = CATransform3DIdentity actionButton.update(snap: false, animated: false) actionButton.position = CGPoint(x: targetPosition.x, y: 268.0 / 2.0) + + leftButton.isHidden = false + rightButton.isHidden = false + if let leftButtonPosition = self.initialLeftButtonPosition { + leftButton.position = CGPoint(x: actionButton.position.x + leftButtonPosition.x, y: actionButton.position.y) + } + if let rightButtonPosition = self.initialRightButtonPosition { + rightButton.position = CGPoint(x: actionButton.position.x + rightButtonPosition.x, y: actionButton.position.y) + } completion(true) } else if self.isButtonHidden { actionButton.isHidden = false @@ -171,6 +180,15 @@ public final class VoiceChatOverlayController: ViewController { actionButton.layer.sublayerTransform = CATransform3DIdentity actionButton.update(snap: false, animated: false) actionButton.position = CGPoint(x: targetPosition.x, y: 268.0 / 2.0) + + leftButton.isHidden = false + rightButton.isHidden = false + if let leftButtonPosition = self.initialLeftButtonPosition { + leftButton.position = CGPoint(x: actionButton.position.x + leftButtonPosition.x, y: actionButton.position.y) + } + if let rightButtonPosition = self.initialRightButtonPosition { + rightButton.position = CGPoint(x: actionButton.position.x + rightButtonPosition.x, y: actionButton.position.y) + } completion(true) } else { self.animating = true @@ -204,10 +222,10 @@ public final class VoiceChatOverlayController: ViewController { let center = CGPoint(x: actionButton.frame.width / 2.0, y: actionButton.frame.height / 2.0) leftButton.isHidden = false - leftButton.layer.animatePosition(from: center, to: leftButtonPosition, duration: 0.25, delay: 0.1, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) + leftButton.layer.animatePosition(from: center, to: leftButtonPosition, duration: 0.25, delay: 0.12, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) rightButton.isHidden = false - rightButton.layer.animatePosition(from: center, to: rightButtonPosition, duration: 0.25, delay: 0.1, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) + rightButton.layer.animatePosition(from: center, to: rightButtonPosition, duration: 0.25, delay: 0.12, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) } actionButton.update(snap: false, animated: true) From a9b4910ba7423daeccfbfab16bdd1ed24f61a214 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Mon, 14 Dec 2020 17:50:52 +0400 Subject: [PATCH 03/23] Voice chat fixes --- .../ChannelMembersSearchControllerNode.swift | 8 +- .../Sources/PresentationGroupCall.swift | 16 +- .../Sources/VoiceChatController.swift | 225 ++++++++++++------ submodules/TgVoipWebrtc/tgcalls | 2 +- 4 files changed, 173 insertions(+), 78 deletions(-) diff --git a/submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift b/submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift index b43b0f491c..70dd623548 100644 --- a/submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift +++ b/submodules/PeerInfoUI/Sources/ChannelMembersSearchControllerNode.swift @@ -484,7 +484,13 @@ class ChannelMembersSearchControllerNode: ASDisplayNode { index += 1 } - if case .inviteToCall = mode { + if case .inviteToCall = mode, !filters.contains(where: { filter in + if case .excludeNonMembers = filter { + return true + } else { + return false + } + }) { for peer in contactsView.peers { entries.append(ChannelMembersSearchEntry.contact(index, peer, contactsView.peerPresences[peer.id] as? TelegramUserPresence)) index += 1 diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index 2f65717ca6..37d8d1bd28 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -1102,13 +1102,15 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { self.callContext = nil self._canBeRemoved.set(.single(true)) - let toneRenderer = PresentationCallToneRenderer(tone: .groupLeft) - self.toneRenderer = toneRenderer - toneRenderer.setAudioSessionActive(self.isAudioSessionActive) - - Queue.mainQueue().after(0.5, { - self.wasRemoved.set(.single(true)) - }) + if self.didConnectOnce { + let toneRenderer = PresentationCallToneRenderer(tone: .groupLeft) + self.toneRenderer = toneRenderer + toneRenderer.setAudioSessionActive(self.isAudioSessionActive) + + Queue.mainQueue().after(0.5, { + self.wasRemoved.set(.single(true)) + }) + } } public func leave(terminateIfPossible: Bool) -> Signal { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index 56a65f0341..745e060047 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -562,7 +562,7 @@ public final class VoiceChatController: ViewController { guard let strongSelf = self else { return } - guard let groupPeer = groupPeer as? TelegramChannel else { + guard let groupPeer = groupPeer else { return } @@ -570,8 +570,14 @@ public final class VoiceChatController: ViewController { if let currentCallMembers = strongSelf.currentCallMembers { filters.append(.disable(Array(currentCallMembers.map { $0.peer.id }))) } - if !groupPeer.hasPermission(.inviteMembers) { - filters.append(.excludeNonMembers) + if let groupPeer = groupPeer as? TelegramChannel { + if !groupPeer.hasPermission(.inviteMembers) { + filters.append(.excludeNonMembers) + } + } else if let groupPeer = groupPeer as? TelegramGroup { + if !groupPeer.hasBannedPermission(.banAddMembers) { + filters.append(.excludeNonMembers) + } } filters.append(.excludeBots) @@ -598,73 +604,143 @@ public final class VoiceChatController: ViewController { return } - let selfController = strongSelf.controller - let inviteDisposable = strongSelf.inviteDisposable - var inviteSignal = strongSelf.context.peerChannelMemberCategoriesContextsManager.addMembers(account: strongSelf.context.account, peerId: groupPeer.id, memberIds: [peer.id]) - var cancelImpl: (() -> Void)? - let progressSignal = Signal { [weak selfController] subscriber in - let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: { - cancelImpl?() - })) - selfController?.present(controller, in: .window(.root)) - return ActionDisposable { [weak controller] in - Queue.mainQueue().async() { - controller?.dismiss() + if let groupPeer = groupPeer as? TelegramChannel { + let selfController = strongSelf.controller + let inviteDisposable = strongSelf.inviteDisposable + var inviteSignal = strongSelf.context.peerChannelMemberCategoriesContextsManager.addMembers(account: strongSelf.context.account, peerId: groupPeer.id, memberIds: [peer.id]) + var cancelImpl: (() -> Void)? + let progressSignal = Signal { [weak selfController] subscriber in + let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: { + cancelImpl?() + })) + selfController?.present(controller, in: .window(.root)) + return ActionDisposable { [weak controller] in + Queue.mainQueue().async() { + controller?.dismiss() + } } } - } - |> runOn(Queue.mainQueue()) - |> delay(0.15, queue: Queue.mainQueue()) - let progressDisposable = progressSignal.start() - - inviteSignal = inviteSignal - |> afterDisposed { - Queue.mainQueue().async { - progressDisposable.dispose() - } - } - cancelImpl = { - inviteDisposable.set(nil) - } - - inviteDisposable.set((inviteSignal |> deliverOnMainQueue).start(error: { error in - dismissController?() - guard let strongSelf = self else { - return - } - let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } + |> runOn(Queue.mainQueue()) + |> delay(0.15, queue: Queue.mainQueue()) + let progressDisposable = progressSignal.start() - let text: String - switch error { - case .limitExceeded: - text = presentationData.strings.Channel_ErrorAddTooMuch - case .tooMuchJoined: - text = presentationData.strings.Invite_ChannelsTooMuch - case .generic: - text = presentationData.strings.Login_UnknownError - case .restricted: - text = presentationData.strings.Channel_ErrorAddBlocked - case .notMutualContact: - text = presentationData.strings.GroupInfo_AddUserLeftError - case .botDoesntSupportGroups: - text = presentationData.strings.Channel_BotDoesntSupportGroups - case .tooMuchBots: - text = presentationData.strings.Channel_TooMuchBots - case .bot: - text = presentationData.strings.Login_UnknownError + inviteSignal = inviteSignal + |> afterDisposed { + Queue.mainQueue().async { + progressDisposable.dispose() + } } - strongSelf.controller?.present(textAlertController(context: strongSelf.context, forceTheme: strongSelf.darkTheme, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) - }, completed: { - guard let strongSelf = self else { + cancelImpl = { + inviteDisposable.set(nil) + } + + inviteDisposable.set((inviteSignal |> deliverOnMainQueue).start(error: { error in dismissController?() - return + guard let strongSelf = self else { + return + } + let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } + + let text: String + switch error { + case .limitExceeded: + text = presentationData.strings.Channel_ErrorAddTooMuch + case .tooMuchJoined: + text = presentationData.strings.Invite_ChannelsTooMuch + case .generic: + text = presentationData.strings.Login_UnknownError + case .restricted: + text = presentationData.strings.Channel_ErrorAddBlocked + case .notMutualContact: + text = presentationData.strings.GroupInfo_AddUserLeftError + case .botDoesntSupportGroups: + text = presentationData.strings.Channel_BotDoesntSupportGroups + case .tooMuchBots: + text = presentationData.strings.Channel_TooMuchBots + case .bot: + text = presentationData.strings.Login_UnknownError + } + strongSelf.controller?.present(textAlertController(context: strongSelf.context, forceTheme: strongSelf.darkTheme, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }, completed: { + guard let strongSelf = self else { + dismissController?() + return + } + dismissController?() + + if strongSelf.call.invitePeer(peer.id) { + strongSelf.controller?.present(UndoOverlayController(presentationData: strongSelf.presentationData, content: .invitedToVoiceChat(context: strongSelf.context, peer: peer, text: strongSelf.presentationData.strings.VoiceChat_InvitedPeerText(peer.displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder)).0), elevatedLayout: false, action: { _ in return false }), in: .current) + } + })) + } else if let groupPeer = groupPeer as? TelegramGroup { + let selfController = strongSelf.controller + let inviteDisposable = strongSelf.inviteDisposable + var inviteSignal = addGroupMember(account: strongSelf.context.account, peerId: groupPeer.id, memberId: peer.id) + var cancelImpl: (() -> Void)? + let progressSignal = Signal { [weak selfController] subscriber in + let controller = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: { + cancelImpl?() + })) + selfController?.present(controller, in: .window(.root)) + return ActionDisposable { [weak controller] in + Queue.mainQueue().async() { + controller?.dismiss() + } + } } - dismissController?() + |> runOn(Queue.mainQueue()) + |> delay(0.15, queue: Queue.mainQueue()) + let progressDisposable = progressSignal.start() - if strongSelf.call.invitePeer(peer.id) { - strongSelf.controller?.present(UndoOverlayController(presentationData: strongSelf.presentationData, content: .invitedToVoiceChat(context: strongSelf.context, peer: peer, text: strongSelf.presentationData.strings.VoiceChat_InvitedPeerText(peer.displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder)).0), elevatedLayout: false, action: { _ in return false }), in: .current) + inviteSignal = inviteSignal + |> afterDisposed { + Queue.mainQueue().async { + progressDisposable.dispose() + } } - })) + cancelImpl = { + inviteDisposable.set(nil) + } + + inviteDisposable.set((inviteSignal |> deliverOnMainQueue).start(error: { error in + dismissController?() + guard let strongSelf = self else { + return + } + let context = strongSelf.context + let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } + + switch error { + case .privacy: + let _ = (strongSelf.context.account.postbox.loadedPeerWithId(peer.id) + |> deliverOnMainQueue).start(next: { peer in + self?.controller?.present(textAlertController(context: context, title: nil, text: presentationData.strings.Privacy_GroupsAndChannels_InviteToGroupError(peer.compactDisplayTitle, peer.compactDisplayTitle).0, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }) + case .notMutualContact: + let _ = (strongSelf.context.account.postbox.loadedPeerWithId(peer.id) + |> deliverOnMainQueue).start(next: { peer in + self?.controller?.present(textAlertController(context: context, title: nil, text: presentationData.strings.GroupInfo_AddUserLeftError, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }) + case .tooManyChannels: + let _ = (strongSelf.context.account.postbox.loadedPeerWithId(peer.id) + |> deliverOnMainQueue).start(next: { peer in + self?.controller?.present(textAlertController(context: context, title: nil, text: presentationData.strings.Invite_ChannelsTooMuch, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }) + case .groupFull, .generic: + strongSelf.controller?.present(textAlertController(context: strongSelf.context, forceTheme: strongSelf.darkTheme, title: nil, text: presentationData.strings.Login_UnknownError, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + } + }, completed: { + guard let strongSelf = self else { + dismissController?() + return + } + dismissController?() + + if strongSelf.call.invitePeer(peer.id) { + strongSelf.controller?.present(UndoOverlayController(presentationData: strongSelf.presentationData, content: .invitedToVoiceChat(context: strongSelf.context, peer: peer, text: strongSelf.presentationData.strings.VoiceChat_InvitedPeerText(peer.displayTitle(strings: strongSelf.presentationData.strings, displayOrder: strongSelf.presentationData.nameDisplayOrder)).0), elevatedLayout: false, action: { _ in return false }), in: .current) + } + })) + } })]), in: .window(.root)) } }) @@ -921,13 +997,24 @@ public final class VoiceChatController: ViewController { strongSelf.controller?.dataReady.set(true) } - if let peer = peerViewMainPeer(view), let channel = peer as? TelegramChannel { - if channel.hasPermission(.manageCalls) { - strongSelf.optionsButton.isUserInteractionEnabled = true - strongSelf.optionsButton.alpha = 1.0 - } else { - strongSelf.optionsButton.isUserInteractionEnabled = false - strongSelf.optionsButton.alpha = 0.0 + if let peer = peerViewMainPeer(view) { + if let channel = peer as? TelegramChannel { + if channel.hasPermission(.manageCalls) { + strongSelf.optionsButton.isUserInteractionEnabled = true + strongSelf.optionsButton.alpha = 1.0 + } else { + strongSelf.optionsButton.isUserInteractionEnabled = false + strongSelf.optionsButton.alpha = 0.0 + } + } else if let group = peer as? TelegramGroup { + switch group.role { + case .creator, .admin: + strongSelf.optionsButton.isUserInteractionEnabled = true + strongSelf.optionsButton.alpha = 1.0 + default: + strongSelf.optionsButton.isUserInteractionEnabled = false + strongSelf.optionsButton.alpha = 0.0 + } } } }) diff --git a/submodules/TgVoipWebrtc/tgcalls b/submodules/TgVoipWebrtc/tgcalls index 6ae73f4c38..0184a4bf26 160000 --- a/submodules/TgVoipWebrtc/tgcalls +++ b/submodules/TgVoipWebrtc/tgcalls @@ -1 +1 @@ -Subproject commit 6ae73f4c388854d86a0ce66bf243561a11d9e719 +Subproject commit 0184a4bf26ed749bf59543c70ff413d4f3579c2b From 85a74c2ff269982c236e49401b50d01eb47b4f40 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 14 Dec 2020 19:37:37 +0400 Subject: [PATCH 04/23] Voice Chat UI fixes --- .../Sources/ChatListController.swift | 1 + submodules/AudioBlob/Sources/BlobView.swift | 16 ++- .../Sources/ChatListController.swift | 17 +-- .../Navigation/NavigationController.swift | 8 +- .../Navigation/NavigationSplitContainer.swift | 2 +- .../Sources/PresentationGroupCall.swift | 2 +- .../Sources/VoiceChatController.swift | 75 ++++++++---- .../Sources/VoiceChatOverlayController.swift | 110 ++++++++++-------- .../Sources/VoiceChatParticipantItem.swift | 6 +- .../TelegramUI/Sources/ChatController.swift | 2 +- 10 files changed, 145 insertions(+), 94 deletions(-) diff --git a/submodules/AccountContext/Sources/ChatListController.swift b/submodules/AccountContext/Sources/ChatListController.swift index ec9fb811e8..45e83f463a 100644 --- a/submodules/AccountContext/Sources/ChatListController.swift +++ b/submodules/AccountContext/Sources/ChatListController.swift @@ -7,6 +7,7 @@ public protocol ChatListController: ViewController { var context: AccountContext { get } var lockViewFrame: CGRect? { get } + var isSearchActive: Bool { get } func activateSearch() func deactivateSearch(animated: Bool) func activateCompose() diff --git a/submodules/AudioBlob/Sources/BlobView.swift b/submodules/AudioBlob/Sources/BlobView.swift index a0ef246af7..dc7e9823c3 100644 --- a/submodules/AudioBlob/Sources/BlobView.swift +++ b/submodules/AudioBlob/Sources/BlobView.swift @@ -84,9 +84,13 @@ public final class VoiceBlobView: UIView, TGModernConversationInputMicButtonDeco } public func setColor(_ color: UIColor) { - smallBlob.setColor(color) - mediumBlob.setColor(color.withAlphaComponent(0.3)) - bigBlob.setColor(color.withAlphaComponent(0.15)) + self.setColor(color, animated: false) + } + + public func setColor(_ color: UIColor, animated: Bool) { + smallBlob.setColor(color, animated: animated) + mediumBlob.setColor(color.withAlphaComponent(0.3), animated: animated) + bigBlob.setColor(color.withAlphaComponent(0.15), animated: animated) } public func updateLevel(_ level: CGFloat) { @@ -250,8 +254,12 @@ final class BlobView: UIView { fatalError("init(coder:) has not been implemented") } - func setColor(_ color: UIColor) { + func setColor(_ color: UIColor, animated: Bool) { + let previousColor = shapeLayer.fillColor shapeLayer.fillColor = color.cgColor + if animated, let previousColor = previousColor { + shapeLayer.animate(from: previousColor, to: color.cgColor, keyPath: "fillColor", timingFunction: CAMediaTimingFunctionName.linear.rawValue, duration: 0.3) + } } func updateSpeedLevel(to newSpeedLevel: CGFloat) { diff --git a/submodules/ChatListUI/Sources/ChatListController.swift b/submodules/ChatListUI/Sources/ChatListController.swift index 2858421307..6cb637ce68 100644 --- a/submodules/ChatListUI/Sources/ChatListController.swift +++ b/submodules/ChatListUI/Sources/ChatListController.swift @@ -1678,6 +1678,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController self.present(actionSheet, in: .window(.root)) } + public private(set) var isSearchActive: Bool = false public func activateSearch() { if self.displayNavigationBar { let _ = (combineLatest(self.chatListDisplayNode.containerNode.currentItemNode.contentsReady |> take(1), self.context.account.postbox.tailChatListView(groupId: .root, count: 16, summaryComponents: ChatListEntrySummaryComponents(tagSummary: nil, actionsSummary: nil)) |> take(1)) @@ -1729,18 +1730,14 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController (strongSelf.parent as? TabBarController)?.updateIsTabBarHidden(true, transition: .animated(duration: 0.4, curve: .spring)) }) + self.isSearchActive = true if let navigationController = self.navigationController as? NavigationController { - var voiceChatOverlayController: VoiceChatOverlayController? for controller in navigationController.globalOverlayControllers { if let controller = controller as? VoiceChatOverlayController { - voiceChatOverlayController = controller + controller.updateVisibility() break } } - - if let controller = voiceChatOverlayController { - controller.update(hidden: true, slide: true, animated: true) - } } } } @@ -1785,18 +1782,14 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController } } + self.isSearchActive = false if let navigationController = self.navigationController as? NavigationController { - var voiceChatOverlayController: VoiceChatOverlayController? for controller in navigationController.globalOverlayControllers { if let controller = controller as? VoiceChatOverlayController { - voiceChatOverlayController = controller + controller.updateVisibility() break } } - - if let controller = voiceChatOverlayController { - controller.update(hidden: false, slide: true, animated: true) - } } } } diff --git a/submodules/Display/Source/Navigation/NavigationController.swift b/submodules/Display/Source/Navigation/NavigationController.swift index f45511d2db..3382813388 100644 --- a/submodules/Display/Source/Navigation/NavigationController.swift +++ b/submodules/Display/Source/Navigation/NavigationController.swift @@ -611,10 +611,7 @@ open class NavigationController: UINavigationController, ContainableController, } } } - - layout.additionalInsets.left = max(layout.intrinsicInsets.left, additionalSideInsets.left) - layout.additionalInsets.right = max(layout.intrinsicInsets.right, additionalSideInsets.right) - + if self.currentTopVisibleOverlayContainerStatusBar !== topVisibleOverlayContainerWithStatusBar { animateStatusBarStyleTransition = true self.currentTopVisibleOverlayContainerStatusBar = topVisibleOverlayContainerWithStatusBar @@ -722,6 +719,9 @@ open class NavigationController: UINavigationController, ContainableController, } } + layout.additionalInsets.left = max(layout.intrinsicInsets.left, additionalSideInsets.left) + layout.additionalInsets.right = max(layout.intrinsicInsets.right, additionalSideInsets.right) + switch navigationLayout.root { case let .flat(controllers): if let rootContainer = self.rootContainer { diff --git a/submodules/Display/Source/Navigation/NavigationSplitContainer.swift b/submodules/Display/Source/Navigation/NavigationSplitContainer.swift index 5dfa5f70ff..8a64a20b5b 100644 --- a/submodules/Display/Source/Navigation/NavigationSplitContainer.swift +++ b/submodules/Display/Source/Navigation/NavigationSplitContainer.swift @@ -94,7 +94,7 @@ final class NavigationSplitContainer: ASDisplayNode { transition.updateFrame(node: self.detailContainer, frame: CGRect(origin: CGPoint(x: masterWidth, y: 0.0), size: CGSize(width: detailWidth, height: layout.size.height))) transition.updateFrame(node: self.separator, frame: CGRect(origin: CGPoint(x: masterWidth, y: 0.0), size: CGSize(width: UIScreenPixel, height: layout.size.height))) - self.masterContainer.update(layout: ContainerViewLayout(size: CGSize(width: masterWidth, height: layout.size.height), metrics: layout.metrics, deviceMetrics: layout.deviceMetrics, intrinsicInsets: layout.intrinsicInsets, safeInsets: layout.safeInsets, additionalInsets: layout.additionalInsets, statusBarHeight: layout.statusBarHeight, inputHeight: layout.inputHeight, inputHeightIsInteractivellyChanging: layout.inputHeightIsInteractivellyChanging, inVoiceOver: layout.inVoiceOver), canBeClosed: false, controllers: masterControllers, transition: transition) + self.masterContainer.update(layout: ContainerViewLayout(size: CGSize(width: masterWidth, height: layout.size.height), metrics: layout.metrics, deviceMetrics: layout.deviceMetrics, intrinsicInsets: layout.intrinsicInsets, safeInsets: layout.safeInsets, additionalInsets: UIEdgeInsets(), statusBarHeight: layout.statusBarHeight, inputHeight: layout.inputHeight, inputHeightIsInteractivellyChanging: layout.inputHeightIsInteractivellyChanging, inVoiceOver: layout.inVoiceOver), canBeClosed: false, controllers: masterControllers, transition: transition) self.detailContainer.update(layout: ContainerViewLayout(size: CGSize(width: detailWidth, height: layout.size.height), metrics: layout.metrics, deviceMetrics: layout.deviceMetrics, intrinsicInsets: layout.intrinsicInsets, safeInsets: layout.safeInsets, additionalInsets: layout.additionalInsets, statusBarHeight: layout.statusBarHeight, inputHeight: layout.inputHeight, inputHeightIsInteractivellyChanging: layout.inputHeightIsInteractivellyChanging, inVoiceOver: layout.inVoiceOver), canBeClosed: true, controllers: detailControllers, transition: transition) var controllersUpdated = false diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index 2f65717ca6..7f70f9bd5d 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -278,7 +278,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { var audioLevels: [(PeerId, Float, Bool)] = [] for (peerId, level, hasVoice) in levels { - if level > 0.1 { + if level > 0.001 { audioLevels.append((peerId, level, hasVoice)) } } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index 2dc3efbc70..18ecf954c2 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -1291,7 +1291,13 @@ public final class VoiceChatController: ViewController { let listTopInset = layoutTopInset + topPanelHeight let bottomAreaHeight: CGFloat = 268.0 let bottomPanelHeight = bottomAreaHeight + layout.intrinsicInsets.bottom - let listSize = CGSize(width: layout.size.width, height: layout.size.height - listTopInset - bottomPanelHeight) + + var size = layout.size + if case .regular = layout.metrics.widthClass { + size.width = floor(min(size.width, size.height) * 0.5) + } + + let listSize = CGSize(width: size.width, height: layout.size.height - listTopInset - bottomPanelHeight) let topInset: CGFloat if let (panInitialTopInset, panOffset) = self.panGestureArguments { if self.isExpanded { @@ -1312,12 +1318,12 @@ public final class VoiceChatController: ViewController { let rawPanelOffset = offset + listTopInset - topPanelHeight let panelOffset = max(layoutTopInset, rawPanelOffset) - let topPanelFrame = CGRect(origin: CGPoint(x: 0.0, y: panelOffset), size: CGSize(width: layout.size.width, height: topPanelHeight)) + let topPanelFrame = CGRect(origin: CGPoint(x: 0.0, y: panelOffset), size: CGSize(width: size.width, height: topPanelHeight)) - let backgroundFrame = CGRect(origin: CGPoint(x: 0.0, y: topPanelFrame.maxY), size: CGSize(width: layout.size.width, height: layout.size.height)) + let backgroundFrame = CGRect(origin: CGPoint(x: 0.0, y: topPanelFrame.maxY), size: CGSize(width: size.width, height: layout.size.height)) let sideInset: CGFloat = 16.0 let leftBorderFrame = CGRect(origin: CGPoint(x: 0.0, y: topPanelFrame.maxY - 16.0), size: CGSize(width: sideInset, height: layout.size.height)) - let rightBorderFrame = CGRect(origin: CGPoint(x: layout.size.width - sideInset, y: topPanelFrame.maxY - 16.0), size: CGSize(width: sideInset, height: layout.size.height)) + let rightBorderFrame = CGRect(origin: CGPoint(x: size.width - sideInset, y: topPanelFrame.maxY - 16.0), size: CGSize(width: sideInset, height: layout.size.height)) let previousTopPanelFrame = self.topPanelNode.frame let previousBackgroundFrame = self.backgroundNode.frame @@ -1343,7 +1349,7 @@ public final class VoiceChatController: ViewController { } else { completion?() } - self.topPanelBackgroundNode.frame = CGRect(x: 0.0, y: topPanelHeight - 24.0, width: layout.size.width, height: 24.0) + self.topPanelBackgroundNode.frame = CGRect(x: 0.0, y: topPanelHeight - 24.0, width: size.width, height: 24.0) var bottomEdge: CGFloat = 0.0 self.listNode.forEachItemNode { itemNode in @@ -1364,11 +1370,11 @@ public final class VoiceChatController: ViewController { bottomOffset = bottomEdge - listMaxY } - let bottomCornersFrame = CGRect(origin: CGPoint(x: sideInset, y: -50.0 + bottomOffset), size: CGSize(width: layout.size.width - sideInset * 2.0, height: 50.0)) + let bottomCornersFrame = CGRect(origin: CGPoint(x: sideInset, y: -50.0 + bottomOffset), size: CGSize(width: size.width - sideInset * 2.0, height: 50.0)) let previousBottomCornersFrame = self.bottomCornersNode.frame if !bottomCornersFrame.equalTo(previousBottomCornersFrame) { self.bottomCornersNode.frame = bottomCornersFrame - self.bottomPanelBackgroundNode.frame = CGRect(x: 0.0, y: bottomOffset, width: layout.size.width, height: 2000.0) + self.bottomPanelBackgroundNode.frame = CGRect(x: 0.0, y: bottomOffset, width: size.width, height: 2000.0) let positionDelta = CGPoint(x: 0.0, y: previousBottomCornersFrame.minY - bottomCornersFrame.minY) transition.animatePositionAdditive(node: self.bottomCornersNode, offset: positionDelta) @@ -1385,6 +1391,11 @@ public final class VoiceChatController: ViewController { self.controller?.statusBar.statusBarStyle = isFullscreen ? .White : .Ignore + var size = layout.size + if case .regular = layout.metrics.widthClass { + size.width = floor(min(size.width, size.height) * 0.5) + } + let topPanelHeight: CGFloat = 63.0 let topEdgeFrame: CGRect if isFullscreen { @@ -1394,9 +1405,9 @@ public final class VoiceChatController: ViewController { } else { offset = 44.0 } - topEdgeFrame = CGRect(x: 0.0, y: -offset, width: layout.size.width, height: topPanelHeight + offset) + topEdgeFrame = CGRect(x: 0.0, y: -offset, width: size.width, height: topPanelHeight + offset) } else { - topEdgeFrame = CGRect(x: 0.0, y: 0.0, width: layout.size.width, height: topPanelHeight) + topEdgeFrame = CGRect(x: 0.0, y: 0.0, width: size.width, height: topPanelHeight) } let transition: ContainedViewLayoutTransition = .animated(duration: 0.3, curve: .linear) @@ -1451,7 +1462,12 @@ public final class VoiceChatController: ViewController { } } - self.titleNode.update(size: CGSize(width: layout.size.width, height: 44.0), title: title, subtitle: self.currentSubtitle, transition: transition) + var size = layout.size + if case .regular = layout.metrics.widthClass { + size.width = floor(min(size.width, size.height) * 0.5) + } + + self.titleNode.update(size: CGSize(width: size.width, height: 44.0), title: title, subtitle: self.currentSubtitle, transition: transition) } private func updateButtons(transition: ContainedViewLayoutTransition) { @@ -1522,14 +1538,19 @@ public final class VoiceChatController: ViewController { let isFirstTime = self.validLayout == nil self.validLayout = (layout, navigationHeight) + var size = layout.size + if case .regular = layout.metrics.widthClass { + size.width = floor(min(size.width, size.height) * 0.5) + } + self.updateTitle(transition: transition) - transition.updateFrame(node: self.titleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: 10.0), size: CGSize(width: layout.size.width, height: 44.0))) + transition.updateFrame(node: self.titleNode, frame: CGRect(origin: CGPoint(x: 0.0, y: 10.0), size: CGSize(width: size.width, height: 44.0))) transition.updateFrame(node: self.optionsButton, frame: CGRect(origin: CGPoint(x: 20.0, y: 18.0), size: CGSize(width: 28.0, height: 28.0))) - transition.updateFrame(node: self.closeButton, frame: CGRect(origin: CGPoint(x: layout.size.width - 20.0 - 28.0, y: 18.0), size: CGSize(width: 28.0, height: 28.0))) + transition.updateFrame(node: self.closeButton, frame: CGRect(origin: CGPoint(x: size.width - 20.0 - 28.0, y: 18.0), size: CGSize(width: 28.0, height: 28.0))) transition.updateFrame(node: self.dimNode, frame: CGRect(origin: CGPoint(), size: layout.size)) - transition.updateFrame(node: self.contentContainer, frame: CGRect(origin: CGPoint(), size: layout.size)) + transition.updateFrame(node: self.contentContainer, frame: CGRect(origin: CGPoint(x: floorToScreenPixels((layout.size.width - size.width) / 2.0), y: 0.0), size: size)) let bottomAreaHeight: CGFloat = 268.0 let layoutTopInset: CGFloat = max(layout.statusBarHeight ?? 0.0, layout.safeInsets.top) @@ -1550,16 +1571,16 @@ public final class VoiceChatController: ViewController { } else { offset = 44.0 } - topEdgeFrame = CGRect(x: 0.0, y: -offset, width: layout.size.width, height: topPanelHeight + offset) + topEdgeFrame = CGRect(x: 0.0, y: -offset, width: size.width, height: topPanelHeight + offset) } else { - topEdgeFrame = CGRect(x: 0.0, y: 0.0, width: layout.size.width, height: topPanelHeight) + topEdgeFrame = CGRect(x: 0.0, y: 0.0, width: size.width, height: topPanelHeight) } transition.updateFrame(node: self.topPanelEdgeNode, frame: topEdgeFrame) } let bottomPanelHeight = bottomAreaHeight + layout.intrinsicInsets.bottom let listTopInset = layoutTopInset + topPanelHeight - let listSize = CGSize(width: layout.size.width, height: layout.size.height - listTopInset - bottomPanelHeight) + let listSize = CGSize(width: size.width, height: layout.size.height - listTopInset - bottomPanelHeight) let topInset: CGFloat if let (panInitialTopInset, panOffset) = self.panGestureArguments { @@ -1583,15 +1604,15 @@ public final class VoiceChatController: ViewController { self.listNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: nil, updateSizeAndInsets: updateSizeAndInsets, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in }) - transition.updateFrame(node: self.topCornersNode, frame: CGRect(origin: CGPoint(x: sideInset, y: 63.0), size: CGSize(width: layout.size.width - sideInset * 2.0, height: 50.0))) + transition.updateFrame(node: self.topCornersNode, frame: CGRect(origin: CGPoint(x: sideInset, y: 63.0), size: CGSize(width: size.width - sideInset * 2.0, height: 50.0))) - let bottomPanelFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - bottomPanelHeight), size: CGSize(width: layout.size.width, height: bottomPanelHeight)) + let bottomPanelFrame = CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - bottomPanelHeight), size: CGSize(width: size.width, height: bottomPanelHeight)) transition.updateFrame(node: self.bottomPanelNode, frame: bottomPanelFrame) let sideButtonSize = CGSize(width: 60.0, height: 60.0) let centralButtonSize = CGSize(width: 440.0, height: 440.0) - let actionButtonFrame = CGRect(origin: CGPoint(x: floorToScreenPixels((layout.size.width - centralButtonSize.width) / 2.0), y: floorToScreenPixels((bottomAreaHeight - centralButtonSize.height) / 2.0)), size: centralButtonSize) + let actionButtonFrame = CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - centralButtonSize.width) / 2.0), y: floorToScreenPixels((bottomAreaHeight - centralButtonSize.height) / 2.0)), size: centralButtonSize) let actionButtonState: VoiceChatActionButton.State let actionButtonTitle: String @@ -1632,7 +1653,7 @@ public final class VoiceChatController: ViewController { } self.actionButton.isDisabled = !actionButtonEnabled - self.actionButton.update(size: centralButtonSize, buttonSize: CGSize(width: 144.0, height: 144.0), state: actionButtonState, title: actionButtonTitle, subtitle: actionButtonSubtitle, dark: self.isFullscreen, small: layout.size.width < 330.0, animated: true) + self.actionButton.update(size: centralButtonSize, buttonSize: CGSize(width: 144.0, height: 144.0), state: actionButtonState, title: actionButtonTitle, subtitle: actionButtonSubtitle, dark: self.isFullscreen, small: size.width < 330.0, animated: true) if self.actionButton.supernode === self.bottomPanelNode { transition.updateFrame(node: self.actionButton, frame: actionButtonFrame) @@ -1641,12 +1662,12 @@ public final class VoiceChatController: ViewController { self.updateButtons(transition: transition) let sideButtonMinimalInset: CGFloat = 16.0 - let sideButtonOffset = min(36.0, floor((((layout.size.width - 144.0) / 2.0) - sideButtonSize.width) / 2.0)) - let sideButtonOrigin = max(sideButtonMinimalInset, floor((layout.size.width - 144.0) / 2.0) - sideButtonOffset - sideButtonSize.width) + let sideButtonOffset = min(36.0, floor((((size.width - 144.0) / 2.0) - sideButtonSize.width) / 2.0)) + let sideButtonOrigin = max(sideButtonMinimalInset, floor((size.width - 144.0) / 2.0) - sideButtonOffset - sideButtonSize.width) if self.audioOutputNode.supernode === self.bottomPanelNode { transition.updateFrame(node: self.audioOutputNode, frame: CGRect(origin: CGPoint(x: sideButtonOrigin, y: floor((bottomAreaHeight - sideButtonSize.height) / 2.0)), size: sideButtonSize)) - transition.updateFrame(node: self.leaveNode, frame: CGRect(origin: CGPoint(x: layout.size.width - sideButtonOrigin - sideButtonSize.width, y: floor((bottomAreaHeight - sideButtonSize.height) / 2.0)), size: sideButtonSize)) + transition.updateFrame(node: self.leaveNode, frame: CGRect(origin: CGPoint(x: size.width - sideButtonOrigin - sideButtonSize.width, y: floor((bottomAreaHeight - sideButtonSize.height) / 2.0)), size: sideButtonSize)) } if isFirstTime { while !self.enqueuedTransitions.isEmpty { @@ -1757,9 +1778,14 @@ public final class VoiceChatController: ViewController { insets.left = layout.safeInsets.left + sideInset insets.right = layout.safeInsets.right + sideInset + var size = layout.size + if case .regular = layout.metrics.widthClass { + size.width = floor(min(size.width, size.height) * 0.5) + } + let bottomPanelHeight = bottomAreaHeight + layout.intrinsicInsets.bottom let listTopInset = layoutTopInset + 63.0 - let listSize = CGSize(width: layout.size.width, height: layout.size.height - listTopInset - bottomPanelHeight) + let listSize = CGSize(width: size.width, height: layout.size.height - listTopInset - bottomPanelHeight) self.topInset = max(0.0, max(listSize.height - itemsHeight, listSize.height - 46.0 - floor(56.0 * 3.5))) @@ -2224,6 +2250,7 @@ public final class VoiceChatController: ViewController { if count == 2 || navigationController.viewControllers[count - 2] is ChatController { if case .active(.cantSpeak) = self.controllerNode.actionButton.stateValue { } else if let chatController = navigationController.viewControllers[count - 2] as? ChatController, chatController.isSendButtonVisible { + } else if let tabBarController = navigationController.viewControllers[count - 2] as? TabBarController, let chatListController = tabBarController.controllers[tabBarController.selectedIndex] as? ChatListController, chatListController.isSearchActive { } else { self.detachActionButton() } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift index 0be01d7c31..7f50ce99a3 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift @@ -292,11 +292,15 @@ public final class VoiceChatOverlayController: ViewController { } private var disposable: Disposable? - + + private weak var parentNavigationController: NavigationController? + private var currentParams: ([UIViewController], [UIViewController], VoiceChatActionButton.State)? + init(actionButton: VoiceChatActionButton, audioOutputNode: CallControllerButtonItemNode, leaveNode: CallControllerButtonItemNode, navigationController: NavigationController?) { self.actionButton = actionButton self.audioOutputNode = audioOutputNode self.leaveNode = leaveNode + self.parentNavigationController = navigationController super.init(navigationBarPresentationData: nil) @@ -314,51 +318,8 @@ public final class VoiceChatOverlayController: ViewController { self.disposable = (combineLatest(queue: Queue.mainQueue(), controllers, overlayControllers, actionButton.state)).start(next: { [weak self] controllers, overlayControllers, state in if let strongSelf = self { - var hasVoiceChatController = false - var overlayControllersCount = 0 - for controller in controllers { - if controller is VoiceChatController { - hasVoiceChatController = true - } - } - for controller in overlayControllers { - if controller is TooltipController || controller is TooltipScreen || controller is AlertController { - } else { - overlayControllersCount += 1 - } - } - - var slide = true - var hidden = true - var animated = true - if controllers.count == 1 || controllers.last is ChatController { - if let chatController = controllers.last as? ChatController, chatController.isSendButtonVisible { - slide = false - animated = false - } else { - hidden = false - } - } - if overlayControllersCount > 0 { - hidden = true - } - - if case .active(.cantSpeak) = state { - hidden = true - } - if hasVoiceChatController { - hidden = false - animated = false - } - - strongSelf.controllerNode.update(hidden: hidden, slide: slide, animated: animated) - - let previousInsets = strongSelf.additionalSideInsets - strongSelf.additionalSideInsets = hidden ? UIEdgeInsets() : UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 75.0) - - if previousInsets != strongSelf.additionalSideInsets { - navigationController.requestLayout(transition: .animated(duration: 0.3, curve: .easeInOut)) - } + strongSelf.currentParams = (controllers, overlayControllers, state) + strongSelf.updateVisibility() } }) } @@ -387,7 +348,64 @@ public final class VoiceChatOverlayController: ViewController { self.controllerNode.animateOut(reclaim: reclaim, completion: completion) } + public func updateVisibility() { + guard let (controllers, overlayControllers, state) = self.currentParams else { + return + } + var hasVoiceChatController = false + var overlayControllersCount = 0 + for controller in controllers { + if controller is VoiceChatController { + hasVoiceChatController = true + } + } + for controller in overlayControllers { + if controller is TooltipController || controller is TooltipScreen || controller is AlertController { + } else { + overlayControllersCount += 1 + } + } + + var slide = true + var hidden = true + var animated = true + if controllers.count == 1 || controllers.last is ChatController { + if let chatController = controllers.last as? ChatController, chatController.isSendButtonVisible { + slide = false + } else { + hidden = false + } + } + if let tabBarController = controllers.last as? TabBarController { + if let chatListController = tabBarController.controllers[tabBarController.selectedIndex] as? ChatListController, chatListController.isSearchActive { + hidden = true + } + } + if overlayControllersCount > 0 { + hidden = true + } + + if case .active(.cantSpeak) = state { + hidden = true + } + if hasVoiceChatController { + hidden = false + animated = false + } + + self.controllerNode.update(hidden: hidden, slide: slide, animated: animated) + + let previousInsets = self.additionalSideInsets + self.additionalSideInsets = hidden ? UIEdgeInsets() : UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 75.0) + + if previousInsets != self.additionalSideInsets { + self.parentNavigationController?.requestLayout(transition: .animated(duration: 0.3, curve: .easeInOut)) + } + } + + private let hiddenPromise = ValuePromise() public func update(hidden: Bool, slide: Bool, animated: Bool) { + self.hiddenPromise.set(hidden) self.controllerNode.update(hidden: hidden, slide: slide, animated: animated) } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift index e5e18e3c65..0a494adf50 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift @@ -334,6 +334,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { titleAttributedString = NSAttributedString(string: channel.title, font: currentBoldFont, textColor: titleColor) } + var wavesColor = UIColor(rgb: 0x34c759) switch item.text { case .presence: if let user = item.peer as? TelegramUser, let botInfo = user.botInfo { @@ -358,6 +359,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { textColorValue = item.presentationData.theme.list.itemSecondaryTextColor case .accent: textColorValue = item.presentationData.theme.list.itemAccentColor + wavesColor = textColorValue case .constructive: textColorValue = UIColor(rgb: 0x34c759) } @@ -561,7 +563,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { playbackMaskLayer.path = maskPath.cgPath audioLevelView.layer.mask = playbackMaskLayer - audioLevelView.setColor(UIColor(rgb: 0x34c759)) + audioLevelView.setColor(wavesColor) strongSelf.audioLevelView = audioLevelView strongSelf.offsetContainerNode.view.insertSubview(audioLevelView, at: 0) } @@ -574,10 +576,12 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { if value > 0.0 { audioLevelView.startAnimating() avatarScale = 1.03 + level * 0.13 + audioLevelView.setColor(wavesColor, animated: true) } else { audioLevelView.stopAnimating(duration: 0.5) avatarScale = 1.0 } + print(value) let transition: ContainedViewLayoutTransition = .animated(duration: 0.15, curve: .easeInOut) transition.updateTransformScale(node: strongSelf.avatarNode, scale: avatarScale, beginWithCurrentState: true) diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index cb7c5a5589..12ba8ff5fc 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -7083,7 +7083,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } if let controller = voiceChatOverlayController { - controller.update(hidden: self.isSendButtonVisible, slide: false, animated: true) + controller.updateVisibility() } } } From 9441f3999d35f4bddfbb56b88bf1bfc95f48e3ed Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 14 Dec 2020 20:10:32 +0400 Subject: [PATCH 05/23] Voice Chat UI fixes --- .../Telegram-iOS/en.lproj/Localizable.strings | 2 + .../Sources/PresentationStrings.swift | 2791 +++++++++-------- .../Resources/PresentationStrings.mapping | Bin 162111 -> 162169 bytes .../TelegramUI/Sources/ChatController.swift | 23 + .../Sources/ChatTextInputPanelNode.swift | 6 +- 5 files changed, 1425 insertions(+), 1397 deletions(-) diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index 1dab6a9cb3..6af318506b 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -6021,3 +6021,5 @@ Sorry for the inconvenience."; "Channel.AdminLog.MutedNewMembers" = "%1$@ muted new members"; "Group.GroupMembersHeader" = "GROUP MEMBERS"; + +"Conversation.VoiceChatMediaRecordingRestricted" = "You can't record voice and video messages during a voice chat."; diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 0569eb304b..654e9521d4 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -4321,1372 +4321,1378 @@ public final class PresentationStrings: Equatable { } public var Conversation_LinkDialogSave: String { return self._s[3854]! } public var EnterPasscode_TouchId: String { return self._s[3855]! } - public var Stats_MessageOverview: String { return self._s[3856]! } - public var Privacy_Calls_P2PAlways: String { return self._s[3858]! } - public var Message_Sticker: String { return self._s[3859]! } - public var Conversation_Mute: String { return self._s[3861]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[3862]! } - public var ContactInfo_Title: String { return self._s[3863]! } + public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[3856]! } + public var Stats_MessageOverview: String { return self._s[3857]! } + public var Privacy_Calls_P2PAlways: String { return self._s[3859]! } + public var Message_Sticker: String { return self._s[3860]! } + public var Conversation_Mute: String { return self._s[3862]! } + public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[3863]! } + public var ContactInfo_Title: String { return self._s[3864]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3864]!, self._r[3864]!, [_1]) + return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[3865]! } - public var AuthSessions_LogOut: String { return self._s[3866]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3867]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3868]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[3870]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3871]! } - public var CreatePoll_Title: String { return self._s[3872]! } - public var EditTheme_EditTitle: String { return self._s[3873]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[3874]! } - public var TwoStepAuth_SetPassword: String { return self._s[3875]! } - public var Wallet_Words_Done: String { return self._s[3876]! } + public var Channel_Setup_TypeHeader: String { return self._s[3866]! } + public var AuthSessions_LogOut: String { return self._s[3867]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3868]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3869]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[3871]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3872]! } + public var CreatePoll_Title: String { return self._s[3873]! } + public var EditTheme_EditTitle: String { return self._s[3874]! } + public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[3875]! } + public var TwoStepAuth_SetPassword: String { return self._s[3876]! } + public var Wallet_Words_Done: String { return self._s[3877]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3877]!, self._r[3877]!, [_0]) + return formatWithArgumentRanges(self._s[3878]!, self._r[3878]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[3878]! } - public var AuthSessions_Sessions: String { return self._s[3879]! } - public var Group_EditAdmin_RankTitle: String { return self._s[3880]! } + public var BlockedUsers_Info: String { return self._s[3879]! } + public var AuthSessions_Sessions: String { return self._s[3880]! } + public var Group_EditAdmin_RankTitle: String { return self._s[3881]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3881]!, self._r[3881]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3882]!, self._r[3882]!, [_1, _2, _3]) } - public var Common_ActionNotAllowedError: String { return self._s[3882]! } - public var WebPreview_GettingLinkInfo: String { return self._s[3883]! } - public var Appearance_AppIconFilledX: String { return self._s[3884]! } - public var Wallet_TransactionInfo_StorageFeeInfo: String { return self._s[3885]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[3886]! } - public var FeaturedStickers_OtherSection: String { return self._s[3887]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[3888]! } - public var Profile_Username: String { return self._s[3889]! } - public var Appearance_RemoveTheme: String { return self._s[3890]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[3891]! } - public var Message_PinnedStickerMessage: String { return self._s[3892]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3893]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[3894]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3895]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[3896]! } - public var TwoStepAuth_Title: String { return self._s[3897]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3898]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[3899]! } - public var ChatListFolder_CategoryGroups: String { return self._s[3901]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[3902]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[3903]! } - public var Month_GenJuly: String { return self._s[3904]! } - public var Passport_Identity_Gender: String { return self._s[3905]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3906]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[3907]! } + public var Common_ActionNotAllowedError: String { return self._s[3883]! } + public var WebPreview_GettingLinkInfo: String { return self._s[3884]! } + public var Appearance_AppIconFilledX: String { return self._s[3885]! } + public var Wallet_TransactionInfo_StorageFeeInfo: String { return self._s[3886]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[3887]! } + public var FeaturedStickers_OtherSection: String { return self._s[3888]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[3889]! } + public var Profile_Username: String { return self._s[3890]! } + public var Appearance_RemoveTheme: String { return self._s[3891]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[3892]! } + public var Message_PinnedStickerMessage: String { return self._s[3893]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3894]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[3895]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3896]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[3897]! } + public var TwoStepAuth_Title: String { return self._s[3898]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3899]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[3900]! } + public var ChatListFolder_CategoryGroups: String { return self._s[3902]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[3903]! } + public var Conversation_EditingPhotoPanelTitle: String { return self._s[3904]! } + public var Month_GenJuly: String { return self._s[3905]! } + public var Passport_Identity_Gender: String { return self._s[3906]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3907]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[3908]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3908]!, self._r[3908]!, [_0]) + return formatWithArgumentRanges(self._s[3909]!, self._r[3909]!, [_0]) } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3909]!, self._r[3909]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3910]!, self._r[3910]!, [_0, _1, _2]) } - public var Login_CodeSentSms: String { return self._s[3910]! } + public var Login_CodeSentSms: String { return self._s[3911]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3912]!, self._r[3912]!, [_0]) + return formatWithArgumentRanges(self._s[3913]!, self._r[3913]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[3913]! } - public var Channel_DiscussionGroup_Header: String { return self._s[3914]! } + public var Login_CallRequestState2: String { return self._s[3914]! } + public var Channel_DiscussionGroup_Header: String { return self._s[3915]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_0]) + return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_0]) } - public var Passport_Language_ms: String { return self._s[3916]! } - public var PeopleNearby_MakeInvisible: String { return self._s[3918]! } - public var ChatList_Search_FilterVoice: String { return self._s[3920]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3922]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[3923]! } + public var Passport_Language_ms: String { return self._s[3917]! } + public var PeopleNearby_MakeInvisible: String { return self._s[3919]! } + public var ChatList_Search_FilterVoice: String { return self._s[3921]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3923]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[3924]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3924]!, self._r[3924]!, [_0]) + return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_0]) } public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_1, _2, _3]) } - public var Wallet_Info_TransactionTo: String { return self._s[3926]! } + public var Wallet_Info_TransactionTo: String { return self._s[3927]! } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3927]!, self._r[3927]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3928]!, self._r[3928]!, [_1, _2]) } - public var Map_Locating: String { return self._s[3928]! } + public var Map_Locating: String { return self._s[3929]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3930]!, self._r[3930]!, [_0]) + return formatWithArgumentRanges(self._s[3931]!, self._r[3931]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[3932]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3933]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[3934]! } - public var Stickers_Installed: String { return self._s[3935]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[3936]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3937]! } - public var CallSettings_Never: String { return self._s[3939]! } - public var Wallet_AccessDenied_Camera: String { return self._s[3940]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[3941]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[3933]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3934]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[3935]! } + public var Stickers_Installed: String { return self._s[3936]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[3937]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3938]! } + public var CallSettings_Never: String { return self._s[3940]! } + public var Wallet_AccessDenied_Camera: String { return self._s[3941]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[3942]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3943]!, self._r[3943]!, [_0]) + return formatWithArgumentRanges(self._s[3944]!, self._r[3944]!, [_0]) } - public var Message_Game: String { return self._s[3944]! } - public var Call_Message: String { return self._s[3945]! } + public var Message_Game: String { return self._s[3945]! } + public var Call_Message: String { return self._s[3946]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3946]!, self._r[3946]!, [_1]) + return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[3947]! } - public var StickerPack_Send: String { return self._s[3948]! } - public var Share_AuthDescription: String { return self._s[3949]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[3950]! } - public var CallFeedback_WhatWentWrong: String { return self._s[3951]! } - public var Common_Create: String { return self._s[3954]! } - public var Passport_Language_hy: String { return self._s[3955]! } - public var CreatePoll_Explanation: String { return self._s[3956]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[3957]! } - public var Undo_ChatClearedForBothSides: String { return self._s[3958]! } - public var DialogList_NoMessagesTitle: String { return self._s[3959]! } - public var GroupInfo_Title: String { return self._s[3961]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[3962]! } - public var PhoneNumberHelp_Help: String { return self._s[3963]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[3964]! } - public var Settings_Logout: String { return self._s[3965]! } - public var Privacy_PaymentsTitle: String { return self._s[3966]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[3967]! } - public var Tour_Text6: String { return self._s[3968]! } - public var Channel_Username_Help: String { return self._s[3970]! } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[3971]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[3972]! } - public var AttachmentMenu_Poll: String { return self._s[3973]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[3974]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[3975]! } - public var Passport_DeletePassport: String { return self._s[3976]! } - public var Login_Code: String { return self._s[3977]! } - public var Notification_SecretChatScreenshot: String { return self._s[3978]! } - public var Login_CodeFloodError: String { return self._s[3979]! } + public var ChannelIntro_Text: String { return self._s[3948]! } + public var StickerPack_Send: String { return self._s[3949]! } + public var Share_AuthDescription: String { return self._s[3950]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[3951]! } + public var CallFeedback_WhatWentWrong: String { return self._s[3952]! } + public var Common_Create: String { return self._s[3955]! } + public var Passport_Language_hy: String { return self._s[3956]! } + public var CreatePoll_Explanation: String { return self._s[3957]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[3958]! } + public var Undo_ChatClearedForBothSides: String { return self._s[3959]! } + public var DialogList_NoMessagesTitle: String { return self._s[3960]! } + public var GroupInfo_Title: String { return self._s[3962]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[3963]! } + public var PhoneNumberHelp_Help: String { return self._s[3964]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[3965]! } + public var Settings_Logout: String { return self._s[3966]! } + public var Privacy_PaymentsTitle: String { return self._s[3967]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[3968]! } + public var Tour_Text6: String { return self._s[3969]! } + public var Channel_Username_Help: String { return self._s[3971]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[3972]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[3973]! } + public var AttachmentMenu_Poll: String { return self._s[3974]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[3975]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[3976]! } + public var Passport_DeletePassport: String { return self._s[3977]! } + public var Login_Code: String { return self._s[3978]! } + public var Notification_SecretChatScreenshot: String { return self._s[3979]! } + public var Login_CodeFloodError: String { return self._s[3980]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3980]!, self._r[3980]!, [_0]) - } - public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3981]!, self._r[3981]!, [_0]) } - public var Watch_Stickers_Recents: String { return self._s[3982]! } - public var Generic_ErrorMoreInfo: String { return self._s[3983]! } + public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3982]!, self._r[3982]!, [_0]) + } + public var Watch_Stickers_Recents: String { return self._s[3983]! } + public var Generic_ErrorMoreInfo: String { return self._s[3984]! } public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3984]!, self._r[3984]!, [_0]) + return formatWithArgumentRanges(self._s[3985]!, self._r[3985]!, [_0]) } - public var AutoDownloadSettings_DataUsage: String { return self._s[3985]! } - public var Conversation_ViewTheme: String { return self._s[3986]! } - public var Contacts_InviteSearchLabel: String { return self._s[3987]! } - public var Settings_CancelUpload: String { return self._s[3989]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[3990]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[3986]! } + public var Conversation_ViewTheme: String { return self._s[3987]! } + public var Contacts_InviteSearchLabel: String { return self._s[3988]! } + public var Settings_CancelUpload: String { return self._s[3990]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[3991]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3991]!, self._r[3991]!, [_0]) + return formatWithArgumentRanges(self._s[3992]!, self._r[3992]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[3992]! } - public var Conversation_Location: String { return self._s[3994]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[3995]! } - public var DialogList_AdLabel: String { return self._s[3996]! } + public var ChatList_AddFolder: String { return self._s[3993]! } + public var Conversation_Location: String { return self._s[3995]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[3996]! } + public var DialogList_AdLabel: String { return self._s[3997]! } public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3998]!, self._r[3998]!, [_0]) + return formatWithArgumentRanges(self._s[3999]!, self._r[3999]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[3999]! } - public var Channel_TooMuchBots: String { return self._s[4000]! } + public var Message_InvoiceLabel: String { return self._s[4000]! } + public var Channel_TooMuchBots: String { return self._s[4001]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4002]!, self._r[4002]!, [_0]) + return formatWithArgumentRanges(self._s[4003]!, self._r[4003]!, [_0]) } - public var Wallet_Month_ShortAugust: String { return self._s[4003]! } - public var Call_IncomingVideoCall: String { return self._s[4004]! } - public var Conversation_LiveLocation: String { return self._s[4005]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4006]! } - public var Passport_Identity_EditPassport: String { return self._s[4007]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4009]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4010]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4011]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4013]! } - public var Channel_MessageVideoUpdated: String { return self._s[4014]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4015]! } - public var AccessDenied_Camera: String { return self._s[4018]! } + public var Wallet_Month_ShortAugust: String { return self._s[4004]! } + public var Call_IncomingVideoCall: String { return self._s[4005]! } + public var Conversation_LiveLocation: String { return self._s[4006]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4007]! } + public var Passport_Identity_EditPassport: String { return self._s[4008]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[4010]! } + public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4011]! } + public var GroupInfo_Permissions_AddException: String { return self._s[4012]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[4014]! } + public var Channel_MessageVideoUpdated: String { return self._s[4015]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4016]! } + public var AccessDenied_Camera: String { return self._s[4019]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4019]!, self._r[4019]!, [_0]) + return formatWithArgumentRanges(self._s[4020]!, self._r[4020]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[4020]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4021]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4022]! } - public var Login_CodeExpiredError: String { return self._s[4023]! } - public var State_ConnectingToProxy: String { return self._s[4024]! } - public var TextFormat_Link: String { return self._s[4025]! } - public var Passport_Language_lv: String { return self._s[4026]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4027]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4028]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4029]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4031]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4032]! } + public var Theme_Context_ChangeColors: String { return self._s[4021]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[4022]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[4023]! } + public var Login_CodeExpiredError: String { return self._s[4024]! } + public var State_ConnectingToProxy: String { return self._s[4025]! } + public var TextFormat_Link: String { return self._s[4026]! } + public var Passport_Language_lv: String { return self._s[4027]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4028]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[4029]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[4030]! } + public var AutoDownloadSettings_Cellular: String { return self._s[4032]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4033]! } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4033]!, self._r[4033]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4034]!, self._r[4034]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4034]! } - public var Checkout_PayNone: String { return self._s[4035]! } - public var NotificationsSound_Complete: String { return self._s[4037]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4038]! } - public var AuthSessions_DevicesTitle: String { return self._s[4039]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[4035]! } + public var Checkout_PayNone: String { return self._s[4036]! } + public var NotificationsSound_Complete: String { return self._s[4038]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4039]! } + public var AuthSessions_DevicesTitle: String { return self._s[4040]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4040]!, self._r[4040]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4041]! } - public var Watch_Suggestion_BRB: String { return self._s[4042]! } - public var Channel_BanUser_Title: String { return self._s[4043]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4044]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4045]! } - public var Conversation_ClearSelfHistory: String { return self._s[4046]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4047]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4048]! } - public var Weekday_Thursday: String { return self._s[4049]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4050]! } - public var Privacy_ProfilePhoto: String { return self._s[4052]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4053]! } + public var Message_LiveLocation: String { return self._s[4042]! } + public var Watch_Suggestion_BRB: String { return self._s[4043]! } + public var Channel_BanUser_Title: String { return self._s[4044]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4045]! } + public var Conversation_Dice_u1F3C0: String { return self._s[4046]! } + public var Conversation_ClearSelfHistory: String { return self._s[4047]! } + public var ProfilePhoto_OpenGallery: String { return self._s[4048]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[4049]! } + public var Weekday_Thursday: String { return self._s[4050]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4051]! } + public var Privacy_ProfilePhoto: String { return self._s[4053]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4054]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4054]!, self._r[4054]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4055]!, self._r[4055]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4055]! } - public var Conversation_Info: String { return self._s[4056]! } - public var Cache_Videos: String { return self._s[4057]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4058]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4059]! } + public var Message_Audio: String { return self._s[4056]! } + public var Conversation_Info: String { return self._s[4057]! } + public var Cache_Videos: String { return self._s[4058]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4059]! } + public var Channel_ErrorAddTooMuch: String { return self._s[4060]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4060]!, self._r[4060]!, [_0]) + return formatWithArgumentRanges(self._s[4061]!, self._r[4061]!, [_0]) } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4062]! } - public var ScheduledMessages_Title: String { return self._s[4064]! } - public var ShareFileTip_Title: String { return self._s[4067]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4068]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4069]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4063]! } + public var ScheduledMessages_Title: String { return self._s[4065]! } + public var ShareFileTip_Title: String { return self._s[4068]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4069]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[4070]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4070]!, self._r[4070]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4071]!, self._r[4071]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4072]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4073]! } - public var PasscodeSettings_Title: String { return self._s[4074]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4075]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4076]! } + public var Conversation_ContextViewStats: String { return self._s[4073]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4074]! } + public var PasscodeSettings_Title: String { return self._s[4075]! } + public var Channel_AdminLog_SendPolls: String { return self._s[4076]! } + public var LastSeen_ALongTimeAgo: String { return self._s[4077]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4077]!, self._r[4077]!, [_1]) + return formatWithArgumentRanges(self._s[4078]!, self._r[4078]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4078]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4079]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4080]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4081]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4082]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4079]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[4080]! } + public var Conversation_PinnedPreviousMessage: String { return self._s[4081]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[4082]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[4083]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4083]!, self._r[4083]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4084]!, self._r[4084]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4084]!, self._r[4084]!, [_0]) + return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4085]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4088]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4089]! } - public var VoiceChat_Audio: String { return self._s[4090]! } - public var SharedMedia_TitleAll: String { return self._s[4091]! } - public var Settings_Context_Logout: String { return self._s[4092]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4094]! } - public var Settings_About_Title: String { return self._s[4095]! } - public var StickerSettings_ContextHide: String { return self._s[4096]! } + public var Passport_Identity_GenderFemale: String { return self._s[4086]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[4089]! } + public var Location_ProximityNotification_DistanceKM: String { return self._s[4090]! } + public var VoiceChat_Audio: String { return self._s[4091]! } + public var SharedMedia_TitleAll: String { return self._s[4092]! } + public var Settings_Context_Logout: String { return self._s[4093]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4095]! } + public var Settings_About_Title: String { return self._s[4096]! } + public var StickerSettings_ContextHide: String { return self._s[4097]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4097]!, self._r[4097]!, [_0]) - } - public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4098]!, self._r[4098]!, [_0]) } - public var Common_Cancel: String { return self._s[4100]! } - public var CallFeedback_Title: String { return self._s[4102]! } - public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4103]!, self._r[4103]!, [_0]) + public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4099]!, self._r[4099]!, [_0]) } - public var Activity_UploadingVideoMessage: String { return self._s[4104]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[4105]! } - public var MediaPicker_Send: String { return self._s[4106]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4107]! } - public var Conversation_LiveLocationYou: String { return self._s[4108]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4109]! } + public var Common_Cancel: String { return self._s[4101]! } + public var CallFeedback_Title: String { return self._s[4103]! } + public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4104]!, self._r[4104]!, [_0]) + } + public var Activity_UploadingVideoMessage: String { return self._s[4105]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[4106]! } + public var MediaPicker_Send: String { return self._s[4107]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4108]! } + public var Conversation_LiveLocationYou: String { return self._s[4109]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[4110]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4110]!, self._r[4110]!, [_0]) + return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_1, _2]) } - public var Conversation_ViewBackground: String { return self._s[4112]! } - public var ChatSettings_PrivateChats: String { return self._s[4115]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4116]! } - public var Wallet_Receive_AmountInfo: String { return self._s[4117]! } - public var Appearance_ThemeNight: String { return self._s[4118]! } - public var Common_Search: String { return self._s[4119]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4120]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4122]! } - public var Stickers_SuggestAdded: String { return self._s[4123]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4126]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4127]! } - public var CheckoutInfo_Title: String { return self._s[4128]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4129]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4130]! } + public var Conversation_ViewBackground: String { return self._s[4113]! } + public var ChatSettings_PrivateChats: String { return self._s[4116]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[4117]! } + public var Wallet_Receive_AmountInfo: String { return self._s[4118]! } + public var Appearance_ThemeNight: String { return self._s[4119]! } + public var Common_Search: String { return self._s[4120]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4121]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[4123]! } + public var Stickers_SuggestAdded: String { return self._s[4124]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4127]! } + public var NetworkUsageSettings_Cellular: String { return self._s[4128]! } + public var CheckoutInfo_Title: String { return self._s[4129]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4130]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[4131]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4131]!, self._r[4131]!, [_0]) + return formatWithArgumentRanges(self._s[4132]!, self._r[4132]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[4133]! } - public var GroupRemoved_DeleteUser: String { return self._s[4135]! } - public var Contacts_ShareTelegram: String { return self._s[4136]! } - public var Group_UpgradeNoticeText1: String { return self._s[4137]! } + public var MaskStickerSettings_Info: String { return self._s[4134]! } + public var GroupRemoved_DeleteUser: String { return self._s[4136]! } + public var Contacts_ShareTelegram: String { return self._s[4137]! } + public var Group_UpgradeNoticeText1: String { return self._s[4138]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4138]!, self._r[4138]!, [_1]) + return formatWithArgumentRanges(self._s[4139]!, self._r[4139]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4139]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4143]! } - public var PhotoEditor_TintTool: String { return self._s[4144]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[4146]! } - public var GroupPermission_NoSendPolls: String { return self._s[4147]! } - public var NotificationsSound_None: String { return self._s[4148]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[4140]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[4144]! } + public var PhotoEditor_TintTool: String { return self._s[4145]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[4147]! } + public var GroupPermission_NoSendPolls: String { return self._s[4148]! } + public var NotificationsSound_None: String { return self._s[4149]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4149]!, self._r[4149]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4151]! } - public var ExplicitContent_AlertChannel: String { return self._s[4153]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4154]! } - public var Contacts_SortedByPresence: String { return self._s[4155]! } - public var WallpaperSearch_ColorGray: String { return self._s[4156]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4157]! } - public var Conversation_ReportSpam: String { return self._s[4158]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4161]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4162]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4163]! } - public var Conversation_DefaultRestrictedText: String { return self._s[4164]! } - public var Settings_Devices: String { return self._s[4165]! } - public var Call_AudioRouteSpeaker: String { return self._s[4166]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4167]! } - public var Passport_Address_Country: String { return self._s[4169]! } - public var Cache_MaximumCacheSize: String { return self._s[4170]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4171]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4172]! } - public var Wallet_Receive_CreateInvoice: String { return self._s[4174]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4175]! } - public var Login_TermsOfServiceLabel: String { return self._s[4176]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4177]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4178]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4179]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4180]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4181]! } - public var ConvertToSupergroup_Note: String { return self._s[4183]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4184]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4185]! } - public var Common_More: String { return self._s[4186]! } - public var ShareMenu_SelectChats: String { return self._s[4188]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4152]! } + public var ExplicitContent_AlertChannel: String { return self._s[4154]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4155]! } + public var Contacts_SortedByPresence: String { return self._s[4156]! } + public var WallpaperSearch_ColorGray: String { return self._s[4157]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4158]! } + public var Conversation_ReportSpam: String { return self._s[4159]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4162]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4163]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4164]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4165]! } + public var Settings_Devices: String { return self._s[4166]! } + public var Call_AudioRouteSpeaker: String { return self._s[4167]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4168]! } + public var Passport_Address_Country: String { return self._s[4170]! } + public var Cache_MaximumCacheSize: String { return self._s[4171]! } + public var Chat_PanelHidePinnedMessages: String { return self._s[4172]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4173]! } + public var Wallet_Receive_CreateInvoice: String { return self._s[4175]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4176]! } + public var Login_TermsOfServiceLabel: String { return self._s[4177]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4178]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4179]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4180]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4181]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4182]! } + public var ConvertToSupergroup_Note: String { return self._s[4184]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4185]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4186]! } + public var Common_More: String { return self._s[4187]! } + public var ShareMenu_SelectChats: String { return self._s[4189]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4190]!, self._r[4190]!, [_0]) - } - public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4191]!, self._r[4191]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4193]! } + public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4192]!, self._r[4192]!, [_0]) + } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4194]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4194]!, self._r[4194]!, [_0]) + return formatWithArgumentRanges(self._s[4195]!, self._r[4195]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4195]! } + public var WatchRemote_AlertOpen: String { return self._s[4196]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4196]!, self._r[4196]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4197]!, self._r[4197]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4197]! } - public var Shortcut_SwitchAccount: String { return self._s[4198]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4199]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4198]! } + public var Shortcut_SwitchAccount: String { return self._s[4199]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4200]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4200]!, self._r[4200]!, [_0]) + return formatWithArgumentRanges(self._s[4201]!, self._r[4201]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4201]! } - public var DialogList_You: String { return self._s[4202]! } - public var ReportPeer_ReasonViolence: String { return self._s[4203]! } + public var Compose_NewGroupTitle: String { return self._s[4202]! } + public var DialogList_You: String { return self._s[4203]! } + public var ReportPeer_ReasonViolence: String { return self._s[4204]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4204]!, self._r[4204]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4205]!, self._r[4205]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4207]! } - public var KeyCommand_ScrollDown: String { return self._s[4209]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4210]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4211]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4212]! } - public var ArchivedChats_IntroText3: String { return self._s[4213]! } - public var HashtagSearch_AllChats: String { return self._s[4215]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4216]! } - public var Channel_Info_BlackList: String { return self._s[4218]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4219]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4220]! } - public var Paint_Neon: String { return self._s[4222]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4223]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4224]! } + public var VoiceChat_Reconnecting: String { return self._s[4208]! } + public var KeyCommand_ScrollDown: String { return self._s[4210]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4211]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4212]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4213]! } + public var ArchivedChats_IntroText3: String { return self._s[4214]! } + public var HashtagSearch_AllChats: String { return self._s[4216]! } + public var VoiceChat_EndVoiceChat: String { return self._s[4217]! } + public var Channel_Info_BlackList: String { return self._s[4219]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4220]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4221]! } + public var Paint_Neon: String { return self._s[4223]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4224]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4225]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4226]!, self._r[4226]!, [_0]) + return formatWithArgumentRanges(self._s[4227]!, self._r[4227]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4227]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4228]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4229]! } - public var InstantPage_Reference: String { return self._s[4230]! } - public var ChatList_HideAction: String { return self._s[4232]! } - public var Conversation_FileICloudDrive: String { return self._s[4234]! } + public var Map_StopLiveLocation: String { return self._s[4228]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4229]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4230]! } + public var InstantPage_Reference: String { return self._s[4231]! } + public var ChatList_HideAction: String { return self._s[4233]! } + public var Conversation_FileICloudDrive: String { return self._s[4235]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4235]!, self._r[4235]!, [_1]) + return formatWithArgumentRanges(self._s[4236]!, self._r[4236]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4237]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4239]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4240]! } - public var Calls_AddTab: String { return self._s[4241]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4242]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4243]! } - public var Privacy_GroupsAndChannels: String { return self._s[4246]! } - public var AutoNightTheme_Disabled: String { return self._s[4247]! } - public var CreatePoll_MultipleChoice: String { return self._s[4248]! } + public var Passport_PasswordReset: String { return self._s[4238]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4240]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4241]! } + public var Calls_AddTab: String { return self._s[4242]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4243]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4244]! } + public var Privacy_GroupsAndChannels: String { return self._s[4247]! } + public var AutoNightTheme_Disabled: String { return self._s[4248]! } + public var CreatePoll_MultipleChoice: String { return self._s[4249]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4249]!, self._r[4249]!, [_1]) + return formatWithArgumentRanges(self._s[4250]!, self._r[4250]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4251]! } + public var Watch_Bot_Restart: String { return self._s[4252]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4252]!, self._r[4252]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4253]!, self._r[4253]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4254]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4255]! } - public var Appearance_PreviewIncomingText: String { return self._s[4256]! } - public var ChatSettings_WidgetSettings: String { return self._s[4257]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4258]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4260]! } - public var Stats_GroupOverview: String { return self._s[4262]! } - public var ScheduledMessages_EditTime: String { return self._s[4265]! } - public var Month_GenFebruary: String { return self._s[4266]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4267]! } - public var Stickers_ClearRecent: String { return self._s[4268]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4269]! } - public var Stats_Message_PublicShares: String { return self._s[4270]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4255]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4256]! } + public var Appearance_PreviewIncomingText: String { return self._s[4257]! } + public var ChatSettings_WidgetSettings: String { return self._s[4258]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4259]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4261]! } + public var Stats_GroupOverview: String { return self._s[4263]! } + public var ScheduledMessages_EditTime: String { return self._s[4266]! } + public var Month_GenFebruary: String { return self._s[4267]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4268]! } + public var Stickers_ClearRecent: String { return self._s[4269]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4270]! } + public var Stats_Message_PublicShares: String { return self._s[4271]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4271]!, self._r[4271]!, [_0]) + return formatWithArgumentRanges(self._s[4272]!, self._r[4272]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4272]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4273]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4274]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4275]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4277]! } - public var CreatePoll_Create: String { return self._s[4278]! } - public var ChatList_Search_FilterLinks: String { return self._s[4279]! } - public var Your_cards_number_is_invalid: String { return self._s[4280]! } - public var Month_ShortApril: String { return self._s[4281]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4282]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4283]! } - public var SocksProxySetup_Status: String { return self._s[4284]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4285]! } - public var ChatListFolder_CategoryBots: String { return self._s[4286]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4288]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4289]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4290]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4291]! } - public var Conversation_TitleUnmute: String { return self._s[4292]! } - public var Group_Setup_TypeHeader: String { return self._s[4293]! } - public var Stats_ViewsPerPost: String { return self._s[4294]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4295]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4296]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4273]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4274]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4275]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4276]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4278]! } + public var CreatePoll_Create: String { return self._s[4279]! } + public var ChatList_Search_FilterLinks: String { return self._s[4280]! } + public var Your_cards_number_is_invalid: String { return self._s[4281]! } + public var Month_ShortApril: String { return self._s[4282]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4283]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4284]! } + public var SocksProxySetup_Status: String { return self._s[4285]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4286]! } + public var ChatListFolder_CategoryBots: String { return self._s[4287]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4289]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4290]! } + public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4291]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4292]! } + public var Conversation_TitleUnmute: String { return self._s[4293]! } + public var Group_Setup_TypeHeader: String { return self._s[4294]! } + public var Stats_ViewsPerPost: String { return self._s[4295]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4296]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4297]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4297]!, self._r[4297]!, [_1]) + return formatWithArgumentRanges(self._s[4298]!, self._r[4298]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4298]! } + public var GroupInfo_Administrators_Title: String { return self._s[4299]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4299]!, self._r[4299]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4300]!, self._r[4300]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4300]!, self._r[4300]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4301]!, self._r[4301]!, [_1, _2, _3]) } - public var Wallet_Receive_Title: String { return self._s[4301]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4302]! } - public var Passport_Language_my: String { return self._s[4304]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4305]! } - public var Map_PlacesNearby: String { return self._s[4306]! } - public var Channel_About_Help: String { return self._s[4307]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4308]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4309]! } - public var Channel_Username_Title: String { return self._s[4310]! } - public var Activity_RecordingVideoMessage: String { return self._s[4311]! } + public var Wallet_Receive_Title: String { return self._s[4302]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4303]! } + public var Passport_Language_my: String { return self._s[4305]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4306]! } + public var Map_PlacesNearby: String { return self._s[4307]! } + public var Channel_About_Help: String { return self._s[4308]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4309]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4310]! } + public var Channel_Username_Title: String { return self._s[4311]! } + public var Activity_RecordingVideoMessage: String { return self._s[4312]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4312]!, self._r[4312]!, [_0]) + return formatWithArgumentRanges(self._s[4313]!, self._r[4313]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4313]! } - public var Passport_DiscardMessageDescription: String { return self._s[4314]! } - public var Conversation_LinkDialogOpen: String { return self._s[4315]! } - public var ChatList_Context_HideArchive: String { return self._s[4316]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4314]! } + public var Passport_DiscardMessageDescription: String { return self._s[4315]! } + public var Conversation_LinkDialogOpen: String { return self._s[4316]! } + public var ChatList_Context_HideArchive: String { return self._s[4317]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4317]!, self._r[4317]!, [_0]) + return formatWithArgumentRanges(self._s[4318]!, self._r[4318]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4318]! } - public var Conversation_Admin: String { return self._s[4319]! } - public var DialogList_TabTitle: String { return self._s[4320]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4319]! } + public var Conversation_Admin: String { return self._s[4320]! } + public var DialogList_TabTitle: String { return self._s[4321]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4321]!, self._r[4321]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4322]!, self._r[4322]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4322]! } - public var Passport_Identity_GenderMale: String { return self._s[4324]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4326]! } - public var PhoneNumberHelp_Alert: String { return self._s[4327]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4328]! } - public var Notifications_InAppNotifications: String { return self._s[4329]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4323]! } + public var Passport_Identity_GenderMale: String { return self._s[4325]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4327]! } + public var PhoneNumberHelp_Alert: String { return self._s[4328]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4329]! } + public var Notifications_InAppNotifications: String { return self._s[4330]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4330]!, self._r[4330]!, [_0]) + return formatWithArgumentRanges(self._s[4331]!, self._r[4331]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4331]! } - public var Login_InvalidCodeError: String { return self._s[4332]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4333]! } + public var Notification_VideoCallOutgoing: String { return self._s[4332]! } + public var Login_InvalidCodeError: String { return self._s[4333]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4334]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4334]!, self._r[4334]!, [_0]) + return formatWithArgumentRanges(self._s[4335]!, self._r[4335]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4336]! } - public var ReportPeer_Report: String { return self._s[4337]! } - public var Camera_FlashOff: String { return self._s[4340]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4343]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4346]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4347]! } - public var Passport_FieldEmail: String { return self._s[4348]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4337]! } + public var ReportPeer_Report: String { return self._s[4338]! } + public var Camera_FlashOff: String { return self._s[4341]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4344]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4347]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4348]! } + public var Passport_FieldEmail: String { return self._s[4349]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4349]!, self._r[4349]!, [_1]) + return formatWithArgumentRanges(self._s[4350]!, self._r[4350]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4350]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4351]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4352]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4353]! } - public var Login_PhoneNumberHelp: String { return self._s[4355]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4356]! } - public var Conversation_PinnedQuiz: String { return self._s[4357]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4358]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4359]! } - public var Group_MessagePhotoUpdated: String { return self._s[4360]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4361]! } - public var Passport_Identity_Translations: String { return self._s[4363]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4364]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4366]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4367]! } - public var Channel_Members_AddMembers: String { return self._s[4368]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4369]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4371]! } - public var Conversation_HoldForAudio: String { return self._s[4372]! } - public var Watch_LastSeen_Lately: String { return self._s[4374]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4375]! } - public var Conversation_PinnedMessage: String { return self._s[4376]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4377]! } - public var Passport_UpdateRequiredError: String { return self._s[4379]! } - public var PrivacySettings_Passcode: String { return self._s[4380]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4351]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4352]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4353]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4354]! } + public var Login_PhoneNumberHelp: String { return self._s[4356]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4357]! } + public var Conversation_PinnedQuiz: String { return self._s[4358]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4359]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4360]! } + public var Group_MessagePhotoUpdated: String { return self._s[4361]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4362]! } + public var Passport_Identity_Translations: String { return self._s[4364]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4365]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4367]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4368]! } + public var Channel_Members_AddMembers: String { return self._s[4369]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4370]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4372]! } + public var Conversation_HoldForAudio: String { return self._s[4373]! } + public var Watch_LastSeen_Lately: String { return self._s[4375]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4376]! } + public var Conversation_PinnedMessage: String { return self._s[4377]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4378]! } + public var Passport_UpdateRequiredError: String { return self._s[4380]! } + public var PrivacySettings_Passcode: String { return self._s[4381]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4381]!, self._r[4381]!, [_0]) + return formatWithArgumentRanges(self._s[4382]!, self._r[4382]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4382]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4383]! } - public var VoiceOver_Common_On: String { return self._s[4384]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4385]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4386]! } - public var Channel_SignMessages_Help: String { return self._s[4387]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4388]! } - public var Conversation_TitleNoComments: String { return self._s[4389]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4390]! } - public var GroupInfo_Permissions: String { return self._s[4391]! } - public var GroupPermission_NoSendLinks: String { return self._s[4394]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[4395]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4397]! } - public var ChatList_ArchiveAction: String { return self._s[4398]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4383]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4384]! } + public var VoiceOver_Common_On: String { return self._s[4385]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4386]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4387]! } + public var Channel_SignMessages_Help: String { return self._s[4388]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4389]! } + public var Conversation_TitleNoComments: String { return self._s[4390]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4391]! } + public var GroupInfo_Permissions: String { return self._s[4392]! } + public var GroupPermission_NoSendLinks: String { return self._s[4395]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4396]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4398]! } + public var ChatList_ArchiveAction: String { return self._s[4399]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4399]!, self._r[4399]!, [_0]) + return formatWithArgumentRanges(self._s[4400]!, self._r[4400]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4400]! } + public var GroupInfo_GroupHistory: String { return self._s[4401]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4402]!, self._r[4402]!, [_0]) + return formatWithArgumentRanges(self._s[4403]!, self._r[4403]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4404]! } - public var Channel_Info_Banned: String { return self._s[4405]! } - public var Paint_RecentStickers: String { return self._s[4406]! } - public var VoiceOver_MessageContextSend: String { return self._s[4407]! } - public var Group_ErrorNotMutualContact: String { return self._s[4408]! } - public var ReportPeer_ReasonOther: String { return self._s[4410]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4411]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4413]! } - public var KeyCommand_Find: String { return self._s[4414]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4405]! } + public var Channel_Info_Banned: String { return self._s[4406]! } + public var Paint_RecentStickers: String { return self._s[4407]! } + public var VoiceOver_MessageContextSend: String { return self._s[4408]! } + public var Group_ErrorNotMutualContact: String { return self._s[4409]! } + public var ReportPeer_ReasonOther: String { return self._s[4411]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4412]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4414]! } + public var KeyCommand_Find: String { return self._s[4415]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4415]!, self._r[4415]!, [_0]) + return formatWithArgumentRanges(self._s[4416]!, self._r[4416]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4416]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4417]! } - public var Stickers_GroupStickersHelp: String { return self._s[4418]! } - public var Wallet_Configuration_BlockchainIdPlaceholder: String { return self._s[4419]! } - public var Checkout_Title: String { return self._s[4420]! } - public var Activity_RecordingAudio: String { return self._s[4421]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4422]! } - public var BlockedUsers_BlockTitle: String { return self._s[4423]! } - public var Wallet_Month_ShortFebruary: String { return self._s[4425]! } - public var Calls_All: String { return self._s[4426]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4428]! } - public var Settings_FAQ_Button: String { return self._s[4429]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4431]! } + public var ChatList_Context_Unmute: String { return self._s[4417]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4418]! } + public var Stickers_GroupStickersHelp: String { return self._s[4419]! } + public var Wallet_Configuration_BlockchainIdPlaceholder: String { return self._s[4420]! } + public var Checkout_Title: String { return self._s[4421]! } + public var Activity_RecordingAudio: String { return self._s[4422]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4423]! } + public var BlockedUsers_BlockTitle: String { return self._s[4424]! } + public var Wallet_Month_ShortFebruary: String { return self._s[4426]! } + public var Calls_All: String { return self._s[4427]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4429]! } + public var Settings_FAQ_Button: String { return self._s[4430]! } + public var Conversation_Dice_u1F3B0: String { return self._s[4432]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4432]!, self._r[4432]!, [_0]) + return formatWithArgumentRanges(self._s[4433]!, self._r[4433]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4433]! } - public var Passport_Scans_Upload: String { return self._s[4434]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4436]! } - public var ChatList_UnarchiveAction: String { return self._s[4437]! } - public var Stats_GroupTopInviter_History: String { return self._s[4438]! } - public var GroupInfo_Permissions_Title: String { return self._s[4439]! } - public var Passport_Language_el: String { return self._s[4440]! } + public var Conversation_ReportGroupLocation: String { return self._s[4434]! } + public var Passport_Scans_Upload: String { return self._s[4435]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4437]! } + public var ChatList_UnarchiveAction: String { return self._s[4438]! } + public var Stats_GroupTopInviter_History: String { return self._s[4439]! } + public var GroupInfo_Permissions_Title: String { return self._s[4440]! } + public var Passport_Language_el: String { return self._s[4441]! } public func Wallet_Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4441]!, self._r[4441]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4442]!, self._r[4442]!, [_1, _2, _3]) } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4442]! } - public var GroupInfo_ActionPromote: String { return self._s[4443]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4444]! } + public var Channel_DiscussionMessageUnavailable: String { return self._s[4443]! } + public var GroupInfo_ActionPromote: String { return self._s[4444]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4445]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4445]!, self._r[4445]!, [_0]) + return formatWithArgumentRanges(self._s[4446]!, self._r[4446]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4446]! } - public var Month_GenMay: String { return self._s[4447]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4448]! } - public var Chat_PsaTooltip_covid: String { return self._s[4449]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4450]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4451]! } - public var AppUpgrade_Running: String { return self._s[4452]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4455]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4456]! } - public var SharedMedia_EmptyText: String { return self._s[4457]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4458]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4459]! } - public var Message_PinnedGame: String { return self._s[4460]! } - public var KeyCommand_SearchInChat: String { return self._s[4461]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4462]! } - public var ChatList_Search_FilterMedia: String { return self._s[4463]! } - public var Message_PinnedAudioMessage: String { return self._s[4464]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4465]! } + public var VoiceOver_Chat_Reply: String { return self._s[4447]! } + public var Month_GenMay: String { return self._s[4448]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4449]! } + public var Chat_PsaTooltip_covid: String { return self._s[4450]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4451]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4452]! } + public var AppUpgrade_Running: String { return self._s[4453]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4456]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4457]! } + public var SharedMedia_EmptyText: String { return self._s[4458]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4459]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4460]! } + public var Message_PinnedGame: String { return self._s[4461]! } + public var KeyCommand_SearchInChat: String { return self._s[4462]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4463]! } + public var ChatList_Search_FilterMedia: String { return self._s[4464]! } + public var Message_PinnedAudioMessage: String { return self._s[4465]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4466]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4466]!, self._r[4466]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4467]!, self._r[4467]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4467]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4468]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4468]!, self._r[4468]!, [_0]) + return formatWithArgumentRanges(self._s[4469]!, self._r[4469]!, [_0]) } - public var Wallet_Receive_AddressCopied: String { return self._s[4469]! } + public var Wallet_Receive_AddressCopied: String { return self._s[4470]! } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4470]!, self._r[4470]!, [_0]) + return formatWithArgumentRanges(self._s[4471]!, self._r[4471]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4471]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4472]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4473]! } - public var Channel_JoinChannel: String { return self._s[4474]! } - public var Watch_UserInfo_Unblock: String { return self._s[4475]! } - public var PhoneLabel_Title: String { return self._s[4476]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4478]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4479]! } + public var Settings_AddAccount: String { return self._s[4472]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4473]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4474]! } + public var Channel_JoinChannel: String { return self._s[4475]! } + public var Watch_UserInfo_Unblock: String { return self._s[4476]! } + public var PhoneLabel_Title: String { return self._s[4477]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4479]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4480]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4480]!, self._r[4480]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4481]!, self._r[4481]!, [_1, _2, _3, _4, _5, _6]) } - public var Wallet_Month_GenOctober: String { return self._s[4481]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[4482]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4483]! } - public var DialogList_EncryptionProcessing: String { return self._s[4484]! } - public var ChatList_Search_FilterChats: String { return self._s[4485]! } - public var WatchRemote_NotificationText: String { return self._s[4486]! } - public var EditTheme_ChangeColors: String { return self._s[4487]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4488]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[4489]! } - public var CallSettings_OnMobile: String { return self._s[4491]! } - public var Month_ShortFebruary: String { return self._s[4493]! } - public var VoiceOver_MessageContextReply: String { return self._s[4494]! } + public var Wallet_Month_GenOctober: String { return self._s[4482]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4483]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4484]! } + public var DialogList_EncryptionProcessing: String { return self._s[4485]! } + public var ChatList_Search_FilterChats: String { return self._s[4486]! } + public var WatchRemote_NotificationText: String { return self._s[4487]! } + public var EditTheme_ChangeColors: String { return self._s[4488]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4489]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[4490]! } + public var CallSettings_OnMobile: String { return self._s[4492]! } + public var Month_ShortFebruary: String { return self._s[4494]! } + public var VoiceOver_MessageContextReply: String { return self._s[4495]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4495]!, self._r[4495]!, [_1]) + return formatWithArgumentRanges(self._s[4496]!, self._r[4496]!, [_1]) } - public var Group_Location_ChangeLocation: String { return self._s[4496]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4498]! } - public var Wallet_Send_EncryptComment: String { return self._s[4499]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4500]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4501]! } + public var Group_Location_ChangeLocation: String { return self._s[4497]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4499]! } + public var Wallet_Send_EncryptComment: String { return self._s[4500]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4501]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4502]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4503]!, self._r[4503]!, [_0]) + return formatWithArgumentRanges(self._s[4504]!, self._r[4504]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4504]! } - public var Login_InfoAvatarPhoto: String { return self._s[4505]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4506]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4507]! } - public var Map_PlacesInThisArea: String { return self._s[4508]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4509]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4510]! } + public var PhotoEditor_WarmthTool: String { return self._s[4505]! } + public var Login_InfoAvatarPhoto: String { return self._s[4506]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4507]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4508]! } + public var Map_PlacesInThisArea: String { return self._s[4509]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4510]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4511]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4511]!, self._r[4511]!, [_1]) + return formatWithArgumentRanges(self._s[4512]!, self._r[4512]!, [_1]) } - public var ShareMenu_Send: String { return self._s[4512]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4513]! } + public var ShareMenu_Send: String { return self._s[4513]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4514]! } public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4514]!, self._r[4514]!, [_1]) + return formatWithArgumentRanges(self._s[4515]!, self._r[4515]!, [_1]) } - public var Appearance_AppIconClassicX: String { return self._s[4515]! } + public var Appearance_AppIconClassicX: String { return self._s[4516]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4516]!, self._r[4516]!, [_1]) + return formatWithArgumentRanges(self._s[4517]!, self._r[4517]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4517]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4519]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4520]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4521]! } - public var Wallet_WordCheck_Title: String { return self._s[4522]! } - public var Conversation_Timer_Title: String { return self._s[4523]! } - public var Common_Next: String { return self._s[4524]! } - public var Notification_Exceptions_NewException: String { return self._s[4525]! } + public var Conversation_StopPoll: String { return self._s[4518]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4520]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4521]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4522]! } + public var Wallet_WordCheck_Title: String { return self._s[4523]! } + public var Conversation_Timer_Title: String { return self._s[4524]! } + public var Common_Next: String { return self._s[4525]! } + public var Notification_Exceptions_NewException: String { return self._s[4526]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4526]!, self._r[4526]!, [_0]) + return formatWithArgumentRanges(self._s[4527]!, self._r[4527]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4527]! } - public var VoiceChat_UnmutePeer: String { return self._s[4528]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4529]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4530]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4531]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4532]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4533]! } + public var AccessDenied_CallMicrophone: String { return self._s[4528]! } + public var VoiceChat_UnmutePeer: String { return self._s[4529]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4530]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4531]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4532]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4533]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4534]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4534]!, self._r[4534]!, [_0]) + return formatWithArgumentRanges(self._s[4535]!, self._r[4535]!, [_0]) } - public var Group_About_Help: String { return self._s[4535]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4536]! } - public var Tour_Title3: String { return self._s[4537]! } - public var Watch_Conversation_Unblock: String { return self._s[4538]! } - public var Watch_UserInfo_Block: String { return self._s[4539]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4540]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4541]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4542]! } - public var Wallet_Alert_Cancel: String { return self._s[4543]! } - public var TextFormat_AddLinkTitle: String { return self._s[4544]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4545]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4546]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4547]! } - public var Compose_ChannelMembers: String { return self._s[4548]! } - public var Conversation_ForwardTitle: String { return self._s[4549]! } + public var Group_About_Help: String { return self._s[4536]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4537]! } + public var Tour_Title3: String { return self._s[4538]! } + public var Watch_Conversation_Unblock: String { return self._s[4539]! } + public var Watch_UserInfo_Block: String { return self._s[4540]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4541]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4542]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4543]! } + public var Wallet_Alert_Cancel: String { return self._s[4544]! } + public var TextFormat_AddLinkTitle: String { return self._s[4545]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4546]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4547]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4548]! } + public var Compose_ChannelMembers: String { return self._s[4549]! } + public var Conversation_ForwardTitle: String { return self._s[4550]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4550]!, self._r[4550]!, [_0]) + return formatWithArgumentRanges(self._s[4551]!, self._r[4551]!, [_0]) } - public var Conversation_PinnedPoll: String { return self._s[4552]! } + public var Conversation_PinnedPoll: String { return self._s[4553]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4553]!, self._r[4553]!, [_0]) + return formatWithArgumentRanges(self._s[4554]!, self._r[4554]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4554]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4555]! } - public var Stats_Overview: String { return self._s[4556]! } - public var Map_HomeAndWorkTitle: String { return self._s[4557]! } - public var Wallet_Intro_Terms: String { return self._s[4558]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4555]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4556]! } + public var Stats_Overview: String { return self._s[4557]! } + public var Map_HomeAndWorkTitle: String { return self._s[4558]! } + public var Wallet_Intro_Terms: String { return self._s[4559]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4559]!, self._r[4559]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4560]!, self._r[4560]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4560]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4561]! } - public var Privacy_PhoneNumber: String { return self._s[4562]! } - public var ChatList_Search_FilterFiles: String { return self._s[4563]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4564]! } - public var ChannelIntro_CreateChannel: String { return self._s[4565]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4566]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4561]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4562]! } + public var Privacy_PhoneNumber: String { return self._s[4563]! } + public var ChatList_Search_FilterFiles: String { return self._s[4564]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4565]! } + public var ChannelIntro_CreateChannel: String { return self._s[4566]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4567]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4567]!, self._r[4567]!, [_0]) + return formatWithArgumentRanges(self._s[4568]!, self._r[4568]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4568]! } - public var Passport_Language_ar: String { return self._s[4570]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4571]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4572]! } - public var Calls_RatingFeedback: String { return self._s[4573]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4574]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4577]! } - public var Watch_Compose_Send: String { return self._s[4578]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4579]! } - public var WebSearch_RecentSectionClear: String { return self._s[4580]! } + public var Weekday_ShortMonday: String { return self._s[4569]! } + public var Passport_Language_ar: String { return self._s[4571]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4572]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4573]! } + public var Calls_RatingFeedback: String { return self._s[4574]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4575]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4578]! } + public var Watch_Compose_Send: String { return self._s[4579]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4580]! } + public var WebSearch_RecentSectionClear: String { return self._s[4581]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4581]!, self._r[4581]!, [_0]) + return formatWithArgumentRanges(self._s[4582]!, self._r[4582]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4582]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4583]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4584]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4586]! } - public var Settings_SavedMessages: String { return self._s[4587]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4588]! } - public var Month_ShortMarch: String { return self._s[4589]! } - public var Message_Location: String { return self._s[4590]! } + public var WallpaperSearch_ColorTeal: String { return self._s[4583]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4584]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4585]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4587]! } + public var Settings_SavedMessages: String { return self._s[4588]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4589]! } + public var Month_ShortMarch: String { return self._s[4590]! } + public var Message_Location: String { return self._s[4591]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4591]!, self._r[4591]!, [_1]) + return formatWithArgumentRanges(self._s[4592]!, self._r[4592]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4592]!, self._r[4592]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4593]!, self._r[4593]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4594]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4595]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4595]!, self._r[4595]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4596]!, self._r[4596]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4596]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4597]! } - public var SharedMedia_CategoryDocs: String { return self._s[4598]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4599]! } - public var Paint_Framed: String { return self._s[4600]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4601]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4602]! } - public var Channel_SignMessages: String { return self._s[4603]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4604]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4605]! } + public var GroupPermission_NoSendMedia: String { return self._s[4597]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4598]! } + public var SharedMedia_CategoryDocs: String { return self._s[4599]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4600]! } + public var Paint_Framed: String { return self._s[4601]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4602]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4603]! } + public var Channel_SignMessages: String { return self._s[4604]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4605]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4606]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4606]!, self._r[4606]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4607]!, self._r[4607]!, [_1, _2]) } - public var GroupInfo_UpgradeButton: String { return self._s[4607]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4608]! } - public var AutoDownloadSettings_Files: String { return self._s[4609]! } + public var GroupInfo_UpgradeButton: String { return self._s[4608]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4609]! } + public var AutoDownloadSettings_Files: String { return self._s[4610]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4610]!, self._r[4610]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4611]!, self._r[4611]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4612]! } - public var Update_UpdateApp: String { return self._s[4613]! } - public var Channel_Setup_TypePublic: String { return self._s[4614]! } - public var Watch_Compose_CreateMessage: String { return self._s[4615]! } + public var Login_SendCodeViaSms: String { return self._s[4613]! } + public var Update_UpdateApp: String { return self._s[4614]! } + public var Channel_Setup_TypePublic: String { return self._s[4615]! } + public var Watch_Compose_CreateMessage: String { return self._s[4616]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4616]!, self._r[4616]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4617]!, self._r[4617]!, [_1, _2, _3]) } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4617]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4618]! } public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4618]!, self._r[4618]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4619]!, self._r[4619]!, [_1, _2, _3]) } - public var VoiceOver_Chat_Video: String { return self._s[4619]! } - public var Forward_ChannelReadOnly: String { return self._s[4620]! } - public var StickerPack_HideStickers: String { return self._s[4621]! } - public var ChatListFolder_NameContacts: String { return self._s[4622]! } - public var Profile_BotInfo: String { return self._s[4623]! } - public var Document_TargetConfirmationFormat: String { return self._s[4624]! } - public var GroupInfo_InviteByLink: String { return self._s[4625]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4626]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4627]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4628]! } - public var Passport_NotLoggedInMessage: String { return self._s[4629]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4630]! } - public var Checkout_PaymentMethod: String { return self._s[4631]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4635]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4636]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4637]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4638]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4639]! } - public var Camera_Title: String { return self._s[4640]! } - public var Map_Directions: String { return self._s[4641]! } - public var Wallet_Intro_ImportExisting: String { return self._s[4642]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[4644]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4645]! } - public var Profile_EncryptionKey: String { return self._s[4646]! } + public var VoiceOver_Chat_Video: String { return self._s[4620]! } + public var Forward_ChannelReadOnly: String { return self._s[4621]! } + public var StickerPack_HideStickers: String { return self._s[4622]! } + public var ChatListFolder_NameContacts: String { return self._s[4623]! } + public var Profile_BotInfo: String { return self._s[4624]! } + public var Document_TargetConfirmationFormat: String { return self._s[4625]! } + public var GroupInfo_InviteByLink: String { return self._s[4626]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4627]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[4628]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[4629]! } + public var Passport_NotLoggedInMessage: String { return self._s[4630]! } + public var Conversation_StopQuizConfirmation: String { return self._s[4631]! } + public var Checkout_PaymentMethod: String { return self._s[4632]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4636]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4637]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4638]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4639]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4640]! } + public var Camera_Title: String { return self._s[4641]! } + public var Map_Directions: String { return self._s[4642]! } + public var Wallet_Intro_ImportExisting: String { return self._s[4643]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[4645]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4646]! } + public var Profile_EncryptionKey: String { return self._s[4647]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4647]!, self._r[4647]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4648]!, self._r[4648]!, [_1, "\(_2)"]) } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4648]!, self._r[4648]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4649]!, self._r[4649]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[4649]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[4651]! } - public var Common_No: String { return self._s[4652]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4653]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4654]! } - public var Settings_AboutEmpty: String { return self._s[4655]! } - public var TwoStepAuth_FloodError: String { return self._s[4657]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4658]! } + public var Passport_Identity_TypePassport: String { return self._s[4650]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[4652]! } + public var Common_No: String { return self._s[4653]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4654]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4655]! } + public var Settings_AboutEmpty: String { return self._s[4656]! } + public var TwoStepAuth_FloodError: String { return self._s[4658]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4659]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4660]!, self._r[4660]!, [_1]) + return formatWithArgumentRanges(self._s[4661]!, self._r[4661]!, [_1]) } - public var Conversation_Edit: String { return self._s[4663]! } - public var CheckoutInfo_SaveInfo: String { return self._s[4664]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4665]! } - public var Call_CameraTooltip: String { return self._s[4667]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[4668]! } - public var Contacts_InviteToTelegram: String { return self._s[4669]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[4670]! } - public var Notifications_ResetAllNotifications: String { return self._s[4671]! } - public var Calls_NewCall: String { return self._s[4672]! } - public var VoiceOver_Chat_Music: String { return self._s[4675]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4676]! } - public var Channel_Edit_AboutItem: String { return self._s[4677]! } - public var Message_VideoExpired: String { return self._s[4678]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4679]! } + public var Conversation_Edit: String { return self._s[4664]! } + public var CheckoutInfo_SaveInfo: String { return self._s[4665]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4666]! } + public var Call_CameraTooltip: String { return self._s[4668]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[4669]! } + public var Contacts_InviteToTelegram: String { return self._s[4670]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[4671]! } + public var Notifications_ResetAllNotifications: String { return self._s[4672]! } + public var Calls_NewCall: String { return self._s[4673]! } + public var VoiceOver_Chat_Music: String { return self._s[4676]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4677]! } + public var Channel_Edit_AboutItem: String { return self._s[4678]! } + public var Message_VideoExpired: String { return self._s[4679]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4680]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4680]!, self._r[4680]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4681]!, self._r[4681]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[4682]! } - public var Notifications_ClassicTones: String { return self._s[4683]! } - public var Conversation_StatusTyping: String { return self._s[4684]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4685]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4686]! } - public var Wallet_Month_ShortSeptember: String { return self._s[4687]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4688]! } - public var Conversation_MessageLeaveComment: String { return self._s[4689]! } - public var UserInfo_TapToCall: String { return self._s[4690]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4691]! } - public var Conversation_ClearAll: String { return self._s[4693]! } - public var UserInfo_NotificationsDefault: String { return self._s[4694]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[4695]! } - public var Location_ProximityGroupTip: String { return self._s[4696]! } - public var Map_ChooseAPlace: String { return self._s[4697]! } + public var NotificationsSound_Input: String { return self._s[4683]! } + public var Notifications_ClassicTones: String { return self._s[4684]! } + public var Conversation_StatusTyping: String { return self._s[4685]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4686]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4687]! } + public var Wallet_Month_ShortSeptember: String { return self._s[4688]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4689]! } + public var Conversation_MessageLeaveComment: String { return self._s[4690]! } + public var UserInfo_TapToCall: String { return self._s[4691]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4692]! } + public var Conversation_ClearAll: String { return self._s[4694]! } + public var UserInfo_NotificationsDefault: String { return self._s[4695]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[4696]! } + public var Location_ProximityGroupTip: String { return self._s[4697]! } + public var Map_ChooseAPlace: String { return self._s[4698]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4698]!, self._r[4698]!, [_0]) + return formatWithArgumentRanges(self._s[4699]!, self._r[4699]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[4699]! } - public var ChatList_PeerTypeNonContact: String { return self._s[4700]! } - public var Conversation_SlideToCancel: String { return self._s[4701]! } - public var Month_ShortJuly: String { return self._s[4702]! } - public var SocksProxySetup_ProxyType: String { return self._s[4703]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[4700]! } + public var ChatList_PeerTypeNonContact: String { return self._s[4701]! } + public var Conversation_SlideToCancel: String { return self._s[4702]! } + public var Month_ShortJuly: String { return self._s[4703]! } + public var SocksProxySetup_ProxyType: String { return self._s[4704]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4704]!, self._r[4704]!, [_0]) + return formatWithArgumentRanges(self._s[4705]!, self._r[4705]!, [_0]) } - public var ChatList_EditFolders: String { return self._s[4705]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[4706]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[4708]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[4709]! } + public var ChatList_EditFolders: String { return self._s[4706]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[4707]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[4709]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[4710]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4710]!, self._r[4710]!, [_0]) + return formatWithArgumentRanges(self._s[4711]!, self._r[4711]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[4711]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[4712]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[4713]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[4715]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[4716]! } - public var Passport_DeleteAddress: String { return self._s[4718]! } - public var Passport_DeletePassportConfirmation: String { return self._s[4719]! } - public var Passport_Identity_ReverseSide: String { return self._s[4720]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[4721]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[4722]! } - public var Passport_FieldAddress: String { return self._s[4723]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[4724]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[4727]! } - public var Map_Home: String { return self._s[4729]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[4730]! } - public var PollResults_Title: String { return self._s[4731]! } - public var ArchivedChats_IntroText2: String { return self._s[4733]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[4734]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[4735]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[4737]! } - public var VoiceChat_Muted: String { return self._s[4738]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[4740]! } - public var Group_Info_AdminLog: String { return self._s[4742]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4743]! } - public var Appearance_Animations: String { return self._s[4744]! } - public var Appearance_TextSizeSetting: String { return self._s[4745]! } - public func Chat_MessagesUnpinned(_ value: Int32) -> String { + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[4712]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[4713]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[4714]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[4716]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[4717]! } + public var Passport_DeleteAddress: String { return self._s[4719]! } + public var Passport_DeletePassportConfirmation: String { return self._s[4720]! } + public var Passport_Identity_ReverseSide: String { return self._s[4721]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[4722]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[4723]! } + public var Passport_FieldAddress: String { return self._s[4724]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[4725]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[4728]! } + public var Map_Home: String { return self._s[4730]! } + public var VoiceChat_Panel_TapToJoin: String { return self._s[4731]! } + public var PollResults_Title: String { return self._s[4732]! } + public var ArchivedChats_IntroText2: String { return self._s[4734]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[4735]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[4736]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[4738]! } + public var VoiceChat_Muted: String { return self._s[4739]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[4741]! } + public var Group_Info_AdminLog: String { return self._s[4743]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4744]! } + public var Appearance_Animations: String { return self._s[4745]! } + public var Appearance_TextSizeSetting: String { return self._s[4746]! } + public func MessageTimer_ShortWeeks(_ 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 ChatList_DeletedChats(_ value: Int32) -> String { + public func MessagePoll_QuizCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceChat_Status_Members(_ value: Int32) -> String { + public func MessagePoll_VotedCount(_ 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 ChatList_SelectedChats(_ value: Int32) -> String { + 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[3 * 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[4 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func VoiceChat_Panel_Members(_ 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 ChatList_MessagePhotos(_ 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 ForwardedPolls(_ 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 OldChannels_InactiveWeek(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollVotes(_ 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_Weeks(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notification_GameScoreSimple(_ 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 AttachmentMenu_SendPhoto(_ 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 Conversation_TitleComments(_ 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_ShortHours(_ 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 MuteFor_Days(_ 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 MessagePoll_VotedCount(_ 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 Notifications_Exceptions(_ 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 Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Seconds(_ 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 Conversation_MessageViewComments(_ 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 MessagePoll_QuizCount(_ 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 MessageTimer_ShortWeeks(_ 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 ServiceMessage_GameScoreSimple(_ 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 ForwardedMessages(_ 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 Stats_GroupTopAdminKicks(_ 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 ForwardedAudios(_ 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 Notification_GameScoreSelfSimple(_ 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 SharedMedia_DeleteItemsConfirmation(_ 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 PollResults_ShowMore(_ 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 Conversation_ContextViewReplies(_ 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 ForwardedVideos(_ 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 ForwardedLocations(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Conversation_StatusSubscribers(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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 ForwardedVideoMessages(_ 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_HoursAgo(_ 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 Passport_Scans(_ 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 Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Stats_MessageForwards(_ 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 Media_ShareItem(_ 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 ChatList_MessageMusic(_ 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 Media_SharePhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessageVideos(_ 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 AttachmentMenu_SendVideo(_ 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 OldChannels_Leave(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func OldChannels_InactiveMonth(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedGifs(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 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[55 * 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[56 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Hours(_ 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 Notification_GameScoreSelfExtended(_ 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 ChatList_MessageFiles(_ 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 MessageTimer_Days(_ 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 ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Wallpaper_DeleteConfirmation(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 Stats_GroupTopPosterChars(_ 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 MessageTimer_Hours(_ 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 Conversation_SelectedMessages(_ 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_Photo(_ 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 Call_Days(_ 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 LiveLocation_MenuChatsCount(_ 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 MessageTimer_Minutes(_ 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 PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[4 * 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[74 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedStickers(_ value: Int32) -> String { + public func ChatList_DeletedChats(_ 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[6 * 6 + Int(form.rawValue)]!, stringValue) } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + public func VoiceOver_Chat_MessagesSelected(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, _1, _2) } - public func SharedMedia_Video(_ 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[78 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func QuickSend_Photos(_ value: Int32) -> String { + public func MessageTimer_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + public func Invitation_Members(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[80 * 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[81 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Map_ETAMinutes(_ 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 ForwardedPhotos(_ 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 CreatePoll_AddMoreOptions(_ 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 AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 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[88 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 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[13 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[14 * 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[15 * 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[16 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[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 ForwardedGifs(_ 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 Media_ShareVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreExtended(_ 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 StickerPack_AddStickerCount(_ 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 Conversation_MessageViewComments(_ 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 ChatList_MessagePhotos(_ 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 Conversation_LiveLocationMembersCount(_ 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 MessageTimer_Months(_ 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 CreatePoll_AddMoreOptions(_ 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 MuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ 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 StickerPack_RemoveMaskCount(_ 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 Map_ETAMinutes(_ 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 OldChannels_InactiveMonth(_ 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 Watch_LastSeen_HoursAgo(_ 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 MessageTimer_Days(_ 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 Chat_TitlePinnedMessages(_ 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 QuickSend_Photos(_ 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 Stats_GroupTopInviterInvites(_ 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 Stats_MessageForwards(_ 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 Call_Seconds(_ 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 Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageVideos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_UserInfo_Mute(_ 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 Forward_ConfirmMultipleFiles(_ 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 Notification_GameScoreSimple(_ 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 Conversation_SelectedMessages(_ 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 VoiceOver_Chat_ContactEmailCount(_ 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 ForwardedMessages(_ 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 InstantPage_Views(_ 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 Stats_GroupTopAdminBans(_ 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 MessageTimer_ShortDays(_ 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_ShortMinutes(_ 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 ForwardedVideos(_ 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 LiveLocationUpdated_MinutesAgo(_ 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_MESSAGE_PHOTOS(_ 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 Notification_GameScoreSelfSimple(_ 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 SharedMedia_Generic(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func VoiceChat_Status_Members(_ 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 Wallet_Updated_MinutesAgo(_ 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 Call_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_TitleComments(_ 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_MESSAGE_FWDS(_ 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 Conversation_TitleReplies(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Video(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 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[67 * 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[68 * 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[69 * 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[70 * 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[71 * 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[72 * 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[73 * 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[74 * 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[75 * 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[76 * 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[77 * 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[78 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_MessageMusic(_ 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 Passport_Scans(_ 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 MessageTimer_Years(_ 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 ChatList_SelectedChats(_ 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 GroupInfo_ShowMoreMembers(_ 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 Stats_GroupTopAdminDeletions(_ 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 Media_ShareItem(_ 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 MessageTimer_Hours(_ 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 AttachmentMenu_SendVideo(_ 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 MessageTimer_ShortHours(_ 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) @@ -5696,342 +5702,337 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendItem(_ 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[91 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + public func OldChannels_Leave(_ 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 Notification_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, _1, _2) } - public func ForwardedContacts(_ 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[94 * 6 + Int(form.rawValue)]!, stringValue) } - public func PeopleNearby_ShowMorePeople(_ value: Int32) -> String { + public func ForwardedLocations(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, _1, _2) + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Seconds(_ value: Int32) -> String { + public func ChatList_MessageFiles(_ 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 Conversation_StatusMembers(_ value: Int32) -> String { + public func MessageTimer_ShortMinutes(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + public func Conversation_ContextViewReplies(_ 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 SharedMedia_Link(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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 Conversation_ContextMenuSelectAll(_ 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 UserCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Theme_UsersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Generic(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Hours(_ 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 PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func StickerPack_AddStickerCount(_ 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 Invitation_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) } public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_TitlePinnedMessages(_ 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 VoiceOver_Chat_MessagesSelected(_ 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 ChatListFilter_ShowMoreChats(_ 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 MuteFor_Hours(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 GroupInfo_ShowMoreMembers(_ 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 Map_ETAHours(_ 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 MuteExpires_Minutes(_ 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 Conversation_StatusOnline(_ 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 Call_ShortMinutes(_ 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 StickerPack_RemoveStickerCount(_ 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 SharedMedia_File(_ 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 Call_ShortSeconds(_ 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 Contacts_InviteContacts(_ 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 MessageTimer_ShortSeconds(_ 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 Contacts_ImportersCount(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[128 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - 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[129 * 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[130 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[100 * 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[131 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func VoiceChat_Panel_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocation_MenuChatsCount(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[132 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[134 * 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[135 * 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[136 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InstantPage_Views(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 Conversation_TitleReplies(_ 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 MessageTimer_ShortMinutes(_ 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 Stats_GroupTopInviterInvites(_ 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) - } - public func MuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_Search_Messages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[143 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[144 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, _1, _2) } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { + 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[145 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Minutes(_ value: Int32) -> String { + 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[107 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_Weeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[146 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteText_ContactsCountText(_ value: Int32) -> String { + public func UserCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[147 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + public func Conversation_StatusOnline(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[148 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortDays(_ 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[149 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[112 * 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[113 * 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[114 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_MessagesUnpinned(_ 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 MessageTimer_ShortSeconds(_ 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 PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, _2, _1, _3) } public func OldChannels_InactiveYear(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[150 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func Call_Minutes(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[151 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, _0, _1) } - public func OldChannels_GroupFormat(_ value: Int32) -> String { + 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[121 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[152 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + public func AttachmentMenu_SendGif(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[153 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_MessageViews(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[154 * 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[155 * 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[156 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[124 * 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[157 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupShowMoreTopAdmins(_ 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[126 * 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[127 * 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[128 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Days(_ 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 ChatListFilter_ShowMoreChats(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 PeopleNearby_ShowMorePeople(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, _1, _2) + } + 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[134 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MuteExpires_Minutes(_ 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 ForwardedContacts(_ 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 Stats_GroupTopPosterChars(_ 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 Wallpaper_DeleteConfirmation(_ 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 MuteExpires_Days(_ 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 Wallet_Updated_HoursAgo(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Contacts_InviteContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[143 * 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[144 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[145 * 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[146 * 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[147 * 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[148 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Conversation_ContextMenuSelectAll(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[149 * 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[150 * 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[151 * 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[152 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_Search_Messages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[153 * 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[154 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[155 * 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[156 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[157 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[159 * 6 + Int(form.rawValue)]!, _2, _1, _3) + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[159 * 6 + Int(form.rawValue)]!, stringValue) } public init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index 9fd5fa77cfbf17b464329873f14ed25f0a95bed4..6af7aea6c2c0b5e47b7de822ff66dc976661d658 100644 GIT binary patch delta 11315 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 Date: Mon, 14 Dec 2020 20:29:58 +0400 Subject: [PATCH 06/23] Voice Chat UI fixes --- .../Sources/VoiceChatParticipantItem.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift index 0a494adf50..8da704eb55 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift @@ -169,7 +169,8 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { private var peerPresenceManager: PeerPresenceStatusManager? private var layoutParams: (VoiceChatParticipantItem, ListViewItemLayoutParams, Bool, Bool)? - + private var wavesColor: UIColor? + init() { self.topStripeNode = ASDisplayNode() self.topStripeNode.isLayerBacked = true @@ -437,6 +438,7 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { return (layout, { [weak self] synchronousLoad, animated in if let strongSelf = self { strongSelf.layoutParams = (item, params, first, last) + strongSelf.wavesColor = wavesColor let nonExtractedRect = CGRect(origin: CGPoint(), size: CGSize(width: layout.contentSize.width - 16.0, height: layout.contentSize.height)) let extractedRect = CGRect(origin: CGPoint(), size: layout.contentSize).insetBy(dx: 16.0 + params.leftInset, dy: 0.0) @@ -576,7 +578,9 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { if value > 0.0 { audioLevelView.startAnimating() avatarScale = 1.03 + level * 0.13 - audioLevelView.setColor(wavesColor, animated: true) + if let wavesColor = strongSelf.wavesColor { + audioLevelView.setColor(wavesColor, animated: true) + } } else { audioLevelView.stopAnimating(duration: 0.5) avatarScale = 1.0 From 25e0c3592ea7cc26366e80ad780fcf476175b969 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 14 Dec 2020 21:11:03 +0400 Subject: [PATCH 07/23] Voice Chat UI fixes --- .../Sources/VoiceChatOverlayController.swift | 7 ++ .../TelegramUI/Sources/ChatController.swift | 13 ++- .../ChatPresentationInterfaceState.swift | 90 ++++++++++--------- .../Sources/PeerInfo/PeerInfoScreen.swift | 2 +- 4 files changed, 70 insertions(+), 42 deletions(-) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift index 7f50ce99a3..b76c49faa3 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift @@ -114,12 +114,16 @@ public final class VoiceChatOverlayController: ViewController { let center = CGPoint(x: actionButton.frame.width / 2.0, y: actionButton.frame.height / 2.0) leftButton.layer.animatePosition(from: leftButton.position, to: center, duration: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false, completion: { [weak leftButton] _ in leftButton?.isHidden = true + leftButton?.textNode.layer.removeAllAnimations() leftButton?.layer.removeAllAnimations() }) rightButton.layer.animatePosition(from: rightButton.position, to: center, duration: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false, completion: { [weak rightButton] _ in rightButton?.isHidden = true + rightButton?.textNode.layer.removeAllAnimations() rightButton?.layer.removeAllAnimations() }) + leftButton.textNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.1, removeOnCompletion: false) + rightButton.textNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.1, removeOnCompletion: false) let targetPosition = actionButton.position let sourcePoint = CGPoint(x: from.midX, y: from.midY) @@ -226,6 +230,9 @@ public final class VoiceChatOverlayController: ViewController { rightButton.isHidden = false rightButton.layer.animatePosition(from: center, to: rightButtonPosition, duration: 0.25, delay: 0.12, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) + + leftButton.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1, delay: 0.1) + rightButton.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1, delay: 0.1) } actionButton.update(snap: false, animated: true) diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 03c32bbf42..fd1a3d4ff6 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -229,6 +229,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G private var shareStatusDisposable: MetaDisposable? private var clearCacheDisposable: MetaDisposable? private var bankCardDisposable: MetaDisposable? + private var hasActiveGroupCallDisposable: Disposable? private let editingMessage = ValuePromise(nil, ignoreRepeated: true) private let startingBot = ValuePromise(false, ignoreRepeated: true) @@ -429,7 +430,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G self.stickerSettings = ChatInterfaceStickerSettings(loopAnimatedStickers: false) - self.presentationInterfaceState = ChatPresentationInterfaceState(chatWallpaper: self.presentationData.chatWallpaper, theme: self.presentationData.theme, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder, limitsConfiguration: context.currentLimitsConfiguration.with { $0 }, fontSize: self.presentationData.chatFontSize, bubbleCorners: self.presentationData.chatBubbleCorners, accountPeerId: context.account.peerId, mode: mode, chatLocation: chatLocation, subject: subject, peerNearbyData: peerNearbyData, pendingUnpinnedAllMessages: false, activeGroupCallInfo: nil) + self.presentationInterfaceState = ChatPresentationInterfaceState(chatWallpaper: self.presentationData.chatWallpaper, theme: self.presentationData.theme, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder, limitsConfiguration: context.currentLimitsConfiguration.with { $0 }, fontSize: self.presentationData.chatFontSize, bubbleCorners: self.presentationData.chatBubbleCorners, accountPeerId: context.account.peerId, mode: mode, chatLocation: chatLocation, subject: subject, peerNearbyData: peerNearbyData, pendingUnpinnedAllMessages: false, activeGroupCallInfo: nil, hasActiveGroupCall: false) var mediaAccessoryPanelVisibility = MediaAccessoryPanelVisibility.none if case .standard = mode { @@ -3338,6 +3339,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G self.keepPeerInfoScreenDataHotDisposable.dispose() self.preloadAvatarDisposable.dispose() self.peekTimerDisposable.dispose() + self.hasActiveGroupCallDisposable?.dispose() } public func updatePresentationMode(_ mode: ChatControllerPresentationMode) { @@ -6253,6 +6255,15 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let hasActiveCalls: Signal if let callManager = self.context.sharedContext.callManager as? PresentationCallManagerImpl { hasActiveCalls = callManager.hasActiveCalls + + self.hasActiveGroupCallDisposable = ((callManager.currentGroupCallSignal + |> map { call -> Bool in + return call != nil + }) |> deliverOnMainQueue).start(next: { [weak self] hasActiveGroupCall in + self?.updateChatPresentationInterfaceState(animated: true, interactive: false, { state in + return state.updatedHasActiveGroupCall(hasActiveGroupCall) + }) + }) } else { hasActiveCalls = .single(false) } diff --git a/submodules/TelegramUI/Sources/ChatPresentationInterfaceState.swift b/submodules/TelegramUI/Sources/ChatPresentationInterfaceState.swift index e36d10ff14..b3edea64b7 100644 --- a/submodules/TelegramUI/Sources/ChatPresentationInterfaceState.swift +++ b/submodules/TelegramUI/Sources/ChatPresentationInterfaceState.swift @@ -343,8 +343,9 @@ final class ChatPresentationInterfaceState: Equatable { let peerNearbyData: ChatPeerNearbyData? let pendingUnpinnedAllMessages: Bool let activeGroupCallInfo: ChatActiveGroupCallInfo? + let hasActiveGroupCall: Bool - init(chatWallpaper: TelegramWallpaper, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, limitsConfiguration: LimitsConfiguration, fontSize: PresentationFontSize, bubbleCorners: PresentationChatBubbleCorners, accountPeerId: PeerId, mode: ChatControllerPresentationMode, chatLocation: ChatLocation, subject: ChatControllerSubject?, peerNearbyData: ChatPeerNearbyData?, pendingUnpinnedAllMessages: Bool, activeGroupCallInfo: ChatActiveGroupCallInfo?) { + init(chatWallpaper: TelegramWallpaper, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, limitsConfiguration: LimitsConfiguration, fontSize: PresentationFontSize, bubbleCorners: PresentationChatBubbleCorners, accountPeerId: PeerId, mode: ChatControllerPresentationMode, chatLocation: ChatLocation, subject: ChatControllerSubject?, peerNearbyData: ChatPeerNearbyData?, pendingUnpinnedAllMessages: Bool, activeGroupCallInfo: ChatActiveGroupCallInfo?, hasActiveGroupCall: Bool) { self.interfaceState = ChatInterfaceState() self.inputTextPanelState = ChatTextInputPanelState() self.editMessageState = nil @@ -390,9 +391,10 @@ final class ChatPresentationInterfaceState: Equatable { self.peerNearbyData = peerNearbyData self.pendingUnpinnedAllMessages = pendingUnpinnedAllMessages self.activeGroupCallInfo = activeGroupCallInfo + self.hasActiveGroupCall = hasActiveGroupCall } - init(interfaceState: ChatInterfaceState, chatLocation: ChatLocation, renderedPeer: RenderedPeer?, isNotAccessible: Bool, explicitelyCanPinMessages: Bool, contactStatus: ChatContactStatus?, hasBots: Bool, isArchived: Bool, inputTextPanelState: ChatTextInputPanelState, editMessageState: ChatEditInterfaceMessageState?, recordedMediaPreview: ChatRecordedMediaPreview?, inputQueryResults: [ChatPresentationInputQueryKind: ChatPresentationInputQueryResult], inputMode: ChatInputMode, titlePanelContexts: [ChatTitlePanelContext], keyboardButtonsMessage: Message?, pinnedMessageId: MessageId?, pinnedMessage: ChatPinnedMessage?, peerIsBlocked: Bool, peerIsMuted: Bool, peerDiscussionId: PeerId?, peerGeoLocation: PeerGeoLocation?, callsAvailable: Bool, callsPrivate: Bool, slowmodeState: ChatSlowmodeState?, chatHistoryState: ChatHistoryNodeHistoryState?, botStartPayload: String?, urlPreview: (String, TelegramMediaWebpage)?, editingUrlPreview: (String, TelegramMediaWebpage)?, search: ChatSearchData?, searchQuerySuggestionResult: ChatPresentationInputQueryResult?, chatWallpaper: TelegramWallpaper, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, limitsConfiguration: LimitsConfiguration, fontSize: PresentationFontSize, bubbleCorners: PresentationChatBubbleCorners, accountPeerId: PeerId, mode: ChatControllerPresentationMode, hasScheduledMessages: Bool, subject: ChatControllerSubject?, peerNearbyData: ChatPeerNearbyData?, pendingUnpinnedAllMessages: Bool, activeGroupCallInfo: ChatActiveGroupCallInfo?) { + init(interfaceState: ChatInterfaceState, chatLocation: ChatLocation, renderedPeer: RenderedPeer?, isNotAccessible: Bool, explicitelyCanPinMessages: Bool, contactStatus: ChatContactStatus?, hasBots: Bool, isArchived: Bool, inputTextPanelState: ChatTextInputPanelState, editMessageState: ChatEditInterfaceMessageState?, recordedMediaPreview: ChatRecordedMediaPreview?, inputQueryResults: [ChatPresentationInputQueryKind: ChatPresentationInputQueryResult], inputMode: ChatInputMode, titlePanelContexts: [ChatTitlePanelContext], keyboardButtonsMessage: Message?, pinnedMessageId: MessageId?, pinnedMessage: ChatPinnedMessage?, peerIsBlocked: Bool, peerIsMuted: Bool, peerDiscussionId: PeerId?, peerGeoLocation: PeerGeoLocation?, callsAvailable: Bool, callsPrivate: Bool, slowmodeState: ChatSlowmodeState?, chatHistoryState: ChatHistoryNodeHistoryState?, botStartPayload: String?, urlPreview: (String, TelegramMediaWebpage)?, editingUrlPreview: (String, TelegramMediaWebpage)?, search: ChatSearchData?, searchQuerySuggestionResult: ChatPresentationInputQueryResult?, chatWallpaper: TelegramWallpaper, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, limitsConfiguration: LimitsConfiguration, fontSize: PresentationFontSize, bubbleCorners: PresentationChatBubbleCorners, accountPeerId: PeerId, mode: ChatControllerPresentationMode, hasScheduledMessages: Bool, subject: ChatControllerSubject?, peerNearbyData: ChatPeerNearbyData?, pendingUnpinnedAllMessages: Bool, activeGroupCallInfo: ChatActiveGroupCallInfo?, hasActiveGroupCall: Bool) { self.interfaceState = interfaceState self.chatLocation = chatLocation self.renderedPeer = renderedPeer @@ -438,6 +440,7 @@ final class ChatPresentationInterfaceState: Equatable { self.peerNearbyData = peerNearbyData self.pendingUnpinnedAllMessages = pendingUnpinnedAllMessages self.activeGroupCallInfo = activeGroupCallInfo + self.hasActiveGroupCall = hasActiveGroupCall } static func ==(lhs: ChatPresentationInterfaceState, rhs: ChatPresentationInterfaceState) -> Bool { @@ -588,35 +591,38 @@ final class ChatPresentationInterfaceState: Equatable { if lhs.activeGroupCallInfo != rhs.activeGroupCallInfo { return false } + if lhs.hasActiveGroupCall != rhs.hasActiveGroupCall { + return false + } return true } func updatedInterfaceState(_ f: (ChatInterfaceState) -> ChatInterfaceState) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: f(self.interfaceState), chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: f(self.interfaceState), chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedPeer(_ f: (RenderedPeer?) -> RenderedPeer?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: f(self.renderedPeer), isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: f(self.renderedPeer), isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedIsNotAccessible(_ isNotAccessible: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedExplicitelyCanPinMessages(_ explicitelyCanPinMessages: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedContactStatus(_ contactStatus: ChatContactStatus?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedHasBots(_ hasBots: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedIsArchived(_ isArchived: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedInputQueryResult(queryKind: ChatPresentationInputQueryKind, _ f: (ChatPresentationInputQueryResult?) -> ChatPresentationInputQueryResult?) -> ChatPresentationInterfaceState { @@ -627,127 +633,131 @@ final class ChatPresentationInterfaceState: Equatable { } else { inputQueryResults.removeValue(forKey: queryKind) } - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedInputTextPanelState(_ f: (ChatTextInputPanelState) -> ChatTextInputPanelState) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: f(self.inputTextPanelState), editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: f(self.inputTextPanelState), editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedEditMessageState(_ editMessageState: ChatEditInterfaceMessageState?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedRecordedMediaPreview(_ recordedMediaPreview: ChatRecordedMediaPreview?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedInputMode(_ f: (ChatInputMode) -> ChatInputMode) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: f(self.inputMode), titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: f(self.inputMode), titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedTitlePanelContext(_ f: ([ChatTitlePanelContext]) -> [ChatTitlePanelContext]) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: f(self.titlePanelContexts), keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: f(self.titlePanelContexts), keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedKeyboardButtonsMessage(_ message: Message?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: message, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: message, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedPinnedMessageId(_ pinnedMessageId: MessageId?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedPinnedMessage(_ pinnedMessage: ChatPinnedMessage?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedPeerIsBlocked(_ peerIsBlocked: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedPeerIsMuted(_ peerIsMuted: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedPeerDiscussionId(_ peerDiscussionId: PeerId?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedPeerGeoLocation(_ peerGeoLocation: PeerGeoLocation?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedCallsAvailable(_ callsAvailable: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedCallsPrivate(_ callsPrivate: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedSlowmodeState(_ slowmodeState: ChatSlowmodeState?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedBotStartPayload(_ botStartPayload: String?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedChatHistoryState(_ chatHistoryState: ChatHistoryNodeHistoryState?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedUrlPreview(_ urlPreview: (String, TelegramMediaWebpage)?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedEditingUrlPreview(_ editingUrlPreview: (String, TelegramMediaWebpage)?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedSearch(_ search: ChatSearchData?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedSearchQuerySuggestionResult(_ f: (ChatPresentationInputQueryResult?) -> ChatPresentationInputQueryResult?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: f(self.searchQuerySuggestionResult), chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: f(self.searchQuerySuggestionResult), chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedMode(_ mode: ChatControllerPresentationMode) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedTheme(_ theme: PresentationTheme) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedStrings(_ strings: PresentationStrings) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedDateTimeFormat(_ dateTimeFormat: PresentationDateTimeFormat) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedChatWallpaper(_ chatWallpaper: TelegramWallpaper) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedBubbleCorners(_ bubbleCorners: PresentationChatBubbleCorners) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedHasScheduledMessages(_ hasScheduledMessages: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedPendingUnpinnedAllMessages(_ pendingUnpinnedAllMessages: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) } func updatedActiveGroupCallInfo(_ activeGroupCallInfo: ChatActiveGroupCallInfo?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: activeGroupCallInfo) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: activeGroupCallInfo, hasActiveGroupCall: self.hasActiveGroupCall) + } + + func updatedHasActiveGroupCall(_ hasActiveGroupCall: Bool) -> ChatPresentationInterfaceState { + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, subject: self.subject, peerNearbyData: self.peerNearbyData, pendingUnpinnedAllMessages: self.pendingUnpinnedAllMessages, activeGroupCallInfo: self.activeGroupCallInfo, hasActiveGroupCall: hasActiveGroupCall) } } diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index b0d464e03e..9795617ca1 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -459,7 +459,7 @@ final class PeerInfoSelectionPanelNode: ASDisplayNode { self.backgroundNode.backgroundColor = presentationData.theme.rootController.navigationBar.backgroundColor self.separatorNode.backgroundColor = presentationData.theme.rootController.navigationBar.separatorColor - let interfaceState = ChatPresentationInterfaceState(chatWallpaper: .color(0), theme: presentationData.theme, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, limitsConfiguration: .defaultValue, fontSize: .regular, bubbleCorners: PresentationChatBubbleCorners(mainRadius: 16.0, auxiliaryRadius: 8.0, mergeBubbleCorners: true), accountPeerId: self.context.account.peerId, mode: .standard(previewing: false), chatLocation: .peer(self.peerId), subject: nil, peerNearbyData: nil, pendingUnpinnedAllMessages: false, activeGroupCallInfo: nil) + let interfaceState = ChatPresentationInterfaceState(chatWallpaper: .color(0), theme: presentationData.theme, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, limitsConfiguration: .defaultValue, fontSize: .regular, bubbleCorners: PresentationChatBubbleCorners(mainRadius: 16.0, auxiliaryRadius: 8.0, mergeBubbleCorners: true), accountPeerId: self.context.account.peerId, mode: .standard(previewing: false), chatLocation: .peer(self.peerId), subject: nil, peerNearbyData: nil, pendingUnpinnedAllMessages: false, activeGroupCallInfo: nil, hasActiveGroupCall: false) let panelHeight = self.selectionPanel.updateLayout(width: layout.size.width, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right, additionalSideInsets: UIEdgeInsets(), maxHeight: 0.0, isSecondary: false, transition: transition, interfaceState: interfaceState, metrics: layout.metrics) transition.updateFrame(node: self.selectionPanel, frame: CGRect(origin: CGPoint(), size: CGSize(width: layout.size.width, height: panelHeight))) From c86c47bbd29fcb22c97bb99ac423c73716bb1275 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 14 Dec 2020 21:15:30 +0400 Subject: [PATCH 08/23] Voice Chat UI fixes --- submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift index 6f3037d426..9ca4138c42 100644 --- a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift @@ -1365,7 +1365,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { } let mediaInputDisabled: Bool - if let _ = interfaceState.activeGroupCallInfo { + if let _ = interfaceState.hasActiveGroupCall { mediaInputDisabled = true } else if let channel = interfaceState.renderedPeer?.peer as? TelegramChannel, channel.hasBannedPermission(.banSendMedia) != nil { mediaInputDisabled = true From d466fe3be7fe3fa141bb1be4c25fe80f3c337b03 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 14 Dec 2020 21:23:56 +0400 Subject: [PATCH 09/23] Fix build --- submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift index 9ca4138c42..4c4a009c87 100644 --- a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift @@ -1365,7 +1365,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { } let mediaInputDisabled: Bool - if let _ = interfaceState.hasActiveGroupCall { + if interfaceState.hasActiveGroupCall { mediaInputDisabled = true } else if let channel = interfaceState.renderedPeer?.peer as? TelegramChannel, channel.hasBannedPermission(.banSendMedia) != nil { mediaInputDisabled = true From d529378a744b3ba89676a02d387c3aa95e655a83 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 14 Dec 2020 23:41:22 +0400 Subject: [PATCH 10/23] Various fixes --- .../Telegram-iOS/en.lproj/Localizable.strings | 3 + .../Sources/VoiceChatParticipantItem.swift | 1 - .../DefaultDarkPresentationTheme.swift | 4 +- .../DefaultDarkTintedPresentationTheme.swift | 4 +- .../Sources/DefaultDayPresentationTheme.swift | 8 +- .../Sources/PresentationStrings.swift | 5696 +++++++++-------- .../Resources/PresentationStrings.mapping | Bin 162169 -> 162258 bytes .../TelegramUI/Sources/ChatController.swift | 69 +- .../ChatMessageAnimatedStickerItemNode.swift | 4 +- 9 files changed, 2925 insertions(+), 2864 deletions(-) diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index 6af318506b..19c58e5870 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -5993,6 +5993,9 @@ Sorry for the inconvenience."; "VoiceChat.InviteMemberToGroupFirstText" = "%1$@ isn't a member of \"%2$@\" yet. Add them to the group?"; "VoiceChat.InviteMemberToGroupFirstAdd" = "Add"; +"VoiceChat.CreateNewVoiceChatText" = "Voice chat ended. Start a new one?"; +"VoiceChat.CreateNewVoiceChatStart" = "Start"; + "CHAT_VOICECHAT_START" = "%1$@ has started voice chat in the group %2$@"; "CHAT_VOICECHAT_INVITE" = "%1$@ has invited %3$@ in the group %2$@"; "CHAT_VOICECHAT_INVITE_YOU" = "%1$@ has invited you to voice chat in the group %2$@"; diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift index 8da704eb55..2fe5f9e7d8 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift @@ -585,7 +585,6 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { audioLevelView.stopAnimating(duration: 0.5) avatarScale = 1.0 } - print(value) let transition: ContainedViewLayoutTransition = .animated(duration: 0.15, curve: .easeInOut) transition.updateTransformScale(node: strongSelf.avatarNode, scale: avatarScale, beginWithCurrentState: true) diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift index 57901a166d..798ac27100 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift @@ -413,8 +413,8 @@ public func makeDefaultDarkPresentationTheme(extendingThemeReference: Presentati selectionControlColors: PresentationThemeFillStrokeForeground(fillColor: UIColor(rgb: 0xffffff), strokeColor: UIColor(rgb: 0xffffff), foregroundColor: UIColor(rgb: 0x000000)), deliveryFailedColors: PresentationThemeFillForeground(fillColor: UIColor(rgb: 0xeb5545), foregroundColor: UIColor(rgb: 0xffffff)), mediaHighlightOverlayColor: UIColor(white: 1.0, alpha: 0.6), - stickerPlaceholderColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0x000000, alpha: 0.5), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.5)), - stickerPlaceholderShimmerColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0x000000, alpha: 0.5), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.5)) + stickerPlaceholderColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0xffffff, alpha: 0.1), withoutWallpaper: UIColor(rgb: 0xffffff, alpha: 0.1)), + stickerPlaceholderShimmerColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0xffffff, alpha: 0.1), withoutWallpaper: UIColor(rgb: 0xffffff, alpha: 0.1)) ) let serviceMessage = PresentationThemeServiceMessage( diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift index ef439e9114..4b8bb06293 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift @@ -668,8 +668,8 @@ public func makeDefaultDarkTintedPresentationTheme(extendingThemeReference: Pres selectionControlColors: PresentationThemeFillStrokeForeground(fillColor: accentColor, strokeColor: .white, foregroundColor: .white), deliveryFailedColors: PresentationThemeFillForeground(fillColor: UIColor(rgb: 0xff6767), foregroundColor: .white), mediaHighlightOverlayColor: UIColor(white: 1.0, alpha: 0.6), - stickerPlaceholderColor: PresentationThemeVariableColor(color: additionalBackgroundColor.withAlphaComponent(0.5)), - stickerPlaceholderShimmerColor: PresentationThemeVariableColor(color: additionalBackgroundColor.withAlphaComponent(0.5)) + stickerPlaceholderColor: PresentationThemeVariableColor(color: mainBackgroundColor.withAlphaComponent(0.5)), + stickerPlaceholderShimmerColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xffffff, alpha: 0.05)) ) let serviceMessage = PresentationThemeServiceMessage( diff --git a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift index af104defa3..225c5cc1ea 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift @@ -549,8 +549,8 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio selectionControlColors: PresentationThemeFillStrokeForeground(fillColor: UIColor(rgb: 0x007ee5), strokeColor: UIColor(rgb: 0xc7c7cc), foregroundColor: UIColor(rgb: 0xffffff)), deliveryFailedColors: PresentationThemeFillForeground(fillColor: UIColor(rgb: 0xff3b30), foregroundColor: UIColor(rgb: 0xffffff)), mediaHighlightOverlayColor: UIColor(white: 1.0, alpha: 0.6), - stickerPlaceholderColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor, withoutWallpaper: UIColor(rgb: 0x748391, alpha: 0.45)), - stickerPlaceholderShimmerColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor, withoutWallpaper: UIColor(rgb: 0x748391, alpha: 0.45)) + stickerPlaceholderColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor.withAlphaComponent(0.3), withoutWallpaper: UIColor(rgb: 0x748391, alpha: 0.25)), + stickerPlaceholderShimmerColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0xffffff, alpha: 0.2), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.1)) ) let messageDay = PresentationThemeChatMessage( @@ -617,8 +617,8 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio selectionControlColors: PresentationThemeFillStrokeForeground(fillColor: UIColor(rgb: 0x007ee5), strokeColor: UIColor(rgb: 0xc7c7cc), foregroundColor: UIColor(rgb: 0xffffff)), deliveryFailedColors: PresentationThemeFillForeground(fillColor: UIColor(rgb: 0xff3b30), foregroundColor: UIColor(rgb: 0xffffff)), mediaHighlightOverlayColor: UIColor(rgb: 0xffffff, alpha: 0.6), - stickerPlaceholderColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor, withoutWallpaper: UIColor(rgb: 0x748391, alpha: 0.45)), - stickerPlaceholderShimmerColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor, withoutWallpaper: UIColor(rgb: 0x748391, alpha: 0.45)) + stickerPlaceholderColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor.withAlphaComponent(0.3), withoutWallpaper: UIColor(rgb: 0xf7f7f7)), + stickerPlaceholderShimmerColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0xffffff, alpha: 0.2), withoutWallpaper: UIColor(rgb: 0xffffff, alpha: 0.5)) ) let serviceMessage = PresentationThemeServiceMessage( diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 654e9521d4..0b573d3e71 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -2234,3085 +2234,3084 @@ public final class PresentationStrings: Equatable { public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1904]! } public var Wallet_Month_GenMay: String { return self._s[1905]! } public var Common_of: String { return self._s[1906]! } - public var PeerInfo_ButtonUnmute: String { return self._s[1909]! } + public var VoiceChat_CreateNewVoiceChatText: String { return self._s[1907]! } + public var PeerInfo_ButtonUnmute: String { return self._s[1910]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1910]!, self._r[1910]!, [_0]) + return formatWithArgumentRanges(self._s[1911]!, self._r[1911]!, [_0]) } - public var ChatList_AddChatsToFolder: String { return self._s[1911]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[1912]! } - public var Settings_Title: String { return self._s[1914]! } - public var AutoDownloadSettings_Contacts: String { return self._s[1916]! } - public var Appearance_BubbleCornersSetting: String { return self._s[1917]! } - public var Privacy_Calls_AlwaysAllow: String { return self._s[1918]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1920]! } - public var WallpaperPreview_CropBottomText: String { return self._s[1921]! } - public var SecretTimer_VideoDescription: String { return self._s[1922]! } - public var WallpaperPreview_Blurred: String { return self._s[1923]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[1924]! } - public var ChatListFolder_ExcludedSectionHeader: String { return self._s[1926]! } - public var DialogList_PasscodeLockHelp: String { return self._s[1927]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[1928]! } - public var NetworkUsageSettings_CallDataSection: String { return self._s[1929]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[1930]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[1931]! } - public var Passport_FieldAddressTranslationHelp: String { return self._s[1932]! } - public var SocksProxySetup_Connection: String { return self._s[1933]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[1934]! } - public var Contacts_PermissionsAllowInSettings: String { return self._s[1935]! } - public var Conversation_Unpin: String { return self._s[1936]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[1937]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[1938]! } - public var Call_ReportSkip: String { return self._s[1939]! } + public var ChatList_AddChatsToFolder: String { return self._s[1912]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[1913]! } + public var Settings_Title: String { return self._s[1915]! } + public var AutoDownloadSettings_Contacts: String { return self._s[1917]! } + public var Appearance_BubbleCornersSetting: String { return self._s[1918]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[1919]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1921]! } + public var WallpaperPreview_CropBottomText: String { return self._s[1922]! } + public var SecretTimer_VideoDescription: String { return self._s[1923]! } + public var WallpaperPreview_Blurred: String { return self._s[1924]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[1925]! } + public var ChatListFolder_ExcludedSectionHeader: String { return self._s[1927]! } + public var DialogList_PasscodeLockHelp: String { return self._s[1928]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[1929]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[1930]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[1931]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[1932]! } + public var Passport_FieldAddressTranslationHelp: String { return self._s[1933]! } + public var SocksProxySetup_Connection: String { return self._s[1934]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[1935]! } + public var Contacts_PermissionsAllowInSettings: String { return self._s[1936]! } + public var Conversation_Unpin: String { return self._s[1937]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[1938]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[1939]! } + public var Call_ReportSkip: String { return self._s[1940]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1940]!, self._r[1940]!, [_0]) + return formatWithArgumentRanges(self._s[1941]!, self._r[1941]!, [_0]) } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1942]!, self._r[1942]!, [_0]) + return formatWithArgumentRanges(self._s[1943]!, self._r[1943]!, [_0]) } - public var AutoNightTheme_Automatic: String { return self._s[1943]! } - public var Wallet_TransactionInfo_AddressCopied: String { return self._s[1944]! } - public var Wallet_Month_GenMarch: String { return self._s[1945]! } - public var Passport_Language_az: String { return self._s[1946]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[1947]! } - public var Watch_UserInfo_Unmute: String { return self._s[1948]! } - public var Channel_Stickers_YourStickers: String { return self._s[1949]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[1950]! } - public var Tour_Text1: String { return self._s[1951]! } - public var Common_Delete: String { return self._s[1952]! } - public var Settings_EditPhoto: String { return self._s[1953]! } - public var Common_Edit: String { return self._s[1954]! } - public var ShareMenu_ShareTo: String { return self._s[1956]! } - public var Passport_Identity_ExpiryDate: String { return self._s[1957]! } + public var AutoNightTheme_Automatic: String { return self._s[1944]! } + public var Wallet_TransactionInfo_AddressCopied: String { return self._s[1945]! } + public var Wallet_Month_GenMarch: String { return self._s[1946]! } + public var Passport_Language_az: String { return self._s[1947]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[1948]! } + public var Watch_UserInfo_Unmute: String { return self._s[1949]! } + public var Channel_Stickers_YourStickers: String { return self._s[1950]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[1951]! } + public var Tour_Text1: String { return self._s[1952]! } + public var Common_Delete: String { return self._s[1953]! } + public var Settings_EditPhoto: String { return self._s[1954]! } + public var Common_Edit: String { return self._s[1955]! } + public var ShareMenu_ShareTo: String { return self._s[1957]! } + public var Passport_Identity_ExpiryDate: String { return self._s[1958]! } public func Channel_AdminLog_MutedNewMembers(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1958]!, self._r[1958]!, [_1]) + return formatWithArgumentRanges(self._s[1959]!, self._r[1959]!, [_1]) } - public var Preview_DeleteGif: String { return self._s[1959]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[1960]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[1961]! } - public var Conversation_ViewReply: String { return self._s[1962]! } - public var Stats_LoadingText: String { return self._s[1963]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[1964]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[1965]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[1966]! } + public var Preview_DeleteGif: String { return self._s[1960]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[1961]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[1962]! } + public var Conversation_ViewReply: String { return self._s[1963]! } + public var Stats_LoadingText: String { return self._s[1964]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[1965]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[1966]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[1967]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1967]!, self._r[1967]!, [_0]) - } - public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1968]!, self._r[1968]!, [_0]) } + public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1969]!, self._r[1969]!, [_0]) + } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1970]!, self._r[1970]!, [_0]) + return formatWithArgumentRanges(self._s[1971]!, self._r[1971]!, [_0]) } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[1971]! } - public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1974]! } - public var IntentsSettings_MainAccount: String { return self._s[1975]! } - public var Group_MessagePhotoRemoved: String { return self._s[1978]! } - public var Conversation_ContextMenuSelect: String { return self._s[1979]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[1981]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[1982]! } - public var Contacts_PermissionsEnable: String { return self._s[1983]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[1984]! } - public var Common_NotNow: String { return self._s[1985]! } - public var Notification_CreatedChannel: String { return self._s[1986]! } - public var Stats_ViewsBySourceTitle: String { return self._s[1988]! } - public var Appearance_AppIconClassic: String { return self._s[1989]! } - public var PhotoEditor_QualityTool: String { return self._s[1990]! } - public var ClearCache_ClearCache: String { return self._s[1991]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[1992]! } - public var AutoDownloadSettings_Videos: String { return self._s[1993]! } - public var GroupPermission_Duration: String { return self._s[1994]! } - public var ChatList_Read: String { return self._s[1995]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[1972]! } + public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1975]! } + public var IntentsSettings_MainAccount: String { return self._s[1976]! } + public var Group_MessagePhotoRemoved: String { return self._s[1979]! } + public var Conversation_ContextMenuSelect: String { return self._s[1980]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[1982]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[1983]! } + public var Contacts_PermissionsEnable: String { return self._s[1984]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[1985]! } + public var Common_NotNow: String { return self._s[1986]! } + public var Notification_CreatedChannel: String { return self._s[1987]! } + public var Stats_ViewsBySourceTitle: String { return self._s[1989]! } + public var Appearance_AppIconClassic: String { return self._s[1990]! } + public var PhotoEditor_QualityTool: String { return self._s[1991]! } + public var ClearCache_ClearCache: String { return self._s[1992]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[1993]! } + public var AutoDownloadSettings_Videos: String { return self._s[1994]! } + public var GroupPermission_Duration: String { return self._s[1995]! } + public var ChatList_Read: String { return self._s[1996]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1996]!, self._r[1996]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1997]!, self._r[1997]!, [_1, _2]) } - public var CallFeedback_Send: String { return self._s[1997]! } - public var Channel_Stickers_Searching: String { return self._s[1998]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[1999]! } - public var FastTwoStepSetup_HintSection: String { return self._s[2000]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2001]! } - public var EditTheme_CreateTitle: String { return self._s[2002]! } - public var Application_Name: String { return self._s[2003]! } - public var Paint_Stickers: String { return self._s[2004]! } - public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2005]! } - public var Call_StatusFailed: String { return self._s[2006]! } - public var Stickers_FavoriteStickers: String { return self._s[2007]! } - public var ClearCache_Clear: String { return self._s[2008]! } - public var Passport_Language_mn: String { return self._s[2009]! } - public var WallpaperPreview_PreviewTopText: String { return self._s[2010]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[2011]! } - public var TwoFactorSetup_Hint_Text: String { return self._s[2014]! } - public var WallpaperPreview_PatternIntensity: String { return self._s[2015]! } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2016]! } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2017]! } - public var Passport_Address_AddBankStatement: String { return self._s[2018]! } + public var CallFeedback_Send: String { return self._s[1998]! } + public var Channel_Stickers_Searching: String { return self._s[1999]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[2000]! } + public var FastTwoStepSetup_HintSection: String { return self._s[2001]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2002]! } + public var EditTheme_CreateTitle: String { return self._s[2003]! } + public var Application_Name: String { return self._s[2004]! } + public var Paint_Stickers: String { return self._s[2005]! } + public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[2006]! } + public var Call_StatusFailed: String { return self._s[2007]! } + public var Stickers_FavoriteStickers: String { return self._s[2008]! } + public var ClearCache_Clear: String { return self._s[2009]! } + public var Passport_Language_mn: String { return self._s[2010]! } + public var WallpaperPreview_PreviewTopText: String { return self._s[2011]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[2012]! } + public var TwoFactorSetup_Hint_Text: String { return self._s[2015]! } + public var WallpaperPreview_PatternIntensity: String { return self._s[2016]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2017]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2018]! } + public var Passport_Address_AddBankStatement: String { return self._s[2019]! } public func Conversation_TitleRepliesFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2020]!, self._r[2020]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2021]!, self._r[2021]!, [_1, _2]) } - public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2021]! } - public var UserInfo_ShareContact: String { return self._s[2022]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[2023]! } - public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[2025]! } - public var Call_RateCall: String { return self._s[2026]! } - public var Contacts_AccessDeniedError: String { return self._s[2027]! } - public var Invite_ChannelsTooMuch: String { return self._s[2028]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2029]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[2030]! } - public var Cache_NoLimit: String { return self._s[2032]! } - public var Conversation_EmptyPlaceholder: String { return self._s[2036]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2037]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2039]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[2040]! } + public var ChatListFolderSettings_RecommendedNewFolder: String { return self._s[2022]! } + public var UserInfo_ShareContact: String { return self._s[2023]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[2024]! } + public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[2026]! } + public var Call_RateCall: String { return self._s[2027]! } + public var Contacts_AccessDeniedError: String { return self._s[2028]! } + public var Invite_ChannelsTooMuch: String { return self._s[2029]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[2030]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[2031]! } + public var Cache_NoLimit: String { return self._s[2033]! } + public var Conversation_EmptyPlaceholder: String { return self._s[2037]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2038]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2040]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[2041]! } public func PUSH_VIDEO_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2041]!, self._r[2041]!, [_1]) + return formatWithArgumentRanges(self._s[2042]!, self._r[2042]!, [_1]) } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2042]! } - public var Theme_ThemeChanged: String { return self._s[2043]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2045]! } - public var AutoDownloadSettings_MediaTypes: String { return self._s[2046]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[2043]! } + public var Theme_ThemeChanged: String { return self._s[2044]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2046]! } + public var AutoDownloadSettings_MediaTypes: String { return self._s[2047]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2047]!, self._r[2047]!, [_0]) + return formatWithArgumentRanges(self._s[2048]!, self._r[2048]!, [_0]) } - public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2048]! } - public var Passport_Language_da: String { return self._s[2050]! } - public var Wallet_Receive_AmountText: String { return self._s[2051]! } - public var Chat_SlowmodeSendError: String { return self._s[2052]! } - public var Application_Update: String { return self._s[2054]! } - public var SocksProxySetup_SaveProxy: String { return self._s[2055]! } + public var Channel_AdminLog_InfoPanelTitle: String { return self._s[2049]! } + public var Passport_Language_da: String { return self._s[2051]! } + public var Wallet_Receive_AmountText: String { return self._s[2052]! } + public var Chat_SlowmodeSendError: String { return self._s[2053]! } + public var Application_Update: String { return self._s[2055]! } + public var SocksProxySetup_SaveProxy: String { return self._s[2056]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2056]!, self._r[2056]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2057]!, self._r[2057]!, [_1, _2]) } - public var Wallet_Receive_ShareAddress: String { return self._s[2058]! } - public var Privacy_AddNewPeer: String { return self._s[2059]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2061]! } - public var Wallet_Receive_CommentInfo: String { return self._s[2062]! } - public var Channel_Members_Title: String { return self._s[2063]! } - public var Settings_LogoutConfirmationText: String { return self._s[2064]! } - public var Chat_UnsendMyMessages: String { return self._s[2065]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2067]! } - public var ChatListFilter_AddChatsTitle: String { return self._s[2068]! } - public var Passport_FloodError: String { return self._s[2069]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[2070]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2071]! } - public var CallSettings_TabIconDescription: String { return self._s[2072]! } - public var Wallet_Intro_Text: String { return self._s[2073]! } - public var Group_Setup_HistoryHeader: String { return self._s[2075]! } - public var TwoStepAuth_EmailTitle: String { return self._s[2076]! } - public var GroupInfo_Permissions_Removed: String { return self._s[2077]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[2078]! } + public var Wallet_Receive_ShareAddress: String { return self._s[2059]! } + public var Privacy_AddNewPeer: String { return self._s[2060]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[2062]! } + public var Wallet_Receive_CommentInfo: String { return self._s[2063]! } + public var Channel_Members_Title: String { return self._s[2064]! } + public var Settings_LogoutConfirmationText: String { return self._s[2065]! } + public var Chat_UnsendMyMessages: String { return self._s[2066]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2068]! } + public var ChatListFilter_AddChatsTitle: String { return self._s[2069]! } + public var Passport_FloodError: String { return self._s[2070]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[2071]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2072]! } + public var CallSettings_TabIconDescription: String { return self._s[2073]! } + public var Wallet_Intro_Text: String { return self._s[2074]! } + public var Group_Setup_HistoryHeader: String { return self._s[2076]! } + public var TwoStepAuth_EmailTitle: String { return self._s[2077]! } + public var GroupInfo_Permissions_Removed: String { return self._s[2078]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[2079]! } public func Channel_AdminLog_AllowedNewMembersToSpeak(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2079]!, self._r[2079]!, [_1]) + return formatWithArgumentRanges(self._s[2080]!, self._r[2080]!, [_1]) } - public var Contacts_Title: String { return self._s[2081]! } + public var Contacts_Title: String { return self._s[2082]! } public func Notification_Invited(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2083]!, self._r[2083]!, [_0, _1]) } - public var ChatList_PeerTypeBot: String { return self._s[2085]! } + public var ChatList_PeerTypeBot: String { return self._s[2086]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2086]!, self._r[2086]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2087]!, self._r[2087]!, [_1, _2]) } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2087]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[2088]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2089]!, self._r[2089]!, [_1, _2, _3]) } - public var Camera_PhotoMode: String { return self._s[2090]! } + public var Camera_PhotoMode: String { return self._s[2091]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2091]!, self._r[2091]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2092]!, self._r[2092]!, [_1, _2, _3]) } - public var ContactInfo_PhoneLabelPager: String { return self._s[2092]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[2093]! } - public var Call_CallAgain: String { return self._s[2094]! } - public var TwoStepAuth_PasswordSet: String { return self._s[2095]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[2093]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[2094]! } + public var Call_CallAgain: String { return self._s[2095]! } + public var TwoStepAuth_PasswordSet: String { return self._s[2096]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2096]!, self._r[2096]!, [_0]) + return formatWithArgumentRanges(self._s[2097]!, self._r[2097]!, [_0]) } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2097]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2098]! } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2099]! } - public var Group_LeaveGroup: String { return self._s[2100]! } - public var Wallet_WordImport_IncorrectText: String { return self._s[2103]! } - public var GroupInfo_LabelAdmin: String { return self._s[2104]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2106]! } - public var Notification_PassportValuePersonalDetails: String { return self._s[2107]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[2098]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2099]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2100]! } + public var Group_LeaveGroup: String { return self._s[2101]! } + public var Wallet_WordImport_IncorrectText: String { return self._s[2104]! } + public var GroupInfo_LabelAdmin: String { return self._s[2105]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[2107]! } + public var Notification_PassportValuePersonalDetails: String { return self._s[2108]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2108]!, self._r[2108]!, [_0]) + return formatWithArgumentRanges(self._s[2109]!, self._r[2109]!, [_0]) } - public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2109]! } - public var Appearance_Preview: String { return self._s[2110]! } - public var VoiceOver_Chat_Contact: String { return self._s[2111]! } - public var Passport_Language_th: String { return self._s[2112]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2115]! } - public var LastSeen_Offline: String { return self._s[2118]! } - public var Map_OpenInHereMaps: String { return self._s[2119]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2120]! } - public var AutoDownloadSettings_Reset: String { return self._s[2122]! } - public var Wallet_Month_GenFebruary: String { return self._s[2123]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[2124]! } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[2125]! } + public var Stats_GroupNewMembersBySourceTitle: String { return self._s[2110]! } + public var Appearance_Preview: String { return self._s[2111]! } + public var VoiceOver_Chat_Contact: String { return self._s[2112]! } + public var Passport_Language_th: String { return self._s[2113]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2116]! } + public var LastSeen_Offline: String { return self._s[2119]! } + public var Map_OpenInHereMaps: String { return self._s[2120]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[2121]! } + public var AutoDownloadSettings_Reset: String { return self._s[2123]! } + public var Wallet_Month_GenFebruary: String { return self._s[2124]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[2125]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[2126]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2126]!, self._r[2126]!, [_0]) - } - public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2127]!, self._r[2127]!, [_0]) } - public var Passport_Identity_EditDriversLicense: String { return self._s[2128]! } - public var ChatListFolder_NameNonMuted: String { return self._s[2129]! } - public var Username_Placeholder: String { return self._s[2130]! } + public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2128]!, self._r[2128]!, [_0]) + } + public var Passport_Identity_EditDriversLicense: String { return self._s[2129]! } + public var ChatListFolder_NameNonMuted: String { return self._s[2130]! } + public var Username_Placeholder: String { return self._s[2131]! } public func PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2131]!, self._r[2131]!, [_1]) + return formatWithArgumentRanges(self._s[2132]!, self._r[2132]!, [_1]) } - public var Wallet_Send_NetworkErrorText: String { return self._s[2132]! } - public var Checkout_NewCard_SaveInfo: String { return self._s[2133]! } - public var Passport_Language_it: String { return self._s[2134]! } + public var Wallet_Send_NetworkErrorText: String { return self._s[2133]! } + public var Checkout_NewCard_SaveInfo: String { return self._s[2134]! } + public var Passport_Language_it: String { return self._s[2135]! } public func Channel_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_1, _2]) } - public var NotificationsSound_Pulse: String { return self._s[2136]! } - public var MessagePoll_NoVotes: String { return self._s[2140]! } - public var Message_Wallpaper: String { return self._s[2141]! } - public var Wallet_Created_Proceed: String { return self._s[2142]! } - public var Appearance_Other: String { return self._s[2143]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[2145]! } - public var Group_PublicLink_Placeholder: String { return self._s[2148]! } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2149]! } - public var VoiceOver_Recording_StopAndPreview: String { return self._s[2150]! } - public var ChatListFolder_NameBots: String { return self._s[2151]! } - public var Conversation_StopPollConfirmation: String { return self._s[2152]! } - public var UserInfo_DeleteContact: String { return self._s[2153]! } + public var NotificationsSound_Pulse: String { return self._s[2137]! } + public var MessagePoll_NoVotes: String { return self._s[2141]! } + public var Message_Wallpaper: String { return self._s[2142]! } + public var Wallet_Created_Proceed: String { return self._s[2143]! } + public var Appearance_Other: String { return self._s[2144]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[2146]! } + public var Group_PublicLink_Placeholder: String { return self._s[2149]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[2150]! } + public var VoiceOver_Recording_StopAndPreview: String { return self._s[2151]! } + public var ChatListFolder_NameBots: String { return self._s[2152]! } + public var Conversation_StopPollConfirmation: String { return self._s[2153]! } + public var UserInfo_DeleteContact: String { return self._s[2154]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2154]!, self._r[2154]!, [_0]) + return formatWithArgumentRanges(self._s[2155]!, self._r[2155]!, [_0]) } - public var Wallpaper_Wallpaper: String { return self._s[2156]! } + public var Wallpaper_Wallpaper: String { return self._s[2157]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2157]!, self._r[2157]!, [_1]) + return formatWithArgumentRanges(self._s[2158]!, self._r[2158]!, [_1]) } - public var LoginPassword_ForgotPassword: String { return self._s[2158]! } - public var FeaturedStickerPacks_Title: String { return self._s[2159]! } - public var Paint_Pen: String { return self._s[2160]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2161]! } - public var ChatListFolderSettings_Info: String { return self._s[2162]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2163]! } - public var PhotoEditor_CurvesAll: String { return self._s[2165]! } - public var Wallet_Info_UnknownTransaction: String { return self._s[2166]! } + public var LoginPassword_ForgotPassword: String { return self._s[2159]! } + public var FeaturedStickerPacks_Title: String { return self._s[2160]! } + public var Paint_Pen: String { return self._s[2161]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2162]! } + public var ChatListFolderSettings_Info: String { return self._s[2163]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2164]! } + public var PhotoEditor_CurvesAll: String { return self._s[2166]! } + public var Wallet_Info_UnknownTransaction: String { return self._s[2167]! } public func Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2168]!, self._r[2168]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2169]!, self._r[2169]!, [_1, _2, _3]) } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2170]! } - public var Message_ImageExpired: String { return self._s[2171]! } - public var Call_ConnectionErrorMessage: String { return self._s[2172]! } - public var SearchImages_NoImagesFound: String { return self._s[2174]! } - public var PeerInfo_PaneGifs: String { return self._s[2175]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2176]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2177]! } - public var PhotoEditor_VignetteTool: String { return self._s[2178]! } - public var Passport_Language_dz: String { return self._s[2179]! } - public var Notifications_ChannelNotificationsHelp: String { return self._s[2180]! } - public var Conversation_BlockUser: String { return self._s[2181]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2171]! } + public var Message_ImageExpired: String { return self._s[2172]! } + public var Call_ConnectionErrorMessage: String { return self._s[2173]! } + public var SearchImages_NoImagesFound: String { return self._s[2175]! } + public var PeerInfo_PaneGifs: String { return self._s[2176]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2177]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2178]! } + public var PhotoEditor_VignetteTool: String { return self._s[2179]! } + public var Passport_Language_dz: String { return self._s[2180]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[2181]! } + public var Conversation_BlockUser: String { return self._s[2182]! } public func Wallet_Send_Balance(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2183]!, self._r[2183]!, [_0]) + return formatWithArgumentRanges(self._s[2184]!, self._r[2184]!, [_0]) } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2185]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2187]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[2186]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2188]! } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2188]!, self._r[2188]!, [_0]) + return formatWithArgumentRanges(self._s[2189]!, self._r[2189]!, [_0]) } - public var KeyCommand_NewMessage: String { return self._s[2189]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2192]! } + public var KeyCommand_NewMessage: String { return self._s[2190]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[2193]! } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2194]!, self._r[2194]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2195]!, self._r[2195]!, [_1, _2]) } - public var ContactList_Context_StartSecretChat: String { return self._s[2195]! } - public var VoiceOver_Chat_File: String { return self._s[2196]! } - public var ChatList_EditFolder: String { return self._s[2198]! } - public var Appearance_BubbleCorners_Title: String { return self._s[2199]! } - public var PeerInfo_PaneAudio: String { return self._s[2200]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[2201]! } - public var ChatListFolder_CategoryContacts: String { return self._s[2203]! } + public var ContactList_Context_StartSecretChat: String { return self._s[2196]! } + public var VoiceOver_Chat_File: String { return self._s[2197]! } + public var ChatList_EditFolder: String { return self._s[2199]! } + public var Appearance_BubbleCorners_Title: String { return self._s[2200]! } + public var PeerInfo_PaneAudio: String { return self._s[2201]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[2202]! } + public var ChatListFolder_CategoryContacts: String { return self._s[2204]! } public func Login_InvalidPhoneEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2204]!, self._r[2204]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[2205]!, self._r[2205]!, [_1, _2, _3, _4, _5]) } - public var ChatList_PeerTypeChannel: String { return self._s[2205]! } - public var VoiceOver_Navigation_Search: String { return self._s[2206]! } - public var Settings_Search: String { return self._s[2207]! } - public var WallpaperSearch_ColorYellow: String { return self._s[2208]! } - public var Login_PhoneBannedError: String { return self._s[2209]! } - public var KeyCommand_JumpToNextChat: String { return self._s[2210]! } - public var Passport_Language_fa: String { return self._s[2211]! } - public var Settings_About: String { return self._s[2212]! } - public var Wallet_Configuration_Title: String { return self._s[2213]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[2214]! } - public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2215]! } - public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2216]! } + public var ChatList_PeerTypeChannel: String { return self._s[2206]! } + public var VoiceOver_Navigation_Search: String { return self._s[2207]! } + public var Settings_Search: String { return self._s[2208]! } + public var WallpaperSearch_ColorYellow: String { return self._s[2209]! } + public var Login_PhoneBannedError: String { return self._s[2210]! } + public var KeyCommand_JumpToNextChat: String { return self._s[2211]! } + public var Passport_Language_fa: String { return self._s[2212]! } + public var Settings_About: String { return self._s[2213]! } + public var Wallet_Configuration_Title: String { return self._s[2214]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[2215]! } + public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[2216]! } + public var AutoDownloadSettings_DataUsageHigh: String { return self._s[2217]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2217]!, self._r[2217]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2218]!, self._r[2218]!, [_1, _2, _3]) } - public var Common_OK: String { return self._s[2218]! } - public var Contacts_SortBy: String { return self._s[2219]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[2220]! } + public var Common_OK: String { return self._s[2219]! } + public var Contacts_SortBy: String { return self._s[2220]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[2221]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2222]!, self._r[2222]!, [_0]) + return formatWithArgumentRanges(self._s[2223]!, self._r[2223]!, [_0]) } - public var CallFeedback_IncludeLogs: String { return self._s[2225]! } + public var CallFeedback_IncludeLogs: String { return self._s[2226]! } public func External_OpenIn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2226]!, self._r[2226]!, [_0]) + return formatWithArgumentRanges(self._s[2227]!, self._r[2227]!, [_0]) } - public var Passcode_AppLockedAlert: String { return self._s[2228]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2229]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2230]! } - public var Channel_NotificationLoading: String { return self._s[2232]! } - public var Passport_Identity_DocumentNumber: String { return self._s[2233]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2234]! } - public var VoiceOver_Chat_OpenHint: String { return self._s[2235]! } - public var Weekday_ShortFriday: String { return self._s[2236]! } - public var Wallet_CreateInvoice_Title: String { return self._s[2237]! } - public var Conversation_TitleMute: String { return self._s[2238]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2239]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[2240]! } - public var DialogList_LanguageTooltip: String { return self._s[2241]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2243]! } + public var Passcode_AppLockedAlert: String { return self._s[2229]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[2230]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2231]! } + public var Channel_NotificationLoading: String { return self._s[2233]! } + public var Passport_Identity_DocumentNumber: String { return self._s[2234]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2235]! } + public var VoiceOver_Chat_OpenHint: String { return self._s[2236]! } + public var Weekday_ShortFriday: String { return self._s[2237]! } + public var Wallet_CreateInvoice_Title: String { return self._s[2238]! } + public var Conversation_TitleMute: String { return self._s[2239]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2240]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[2241]! } + public var DialogList_LanguageTooltip: String { return self._s[2242]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[2244]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2244]!, self._r[2244]!, [_0]) + return formatWithArgumentRanges(self._s[2245]!, self._r[2245]!, [_0]) } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2246]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2247]! } - public var Settings_EditVideo: String { return self._s[2248]! } - public var VoiceOver_Common_Off: String { return self._s[2249]! } - public var Stickers_FrequentlyUsed: String { return self._s[2250]! } - public var GroupPermission_Title: String { return self._s[2251]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[2252]! } - public var Appearance_ThemeCarouselDay: String { return self._s[2253]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[2247]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[2248]! } + public var Settings_EditVideo: String { return self._s[2249]! } + public var VoiceOver_Common_Off: String { return self._s[2250]! } + public var Stickers_FrequentlyUsed: String { return self._s[2251]! } + public var GroupPermission_Title: String { return self._s[2252]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[2253]! } + public var Appearance_ThemeCarouselDay: String { return self._s[2254]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2255]!, self._r[2255]!, [_1, _2]) } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2255]! } - public var Tour_Title6: String { return self._s[2256]! } - public var EmptyGroupInfo_Title: String { return self._s[2257]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2256]! } + public var Tour_Title6: String { return self._s[2257]! } + public var EmptyGroupInfo_Title: String { return self._s[2258]! } public func Channel_AdminLog_MessageToggleSignaturesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2258]!, self._r[2258]!, [_0]) + return formatWithArgumentRanges(self._s[2259]!, self._r[2259]!, [_0]) } - public var Passport_Language_sk: String { return self._s[2259]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2260]! } - public var Preview_SaveToCameraRoll: String { return self._s[2261]! } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[2262]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2263]! } - public var Conversation_ContextMenuMore: String { return self._s[2264]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2265]! } - public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2266]! } - public var CallFeedback_ReasonSilentLocal: String { return self._s[2268]! } + public var Passport_Language_sk: String { return self._s[2260]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[2261]! } + public var Preview_SaveToCameraRoll: String { return self._s[2262]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[2263]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[2264]! } + public var Conversation_ContextMenuMore: String { return self._s[2265]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[2266]! } + public var Channel_AdminLog_CanBeAnonymous: String { return self._s[2267]! } + public var CallFeedback_ReasonSilentLocal: String { return self._s[2269]! } public func Channel_AdminLog_UnmutedMutedParticipant(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2269]!, self._r[2269]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2270]!, self._r[2270]!, [_1, _2]) } - public var UserInfo_NotificationsDisable: String { return self._s[2270]! } + public var UserInfo_NotificationsDisable: String { return self._s[2271]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2272]!, self._r[2272]!, [_0]) + return formatWithArgumentRanges(self._s[2273]!, self._r[2273]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2273]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[2274]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2275]!, self._r[2275]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2276]!, self._r[2276]!, [_1, _2]) } - public var WallpaperSearch_ColorPrefix: String { return self._s[2276]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2277]! } public func Message_ForwardedPsa_covid(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2277]!, self._r[2277]!, [_0]) + return formatWithArgumentRanges(self._s[2278]!, self._r[2278]!, [_0]) } - public var Conversation_RestrictedMedia: String { return self._s[2279]! } - public var Group_MessageVideoUpdated: String { return self._s[2280]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2281]! } - public var GroupInfo_DeleteAndExit: String { return self._s[2282]! } - public var TwoFactorSetup_Email_Action: String { return self._s[2283]! } - public var Media_ShareThisVideo: String { return self._s[2285]! } - public var DialogList_Replies: String { return self._s[2286]! } + public var Conversation_RestrictedMedia: String { return self._s[2280]! } + public var Group_MessageVideoUpdated: String { return self._s[2281]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2282]! } + public var GroupInfo_DeleteAndExit: String { return self._s[2283]! } + public var TwoFactorSetup_Email_Action: String { return self._s[2284]! } + public var Media_ShareThisVideo: String { return self._s[2286]! } + public var DialogList_Replies: String { return self._s[2287]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2287]!, self._r[2287]!, [_0]) + return formatWithArgumentRanges(self._s[2288]!, self._r[2288]!, [_0]) } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2288]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[2289]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2290]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2289]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[2290]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2291]! } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2291]!, self._r[2291]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2292]!, self._r[2292]!, [_1, _2]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2292]!, self._r[2292]!, [_0]) + return formatWithArgumentRanges(self._s[2293]!, self._r[2293]!, [_0]) } - public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2293]! } - public var Conversation_WalletRequiredSetup: String { return self._s[2294]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2295]! } - public var Channel_Members_InviteLink: String { return self._s[2296]! } - public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2297]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[2298]! } - public var Wallet_Info_Receive: String { return self._s[2299]! } - public var WatchRemote_AlertText: String { return self._s[2300]! } + public var Channel_EditAdmin_PermissinAddAdminOff: String { return self._s[2294]! } + public var Conversation_WalletRequiredSetup: String { return self._s[2295]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2296]! } + public var Channel_Members_InviteLink: String { return self._s[2297]! } + public var ChatList_Search_NoResultsFitlerMedia: String { return self._s[2298]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[2299]! } + public var Wallet_Info_Receive: String { return self._s[2300]! } + public var WatchRemote_AlertText: String { return self._s[2301]! } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2301]!, self._r[2301]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2302]!, self._r[2302]!, [_1, _2]) } - public var Conversation_Pin: String { return self._s[2302]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2303]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2304]! } + public var Conversation_Pin: String { return self._s[2303]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2304]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2305]! } public func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2305]!, self._r[2305]!, [_0]) + return formatWithArgumentRanges(self._s[2306]!, self._r[2306]!, [_0]) } - public var Appearance_AppIconFilled: String { return self._s[2306]! } - public var StickerPack_ErrorNotFound: String { return self._s[2307]! } + public var Appearance_AppIconFilled: String { return self._s[2307]! } + public var StickerPack_ErrorNotFound: String { return self._s[2308]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2308]!, self._r[2308]!, [_1]) + return formatWithArgumentRanges(self._s[2309]!, self._r[2309]!, [_1]) } - public var Passport_Identity_AddIdentityCard: String { return self._s[2309]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[2310]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2310]!, self._r[2310]!, [_1]) + return formatWithArgumentRanges(self._s[2311]!, self._r[2311]!, [_1]) } - public var Call_Camera: String { return self._s[2311]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2313]! } - public var Group_Location_Info: String { return self._s[2314]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[2315]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2316]! } + public var Call_Camera: String { return self._s[2312]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2314]! } + public var Group_Location_Info: String { return self._s[2315]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[2316]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[2317]! } public func DialogList_PinLimitError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2317]!, self._r[2317]!, [_0]) + return formatWithArgumentRanges(self._s[2318]!, self._r[2318]!, [_0]) } - public var Weekday_Yesterday: String { return self._s[2318]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2319]! } - public var ArchivedPacksAlert_Title: String { return self._s[2320]! } - public var PeerInfo_PaneMembers: String { return self._s[2321]! } - public var PhotoEditor_SelectCoverFrame: String { return self._s[2322]! } + public var Weekday_Yesterday: String { return self._s[2319]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[2320]! } + public var ArchivedPacksAlert_Title: String { return self._s[2321]! } + public var PeerInfo_PaneMembers: String { return self._s[2322]! } + public var PhotoEditor_SelectCoverFrame: String { return self._s[2323]! } public func Location_ProximityAlertSetTextGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2323]!, self._r[2323]!, [_0]) + return formatWithArgumentRanges(self._s[2324]!, self._r[2324]!, [_0]) } - public var ContactInfo_PhoneLabelMain: String { return self._s[2324]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[2325]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2325]!, self._r[2325]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2326]!, self._r[2326]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2326]! } - public var Channel_DiscussionGroup: String { return self._s[2327]! } - public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2328]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2330]! } - public var VoiceOver_MessageContextForward: String { return self._s[2331]! } - public var SocksProxySetup_TypeNone: String { return self._s[2332]! } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2334]! } - public var ProfilePhoto_OpenInEditor: String { return self._s[2336]! } - public var WallpaperSearch_ColorPurple: String { return self._s[2337]! } - public var ChatListFolder_IncludeChatsTitle: String { return self._s[2338]! } - public var Group_Username_InvalidTooShort: String { return self._s[2339]! } - public var Location_ProximityNotification_DistanceM: String { return self._s[2340]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[2327]! } + public var Channel_DiscussionGroup: String { return self._s[2328]! } + public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[2329]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[2331]! } + public var VoiceOver_MessageContextForward: String { return self._s[2332]! } + public var SocksProxySetup_TypeNone: String { return self._s[2333]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[2335]! } + public var ProfilePhoto_OpenInEditor: String { return self._s[2337]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2338]! } + public var ChatListFolder_IncludeChatsTitle: String { return self._s[2339]! } + public var Group_Username_InvalidTooShort: String { return self._s[2340]! } + public var Location_ProximityNotification_DistanceM: String { return self._s[2341]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2341]!, self._r[2341]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2342]!, self._r[2342]!, [_0, _1, _2]) } - public var Passport_Language_tk: String { return self._s[2342]! } - public var ConvertToSupergroup_Title: String { return self._s[2343]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2344]! } - public var Cache_KeepMediaHelp: String { return self._s[2345]! } - public var Channel_Management_Title: String { return self._s[2346]! } + public var Passport_Language_tk: String { return self._s[2343]! } + public var ConvertToSupergroup_Title: String { return self._s[2344]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[2345]! } + public var Cache_KeepMediaHelp: String { return self._s[2346]! } + public var Channel_Management_Title: String { return self._s[2347]! } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2347]!, self._r[2347]!, [_1]) + return formatWithArgumentRanges(self._s[2348]!, self._r[2348]!, [_1]) } - public var Conversation_ForwardChats: String { return self._s[2348]! } - public var Passport_Language_bg: String { return self._s[2349]! } - public var SocksProxySetup_TypeSocks: String { return self._s[2350]! } - public var Permissions_PrivacyPolicy: String { return self._s[2351]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2352]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2353]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2354]! } - public var Conversation_ContextMenuOpenChannel: String { return self._s[2355]! } - public var Activity_UploadingVideo: String { return self._s[2356]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2358]! } - public var Wallet_Sending_Text: String { return self._s[2359]! } - public var SocksProxySetup_Credentials: String { return self._s[2361]! } - public var Preview_SaveGif: String { return self._s[2362]! } - public var Cache_Photos: String { return self._s[2363]! } - public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2364]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[2365]! } - public var Wallet_Intro_NotNow: String { return self._s[2366]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[2367]! } - public var Passport_Language_lt: String { return self._s[2368]! } - public var Passport_DeleteDocument: String { return self._s[2370]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2371]! } + public var Conversation_ForwardChats: String { return self._s[2349]! } + public var Passport_Language_bg: String { return self._s[2350]! } + public var SocksProxySetup_TypeSocks: String { return self._s[2351]! } + public var Permissions_PrivacyPolicy: String { return self._s[2352]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2353]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[2354]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2355]! } + public var Conversation_ContextMenuOpenChannel: String { return self._s[2356]! } + public var Activity_UploadingVideo: String { return self._s[2357]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[2359]! } + public var Wallet_Sending_Text: String { return self._s[2360]! } + public var SocksProxySetup_Credentials: String { return self._s[2362]! } + public var Preview_SaveGif: String { return self._s[2363]! } + public var Cache_Photos: String { return self._s[2364]! } + public var Channel_AdminLogFilter_EventsCalls: String { return self._s[2365]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[2366]! } + public var Wallet_Intro_NotNow: String { return self._s[2367]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[2368]! } + public var Passport_Language_lt: String { return self._s[2369]! } + public var Passport_DeleteDocument: String { return self._s[2371]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2372]! } public func Location_ProximityNotification_NotifyLong(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2372]!, self._r[2372]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2373]!, self._r[2373]!, [_1, _2]) } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[2373]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[2374]! } public func PeopleNearby_VisibleUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2374]!, self._r[2374]!, [_0]) + return formatWithArgumentRanges(self._s[2375]!, self._r[2375]!, [_0]) } - public var AccessDenied_VideoCallCamera: String { return self._s[2375]! } + public var AccessDenied_VideoCallCamera: String { return self._s[2376]! } public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2376]!, self._r[2376]!, [_0]) + return formatWithArgumentRanges(self._s[2377]!, self._r[2377]!, [_0]) } - public var PhotoEditor_SharpenTool: String { return self._s[2377]! } + public var PhotoEditor_SharpenTool: String { return self._s[2378]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2378]!, self._r[2378]!, [_1]) + return formatWithArgumentRanges(self._s[2379]!, self._r[2379]!, [_1]) } - public var DialogList_Unpin: String { return self._s[2379]! } - public var Stickers_NoStickersFound: String { return self._s[2380]! } - public var UserInfo_AddContact: String { return self._s[2382]! } + public var DialogList_Unpin: String { return self._s[2380]! } + public var Stickers_NoStickersFound: String { return self._s[2381]! } + public var UserInfo_AddContact: String { return self._s[2383]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2384]!, self._r[2384]!, [_0]) - } - public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2385]!, self._r[2385]!, [_0]) } - public var CallFeedback_VideoReasonDistorted: String { return self._s[2386]! } - public var Tour_Text2: String { return self._s[2387]! } + public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2386]!, self._r[2386]!, [_0]) + } + public var CallFeedback_VideoReasonDistorted: String { return self._s[2387]! } + public var Tour_Text2: String { return self._s[2388]! } public func Conversation_TitleCommentsFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2389]!, self._r[2389]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2390]!, self._r[2390]!, [_1, _2]) } - public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[2390]! } - public var Paint_Delete: String { return self._s[2392]! } + public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[2391]! } + public var Paint_Delete: String { return self._s[2393]! } public func Call_VoiceChatInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2393]!, self._r[2393]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2394]!, self._r[2394]!, [_1, _2]) } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2394]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2395]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2396]!, self._r[2396]!, [_0]) + return formatWithArgumentRanges(self._s[2397]!, self._r[2397]!, [_0]) } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[2397]! } - public var Notification_CallOutgoingShort: String { return self._s[2398]! } - public var Checkout_PasswordEntry_Title: String { return self._s[2399]! } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2400]! } - public var Notification_MessageLifetime1m: String { return self._s[2401]! } - public var Wallet_TransactionInfo_CommentHeader: String { return self._s[2403]! } - public var BlockedUsers_AddNew: String { return self._s[2404]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[2405]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2406]! } - public var Settings_SaveEditedPhotos: String { return self._s[2407]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[2408]! } - public var Channel_AboutItem: String { return self._s[2409]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2410]! } - public var Privacy_Calls_P2PNever: String { return self._s[2412]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2413]! } - public var Passport_Language_uk: String { return self._s[2414]! } - public var NetworkUsageSettings_Wifi: String { return self._s[2415]! } - public var Conversation_Moderate_Report: String { return self._s[2416]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2417]! } - public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2418]! } - public var Permissions_SiriText_v0: String { return self._s[2419]! } - public var Theme_Colors_Background: String { return self._s[2420]! } - public var Notification_CallMissed: String { return self._s[2421]! } - public var Stats_ZoomOut: String { return self._s[2422]! } - public var Profile_AddToExisting: String { return self._s[2423]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2426]! } - public var VoiceChat_RemovePeerRemove: String { return self._s[2427]! } - public var Undo_DeletedChannel: String { return self._s[2428]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[2398]! } + public var Notification_CallOutgoingShort: String { return self._s[2399]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2400]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[2401]! } + public var Notification_MessageLifetime1m: String { return self._s[2402]! } + public var Wallet_TransactionInfo_CommentHeader: String { return self._s[2404]! } + public var BlockedUsers_AddNew: String { return self._s[2405]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[2406]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2407]! } + public var Settings_SaveEditedPhotos: String { return self._s[2408]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[2409]! } + public var Channel_AboutItem: String { return self._s[2410]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[2411]! } + public var Privacy_Calls_P2PNever: String { return self._s[2413]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2414]! } + public var Passport_Language_uk: String { return self._s[2415]! } + public var NetworkUsageSettings_Wifi: String { return self._s[2416]! } + public var Conversation_Moderate_Report: String { return self._s[2417]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2418]! } + public var VoiceOver_Chat_SeenByRecipients: String { return self._s[2419]! } + public var Permissions_SiriText_v0: String { return self._s[2420]! } + public var Theme_Colors_Background: String { return self._s[2421]! } + public var Notification_CallMissed: String { return self._s[2422]! } + public var Stats_ZoomOut: String { return self._s[2423]! } + public var Profile_AddToExisting: String { return self._s[2424]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2427]! } + public var VoiceChat_RemovePeerRemove: String { return self._s[2428]! } + public var Undo_DeletedChannel: String { return self._s[2429]! } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2429]!, self._r[2429]!, [_0]) + return formatWithArgumentRanges(self._s[2430]!, self._r[2430]!, [_0]) } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2430]! } - public var Map_LiveLocationGroupDescription: String { return self._s[2431]! } - public var Passport_InfoFAQ_URL: String { return self._s[2432]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2434]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2431]! } + public var Map_LiveLocationGroupDescription: String { return self._s[2432]! } + public var Passport_InfoFAQ_URL: String { return self._s[2433]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2435]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2435]!, self._r[2435]!, [_1]) + return formatWithArgumentRanges(self._s[2436]!, self._r[2436]!, [_1]) } - public var State_connecting: String { return self._s[2436]! } - public var Passport_Identity_Country: String { return self._s[2437]! } - public var Passport_PasswordDescription: String { return self._s[2438]! } - public var ChatList_PsaLabel_covid: String { return self._s[2439]! } + public var State_connecting: String { return self._s[2437]! } + public var Passport_Identity_Country: String { return self._s[2438]! } + public var Passport_PasswordDescription: String { return self._s[2439]! } + public var ChatList_PsaLabel_covid: String { return self._s[2440]! } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2440]!, self._r[2440]!, [_1]) + return formatWithArgumentRanges(self._s[2441]!, self._r[2441]!, [_1]) } - public var Contacts_AddPeopleNearby: String { return self._s[2441]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2442]! } - public var ClearCache_Description: String { return self._s[2443]! } - public var Localization_LanguageName: String { return self._s[2444]! } + public var Contacts_AddPeopleNearby: String { return self._s[2442]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[2443]! } + public var ClearCache_Description: String { return self._s[2444]! } + public var Localization_LanguageName: String { return self._s[2445]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2445]!, self._r[2445]!, [_0]) + return formatWithArgumentRanges(self._s[2446]!, self._r[2446]!, [_0]) } - public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2446]! } - public var UserInfo_CreateNewContact: String { return self._s[2447]! } - public var Channel_Stickers_NotFound: String { return self._s[2449]! } - public var Watch_Message_Poll: String { return self._s[2450]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2451]! } + public var ChatList_TabIconFoldersTooltipEmptyFolders: String { return self._s[2447]! } + public var UserInfo_CreateNewContact: String { return self._s[2448]! } + public var Channel_Stickers_NotFound: String { return self._s[2450]! } + public var Watch_Message_Poll: String { return self._s[2451]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2452]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2452]!, self._r[2452]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2453]!, self._r[2453]!, [_0, _1]) } - public var Login_InfoDeletePhoto: String { return self._s[2453]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2454]! } - public var InstantPage_FeedbackButton: String { return self._s[2455]! } - public var Appearance_PreviewReplyText: String { return self._s[2456]! } - public var Passport_FieldPhoneHelp: String { return self._s[2457]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2458]! } - public var Media_SendingOptionsTooltip: String { return self._s[2459]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[2460]! } - public var Notifications_Badge: String { return self._s[2461]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[2462]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2463]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[2464]! } + public var Login_InfoDeletePhoto: String { return self._s[2454]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[2455]! } + public var InstantPage_FeedbackButton: String { return self._s[2456]! } + public var Appearance_PreviewReplyText: String { return self._s[2457]! } + public var Passport_FieldPhoneHelp: String { return self._s[2458]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2459]! } + public var Media_SendingOptionsTooltip: String { return self._s[2460]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[2461]! } + public var Notifications_Badge: String { return self._s[2462]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[2463]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2464]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[2465]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2466]!, self._r[2466]!, [_0]) + return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_0]) } - public var Wallet_Info_Send: String { return self._s[2467]! } - public var Passport_InfoLearnMore: String { return self._s[2468]! } - public var EnterPasscode_EnterTitle: String { return self._s[2469]! } - public var Appearance_EditTheme: String { return self._s[2470]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2471]! } - public var Stats_FollowersTitle: String { return self._s[2472]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[2473]! } - public var Channel_Subscribers_Title: String { return self._s[2474]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2475]! } + public var Wallet_Info_Send: String { return self._s[2468]! } + public var Passport_InfoLearnMore: String { return self._s[2469]! } + public var EnterPasscode_EnterTitle: String { return self._s[2470]! } + public var Appearance_EditTheme: String { return self._s[2471]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2472]! } + public var Stats_FollowersTitle: String { return self._s[2473]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[2474]! } + public var Channel_Subscribers_Title: String { return self._s[2475]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2476]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2476]!, self._r[2476]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2477]!, self._r[2477]!, [_1, _2, _3]) } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2477]! } - public var Wallet_Intro_CreateWallet: String { return self._s[2478]! } - public var Conversation_AddToReadingList: String { return self._s[2479]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2480]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[2478]! } + public var Wallet_Intro_CreateWallet: String { return self._s[2479]! } + public var Conversation_AddToReadingList: String { return self._s[2480]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2481]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2481]!, self._r[2481]!, [_0]) + return formatWithArgumentRanges(self._s[2482]!, self._r[2482]!, [_0]) } - public var Group_AdminLog_EmptyText: String { return self._s[2482]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[2483]! } - public var Wallet_Sending_Title: String { return self._s[2484]! } - public var Watch_Location_Current: String { return self._s[2485]! } - public var PrivacyPolicy_Title: String { return self._s[2486]! } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2493]! } - public var Channel_TypeSetup_Title: String { return self._s[2496]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[2497]! } - public var Passport_Language_ja: String { return self._s[2498]! } - public var ReportPeer_ReasonSpam: String { return self._s[2499]! } - public var Widget_GalleryDescription: String { return self._s[2500]! } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2501]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2503]! } - public var Channel_AdminLog_ChangeInfo: String { return self._s[2504]! } - public var ChatListFolder_NameNonContacts: String { return self._s[2505]! } - public var Call_Audio: String { return self._s[2506]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2507]! } - public var Wallet_Updated_JustNow: String { return self._s[2508]! } - public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2509]! } - public var Settings_PrivacySettings: String { return self._s[2510]! } - public var Stats_Followers: String { return self._s[2511]! } - public var Notifications_AddExceptionTitle: String { return self._s[2512]! } - public var TwoFactorSetup_Password_Title: String { return self._s[2513]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2514]! } - public var OldChannels_NoticeText: String { return self._s[2515]! } - public var Conversation_SavedMessages: String { return self._s[2516]! } + public var Group_AdminLog_EmptyText: String { return self._s[2483]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[2484]! } + public var Wallet_Sending_Title: String { return self._s[2485]! } + public var Watch_Location_Current: String { return self._s[2486]! } + public var PrivacyPolicy_Title: String { return self._s[2487]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2494]! } + public var Channel_TypeSetup_Title: String { return self._s[2497]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[2498]! } + public var Passport_Language_ja: String { return self._s[2499]! } + public var ReportPeer_ReasonSpam: String { return self._s[2500]! } + public var Widget_GalleryDescription: String { return self._s[2501]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2502]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[2504]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[2505]! } + public var ChatListFolder_NameNonContacts: String { return self._s[2506]! } + public var Call_Audio: String { return self._s[2507]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2508]! } + public var Wallet_Updated_JustNow: String { return self._s[2509]! } + public var ChatList_Search_NoResultsFitlerFiles: String { return self._s[2510]! } + public var Settings_PrivacySettings: String { return self._s[2511]! } + public var Stats_Followers: String { return self._s[2512]! } + public var Notifications_AddExceptionTitle: String { return self._s[2513]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2514]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2515]! } + public var OldChannels_NoticeText: String { return self._s[2516]! } + public var Conversation_SavedMessages: String { return self._s[2517]! } public func Conversation_PeerNearbyTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2518]!, self._r[2518]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2519]!, self._r[2519]!, [_1, _2]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2519]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2520]! } public func Wallet_Info_TransactionBlockchainFee(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2520]!, self._r[2520]!, [_0]) + return formatWithArgumentRanges(self._s[2521]!, self._r[2521]!, [_0]) } - public var Appearance_ThemeNightBlue: String { return self._s[2521]! } - public var Notification_ChannelInviterSelf: String { return self._s[2522]! } - public var Watch_UserInfo_Service: String { return self._s[2524]! } - public var ChatList_Context_Back: String { return self._s[2525]! } - public var Passport_Email_Title: String { return self._s[2526]! } - public var Wallet_Month_ShortDecember: String { return self._s[2527]! } - public var Stats_GroupTopAdmin_Promote: String { return self._s[2528]! } + public var Appearance_ThemeNightBlue: String { return self._s[2522]! } + public var Notification_ChannelInviterSelf: String { return self._s[2523]! } + public var Watch_UserInfo_Service: String { return self._s[2525]! } + public var ChatList_Context_Back: String { return self._s[2526]! } + public var Passport_Email_Title: String { return self._s[2527]! } + public var Wallet_Month_ShortDecember: String { return self._s[2528]! } + public var Stats_GroupTopAdmin_Promote: String { return self._s[2529]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2529]!, self._r[2529]!, [_1]) + return formatWithArgumentRanges(self._s[2530]!, self._r[2530]!, [_1]) } - public var Conversation_UnsupportedMedia: String { return self._s[2530]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2531]! } - public var Privacy_TopPeersHelp: String { return self._s[2533]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[2534]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2535]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[2536]! } + public var Conversation_UnsupportedMedia: String { return self._s[2531]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2532]! } + public var Privacy_TopPeersHelp: String { return self._s[2534]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[2535]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2536]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[2537]! } public func Location_ProximityNotification_AlreadyClose(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2537]!, self._r[2537]!, [_0]) + return formatWithArgumentRanges(self._s[2538]!, self._r[2538]!, [_0]) } - public var Notification_PassportValueProofOfAddress: String { return self._s[2538]! } - public var Map_Map: String { return self._s[2539]! } - public var WallpaperSearch_ColorBlue: String { return self._s[2540]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[2541]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2542]! } - public var ChatList_Search_FilterMusic: String { return self._s[2543]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2544]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2545]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[2547]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[2539]! } + public var Map_Map: String { return self._s[2540]! } + public var WallpaperSearch_ColorBlue: String { return self._s[2541]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[2542]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2543]! } + public var ChatList_Search_FilterMusic: String { return self._s[2544]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[2545]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2546]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[2548]! } public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2548]!, self._r[2548]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2549]!, self._r[2549]!, [_1, _2]) } public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2549]!, self._r[2549]!, [_0]) + return formatWithArgumentRanges(self._s[2550]!, self._r[2550]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2550]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2551]! } - public var GroupInfo_Location: String { return self._s[2554]! } - public var Passport_Language_ka: String { return self._s[2555]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2551]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2552]! } + public var GroupInfo_Location: String { return self._s[2555]! } + public var Passport_Language_ka: String { return self._s[2556]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2556]!, self._r[2556]!, [_0]) + return formatWithArgumentRanges(self._s[2557]!, self._r[2557]!, [_0]) } - public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2557]! } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2560]! } - public var DialogList_SearchSectionRecent: String { return self._s[2561]! } - public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2562]! } - public var Conversation_Timer_Send: String { return self._s[2563]! } - public var ChatState_Updating: String { return self._s[2565]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[2566]! } - public var ChannelInfo_DeleteGroup: String { return self._s[2567]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[2568]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2569]! } - public var ChatListFolderSettings_AddRecommended: String { return self._s[2571]! } - public var ChatList_Search_NoResults: String { return self._s[2572]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2573]! } - public var PeerInfo_GroupAboutItem: String { return self._s[2574]! } - public var Wallet_Info_YourBalance: String { return self._s[2576]! } + public var Conversation_ContextMenuOpenChannelProfile: String { return self._s[2558]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[2561]! } + public var DialogList_SearchSectionRecent: String { return self._s[2562]! } + public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[2563]! } + public var Conversation_Timer_Send: String { return self._s[2564]! } + public var ChatState_Updating: String { return self._s[2566]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[2567]! } + public var ChannelInfo_DeleteGroup: String { return self._s[2568]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[2569]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2570]! } + public var ChatListFolderSettings_AddRecommended: String { return self._s[2572]! } + public var ChatList_Search_NoResults: String { return self._s[2573]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2574]! } + public var PeerInfo_GroupAboutItem: String { return self._s[2575]! } + public var Wallet_Info_YourBalance: String { return self._s[2577]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2577]!, self._r[2577]!, [_0]) + return formatWithArgumentRanges(self._s[2578]!, self._r[2578]!, [_0]) } - public var PrivacySettings_AuthSessions: String { return self._s[2578]! } - public var Passport_Address_Postcode: String { return self._s[2579]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2580]! } - public var Passport_Address_Street2Placeholder: String { return self._s[2581]! } - public var Group_Location_Title: String { return self._s[2582]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2583]! } - public var PeopleNearby_UsersEmpty: String { return self._s[2584]! } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2586]! } + public var PrivacySettings_AuthSessions: String { return self._s[2579]! } + public var Passport_Address_Postcode: String { return self._s[2580]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2581]! } + public var Passport_Address_Street2Placeholder: String { return self._s[2582]! } + public var Group_Location_Title: String { return self._s[2583]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[2584]! } + public var PeopleNearby_UsersEmpty: String { return self._s[2585]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[2587]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2588]!, self._r[2588]!, [_0]) + return formatWithArgumentRanges(self._s[2589]!, self._r[2589]!, [_0]) } - public var Proxy_TooltipUnavailable: String { return self._s[2589]! } - public var Map_Search: String { return self._s[2590]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[2591]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2592]! } + public var Proxy_TooltipUnavailable: String { return self._s[2590]! } + public var Map_Search: String { return self._s[2591]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[2592]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2593]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2593]!, self._r[2593]!, [_0]) + return formatWithArgumentRanges(self._s[2594]!, self._r[2594]!, [_0]) } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[2594]! } - public var ProfilePhoto_MainPhoto: String { return self._s[2595]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2596]! } - public var SharedMedia_EmptyMusicText: String { return self._s[2597]! } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[2598]! } - public var NetworkUsageSettings_BytesReceived: String { return self._s[2599]! } - public var Channel_AdminLog_EmptyText: String { return self._s[2600]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2601]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[2602]! } - public var Notifications_GroupNotifications: String { return self._s[2603]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[2604]! } - public var Wallet_AccessDenied_Title: String { return self._s[2605]! } - public var AccessDenied_SaveMedia: String { return self._s[2606]! } - public var GroupInfo_LabelOwner: String { return self._s[2607]! } - public var Passport_Language_id: String { return self._s[2608]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2609]! } - public var Conversation_UnpinMessageAlert: String { return self._s[2610]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[2595]! } + public var ProfilePhoto_MainPhoto: String { return self._s[2596]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2597]! } + public var SharedMedia_EmptyMusicText: String { return self._s[2598]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[2599]! } + public var NetworkUsageSettings_BytesReceived: String { return self._s[2600]! } + public var Channel_AdminLog_EmptyText: String { return self._s[2601]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2602]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[2603]! } + public var Notifications_GroupNotifications: String { return self._s[2604]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[2605]! } + public var Wallet_AccessDenied_Title: String { return self._s[2606]! } + public var AccessDenied_SaveMedia: String { return self._s[2607]! } + public var GroupInfo_LabelOwner: String { return self._s[2608]! } + public var Passport_Language_id: String { return self._s[2609]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2610]! } + public var Conversation_UnpinMessageAlert: String { return self._s[2611]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2611]!, self._r[2611]!, [_0]) - } - public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2612]!, self._r[2612]!, [_0]) } - public var TwoFactorSetup_Done_Text: String { return self._s[2613]! } + public func Call_RemoteVideoPaused(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2613]!, self._r[2613]!, [_0]) + } + public var TwoFactorSetup_Done_Text: String { return self._s[2614]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2614]!, self._r[2614]!, [_0]) + return formatWithArgumentRanges(self._s[2615]!, self._r[2615]!, [_0]) } - public var Wallet_Words_Title: String { return self._s[2615]! } - public var NetworkUsageSettings_BytesSent: String { return self._s[2616]! } - public var OwnershipTransfer_Transfer: String { return self._s[2617]! } + public var Wallet_Words_Title: String { return self._s[2616]! } + public var NetworkUsageSettings_BytesSent: String { return self._s[2617]! } + public var OwnershipTransfer_Transfer: String { return self._s[2618]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2618]!, self._r[2618]!, [_0]) + return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_0]) } - public var Passport_Language_pt: String { return self._s[2619]! } - public var PrivacySettings_WebSessions: String { return self._s[2620]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2622]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2623]! } + public var Passport_Language_pt: String { return self._s[2620]! } + public var PrivacySettings_WebSessions: String { return self._s[2621]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[2623]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2624]! } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2624]!, self._r[2624]!, [_0]) + return formatWithArgumentRanges(self._s[2625]!, self._r[2625]!, [_0]) } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2625]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2626]! } - public var AutoNightTheme_Scheduled: String { return self._s[2627]! } - public var CreatePoll_ExplanationHeader: String { return self._s[2628]! } - public var Calls_TabTitle: String { return self._s[2629]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[2630]! } - public var Notification_VideoCallCanceled: String { return self._s[2631]! } - public var Login_CodeSentInternal: String { return self._s[2632]! } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2633]! } - public var Call_RecordingDisabledMessage: String { return self._s[2635]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2626]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2627]! } + public var AutoNightTheme_Scheduled: String { return self._s[2628]! } + public var CreatePoll_ExplanationHeader: String { return self._s[2629]! } + public var Calls_TabTitle: String { return self._s[2630]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[2631]! } + public var Notification_VideoCallCanceled: String { return self._s[2632]! } + public var Login_CodeSentInternal: String { return self._s[2633]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[2634]! } + public var Call_RecordingDisabledMessage: String { return self._s[2636]! } public func VoiceChat_RemovedPeerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2636]!, self._r[2636]!, [_0]) + return formatWithArgumentRanges(self._s[2637]!, self._r[2637]!, [_0]) } - public var AutoDownloadSettings_TypeChannels: String { return self._s[2638]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[2639]! } - public var Channel_Info_Stickers: String { return self._s[2640]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[2641]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[2639]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[2640]! } + public var Channel_Info_Stickers: String { return self._s[2641]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[2642]! } public func Conversation_PeerNearbyDistance(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2642]!, self._r[2642]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2643]!, self._r[2643]!, [_1, _2]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2643]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[2644]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2644]!, self._r[2644]!, [_0]) + return formatWithArgumentRanges(self._s[2645]!, self._r[2645]!, [_0]) } - public var Passport_DiscardMessageTitle: String { return self._s[2645]! } - public var Localization_LanguageOther: String { return self._s[2646]! } - public var Conversation_EncryptionCanceled: String { return self._s[2647]! } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2648]! } + public var Passport_DiscardMessageTitle: String { return self._s[2646]! } + public var Localization_LanguageOther: String { return self._s[2647]! } + public var Conversation_EncryptionCanceled: String { return self._s[2648]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[2649]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2650]!, self._r[2650]!, [_0]) + return formatWithArgumentRanges(self._s[2651]!, self._r[2651]!, [_0]) } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2652]! } - public var SocksProxySetup_SavedProxies: String { return self._s[2653]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2653]! } + public var SocksProxySetup_SavedProxies: String { return self._s[2654]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2654]!, self._r[2654]!, [_1]) + return formatWithArgumentRanges(self._s[2655]!, self._r[2655]!, [_1]) } - public var Conversation_ScamWarning: String { return self._s[2656]! } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2657]! } - public var LocalGroup_Title: String { return self._s[2658]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2660]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2661]! } - public var Login_PhoneFloodError: String { return self._s[2662]! } - public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2663]! } - public var Username_InvalidTaken: String { return self._s[2665]! } - public var SocksProxySetup_AddProxy: String { return self._s[2667]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2668]! } - public var MediaPicker_UngroupDescription: String { return self._s[2669]! } - public var Login_CodeExpired: String { return self._s[2670]! } - public var Localization_ChooseLanguage: String { return self._s[2671]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2672]! } + public var Conversation_ScamWarning: String { return self._s[2657]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[2658]! } + public var LocalGroup_Title: String { return self._s[2659]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[2661]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[2662]! } + public var Login_PhoneFloodError: String { return self._s[2663]! } + public var Conversation_PinMessageAlert_PinAndNotifyMembers: String { return self._s[2664]! } + public var Username_InvalidTaken: String { return self._s[2666]! } + public var SocksProxySetup_AddProxy: String { return self._s[2668]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[2669]! } + public var MediaPicker_UngroupDescription: String { return self._s[2670]! } + public var Login_CodeExpired: String { return self._s[2671]! } + public var Localization_ChooseLanguage: String { return self._s[2672]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[2673]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2673]!, self._r[2673]!, [_0]) - } - public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2674]!, self._r[2674]!, [_0]) } - public var ReportPeer_ReasonOther_Title: String { return self._s[2676]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[2677]! } + public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2675]!, self._r[2675]!, [_0]) + } + public var ReportPeer_ReasonOther_Title: String { return self._s[2677]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[2678]! } public func VoiceChat_UserInvited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2678]!, self._r[2678]!, [_0]) + return formatWithArgumentRanges(self._s[2679]!, self._r[2679]!, [_0]) } - public var PeerInfo_ButtonDiscuss: String { return self._s[2679]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2680]! } - public var Call_StatusNoAnswer: String { return self._s[2681]! } - public var ScheduledMessages_DeleteMany: String { return self._s[2683]! } - public var Channel_DiscussionGroupInfo: String { return self._s[2684]! } - public var Conversation_UnarchiveDone: String { return self._s[2685]! } - public var LogoutOptions_AddAccountText: String { return self._s[2686]! } - public var Message_PinnedContactMessage: String { return self._s[2687]! } + public var PeerInfo_ButtonDiscuss: String { return self._s[2680]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[2681]! } + public var Call_StatusNoAnswer: String { return self._s[2682]! } + public var ScheduledMessages_DeleteMany: String { return self._s[2684]! } + public var Channel_DiscussionGroupInfo: String { return self._s[2685]! } + public var Conversation_UnarchiveDone: String { return self._s[2686]! } + public var LogoutOptions_AddAccountText: String { return self._s[2687]! } + public var Message_PinnedContactMessage: String { return self._s[2688]! } public func FileSize_GB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2689]!, self._r[2689]!, [_0]) + return formatWithArgumentRanges(self._s[2690]!, self._r[2690]!, [_0]) } - public var Stats_GroupLanguagesTitle: String { return self._s[2690]! } - public var Passport_FieldAddressHelp: String { return self._s[2691]! } + public var Stats_GroupLanguagesTitle: String { return self._s[2691]! } + public var Passport_FieldAddressHelp: String { return self._s[2692]! } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2692]!, self._r[2692]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2693]!, self._r[2693]!, [_1, _2]) } - public var ChatSettings_OpenLinksIn: String { return self._s[2694]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2695]! } - public var Message_Photo: String { return self._s[2696]! } - public var Media_LimitedAccessManage: String { return self._s[2698]! } - public var MediaPicker_AddCaption: String { return self._s[2699]! } - public var LogoutOptions_Title: String { return self._s[2700]! } + public var ChatSettings_OpenLinksIn: String { return self._s[2695]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[2696]! } + public var Message_Photo: String { return self._s[2697]! } + public var Media_LimitedAccessManage: String { return self._s[2699]! } + public var MediaPicker_AddCaption: String { return self._s[2700]! } + public var LogoutOptions_Title: String { return self._s[2701]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2701]!, self._r[2701]!, [_1]) + return formatWithArgumentRanges(self._s[2702]!, self._r[2702]!, [_1]) } - public var Conversation_StatusKickedFromGroup: String { return self._s[2702]! } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2703]! } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2704]! } - public var Channel_AdminLogFilter_Title: String { return self._s[2705]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2706]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[2703]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[2704]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2705]! } + public var Channel_AdminLogFilter_Title: String { return self._s[2706]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[2707]! } public func Wallet_Info_TransactionDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2707]!, self._r[2707]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2708]!, self._r[2708]!, [_1, _2]) } - public var Compose_GroupTokenListPlaceholder: String { return self._s[2708]! } - public var Wallet_Words_NotDoneResponse: String { return self._s[2709]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2710]! } - public var ChannelIntro_Title: String { return self._s[2711]! } - public var Stats_Message_Views: String { return self._s[2712]! } - public var Stickers_Install: String { return self._s[2713]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[2709]! } + public var Wallet_Words_NotDoneResponse: String { return self._s[2710]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2711]! } + public var ChannelIntro_Title: String { return self._s[2712]! } + public var Stats_Message_Views: String { return self._s[2713]! } + public var Stickers_Install: String { return self._s[2714]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2714]!, self._r[2714]!, [_0]) + return formatWithArgumentRanges(self._s[2715]!, self._r[2715]!, [_0]) } - public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2715]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[2717]! } - public var Settings_Username: String { return self._s[2720]! } - public var FastTwoStepSetup_Title: String { return self._s[2721]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2722]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2723]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2724]! } - public var CallFeedback_ReasonEcho: String { return self._s[2725]! } + public var EditTheme_Create_Preview_IncomingReplyText: String { return self._s[2716]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[2718]! } + public var Settings_Username: String { return self._s[2721]! } + public var FastTwoStepSetup_Title: String { return self._s[2722]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2723]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[2724]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2725]! } + public var CallFeedback_ReasonEcho: String { return self._s[2726]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2726]!, self._r[2726]!, [_0]) + return formatWithArgumentRanges(self._s[2727]!, self._r[2727]!, [_0]) } - public var Conversation_OpenBotLinkTitle: String { return self._s[2727]! } - public var SocksProxySetup_Title: String { return self._s[2728]! } - public var CallFeedback_Success: String { return self._s[2729]! } - public var WallpaperPreview_SwipeTopText: String { return self._s[2731]! } - public var InstantPage_AutoNightTheme: String { return self._s[2733]! } - public var Watch_Conversation_Reply: String { return self._s[2734]! } - public var VoiceChat_Share: String { return self._s[2736]! } - public var Chat_PanelUnpinAllMessages: String { return self._s[2737]! } - public var WallpaperPreview_Pattern: String { return self._s[2738]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2739]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[2740]! } + public var Conversation_OpenBotLinkTitle: String { return self._s[2728]! } + public var SocksProxySetup_Title: String { return self._s[2729]! } + public var CallFeedback_Success: String { return self._s[2730]! } + public var WallpaperPreview_SwipeTopText: String { return self._s[2732]! } + public var InstantPage_AutoNightTheme: String { return self._s[2734]! } + public var Watch_Conversation_Reply: String { return self._s[2735]! } + public var VoiceChat_Share: String { return self._s[2737]! } + public var Chat_PanelUnpinAllMessages: String { return self._s[2738]! } + public var WallpaperPreview_Pattern: String { return self._s[2739]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[2740]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[2741]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2741]!, self._r[2741]!, [_0]) + return formatWithArgumentRanges(self._s[2742]!, self._r[2742]!, [_0]) } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2742]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[2744]! } - public var Update_Title: String { return self._s[2745]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[2746]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[2743]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[2745]! } + public var Update_Title: String { return self._s[2746]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[2747]! } public func Wallet_WordCheck_Text(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2747]!, self._r[2747]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2748]!, self._r[2748]!, [_1, _2, _3]) } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2748]! } - public var WallpaperPreview_CropTopText: String { return self._s[2750]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[2751]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2752]! } - public var ChatListFolder_DiscardCancel: String { return self._s[2753]! } - public var Message_PinnedPhotoMessage: String { return self._s[2754]! } - public var Appearance_ThemeDayClassic: String { return self._s[2755]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[2756]! } - public var AccessDenied_Wallpapers: String { return self._s[2762]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2749]! } + public var WallpaperPreview_CropTopText: String { return self._s[2751]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[2752]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2753]! } + public var ChatListFolder_DiscardCancel: String { return self._s[2754]! } + public var Message_PinnedPhotoMessage: String { return self._s[2755]! } + public var Appearance_ThemeDayClassic: String { return self._s[2756]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[2757]! } + public var AccessDenied_Wallpapers: String { return self._s[2763]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2763]!, self._r[2763]!, [_0]) + return formatWithArgumentRanges(self._s[2764]!, self._r[2764]!, [_0]) } - public var Weekday_Sunday: String { return self._s[2764]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2766]! } - public var PeopleNearby_MakeVisibleDescription: String { return self._s[2767]! } - public var AccessDenied_LocationDisabled: String { return self._s[2768]! } - public var Tour_Text3: String { return self._s[2769]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2770]! } + public var Weekday_Sunday: String { return self._s[2765]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2767]! } + public var PeopleNearby_MakeVisibleDescription: String { return self._s[2768]! } + public var AccessDenied_LocationDisabled: String { return self._s[2769]! } + public var Tour_Text3: String { return self._s[2770]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2771]! } public func Time_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2771]!, self._r[2771]!, [_0]) + return formatWithArgumentRanges(self._s[2772]!, self._r[2772]!, [_0]) } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2772]! } - public var Conversation_ClearCache: String { return self._s[2773]! } - public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2774]! } - public var ChatList_Tabs_AllChats: String { return self._s[2775]! } - public var DialogList_RecentTitlePeople: String { return self._s[2776]! } - public var Stickers_AddToFavorites: String { return self._s[2777]! } - public var ChatList_Context_RemoveFromFolder: String { return self._s[2778]! } - public var Settings_RemoveVideo: String { return self._s[2779]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2780]! } - public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2781]! } - public var VoiceOver_Chat_YourFile: String { return self._s[2782]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2783]! } - public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2784]! } - public var Channel_AdminLog_AddMembers: String { return self._s[2785]! } - public var Map_SendThisLocation: String { return self._s[2787]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[2789]! } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2790]! } - public var CloudStorage_Title: String { return self._s[2791]! } - public var TwoFactorSetup_Password_Action: String { return self._s[2792]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[2793]! } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[2795]! } - public var Undo_LeftGroup: String { return self._s[2796]! } - public var Conversation_StopLiveLocation: String { return self._s[2798]! } - public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2799]! } - public var Message_PinnedInvoice: String { return self._s[2800]! } - public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2801]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[2773]! } + public var Conversation_ClearCache: String { return self._s[2774]! } + public var StickerPacksSettings_ArchivedMasks_Info: String { return self._s[2775]! } + public var ChatList_Tabs_AllChats: String { return self._s[2776]! } + public var DialogList_RecentTitlePeople: String { return self._s[2777]! } + public var Stickers_AddToFavorites: String { return self._s[2778]! } + public var ChatList_Context_RemoveFromFolder: String { return self._s[2779]! } + public var Settings_RemoveVideo: String { return self._s[2780]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2781]! } + public var ConversationProfile_LeaveDeleteAndExit: String { return self._s[2782]! } + public var VoiceOver_Chat_YourFile: String { return self._s[2783]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[2784]! } + public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[2785]! } + public var Channel_AdminLog_AddMembers: String { return self._s[2786]! } + public var Map_SendThisLocation: String { return self._s[2788]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[2790]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2791]! } + public var CloudStorage_Title: String { return self._s[2792]! } + public var TwoFactorSetup_Password_Action: String { return self._s[2793]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[2794]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[2796]! } + public var Undo_LeftGroup: String { return self._s[2797]! } + public var Conversation_StopLiveLocation: String { return self._s[2799]! } + public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[2800]! } + public var Message_PinnedInvoice: String { return self._s[2801]! } + public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[2802]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2802]!, self._r[2802]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2803]!, self._r[2803]!, [_1, _2]) } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2803]!, self._r[2803]!, [_0]) + return formatWithArgumentRanges(self._s[2804]!, self._r[2804]!, [_0]) } - public var Weekday_Tuesday: String { return self._s[2804]! } - public var ChangePhoneNumberCode_Code: String { return self._s[2805]! } - public var VoiceOver_Chat_YourMessage: String { return self._s[2806]! } - public var Calls_CallTabDescription: String { return self._s[2807]! } - public var SocksProxySetup_UseProxy: String { return self._s[2809]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2810]! } - public var PasscodeSettings_AlphanumericCode: String { return self._s[2811]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[2812]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[2814]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2815]! } - public var Exceptions_AddToExceptions: String { return self._s[2816]! } - public var UserInfo_Title: String { return self._s[2817]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[2819]! } - public var ChatList_Unmute: String { return self._s[2821]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[2822]! } - public var Stats_GroupTopPostersTitle: String { return self._s[2823]! } - public var Username_CheckingUsername: String { return self._s[2824]! } - public var WallpaperColors_SetCustomColor: String { return self._s[2825]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[2829]! } - public var Location_ProximityAlertSetTitle: String { return self._s[2830]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[2831]! } - public var Settings_ChangePhoneNumber: String { return self._s[2832]! } - public var PeerInfo_PaneLinks: String { return self._s[2833]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[2836]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[2838]! } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[2839]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[2840]! } - public var Wallet_RestoreFailed_Title: String { return self._s[2841]! } - public var Stats_FollowersBySourceTitle: String { return self._s[2843]! } + public var Weekday_Tuesday: String { return self._s[2805]! } + public var ChangePhoneNumberCode_Code: String { return self._s[2806]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2807]! } + public var Calls_CallTabDescription: String { return self._s[2808]! } + public var SocksProxySetup_UseProxy: String { return self._s[2810]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2811]! } + public var PasscodeSettings_AlphanumericCode: String { return self._s[2812]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[2813]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[2815]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2816]! } + public var Exceptions_AddToExceptions: String { return self._s[2817]! } + public var UserInfo_Title: String { return self._s[2818]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[2820]! } + public var ChatList_Unmute: String { return self._s[2822]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[2823]! } + public var Stats_GroupTopPostersTitle: String { return self._s[2824]! } + public var Username_CheckingUsername: String { return self._s[2825]! } + public var WallpaperColors_SetCustomColor: String { return self._s[2826]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[2830]! } + public var Location_ProximityAlertSetTitle: String { return self._s[2831]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[2832]! } + public var Settings_ChangePhoneNumber: String { return self._s[2833]! } + public var PeerInfo_PaneLinks: String { return self._s[2834]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[2837]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[2839]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[2840]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[2841]! } + public var Wallet_RestoreFailed_Title: String { return self._s[2842]! } + public var Stats_FollowersBySourceTitle: String { return self._s[2844]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2844]!, self._r[2844]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2845]!, self._r[2845]!, [_0, _1]) } - public var Compose_NewEncryptedChatTitle: String { return self._s[2845]! } - public var Channel_CommentsGroup_Header: String { return self._s[2847]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[2846]! } + public var Channel_CommentsGroup_Header: String { return self._s[2848]! } public func ShareFileTip_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2851]!, self._r[2851]!, [_0]) + return formatWithArgumentRanges(self._s[2852]!, self._r[2852]!, [_0]) } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2852]!, self._r[2852]!, [_1]) + return formatWithArgumentRanges(self._s[2853]!, self._r[2853]!, [_1]) } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[2854]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[2855]! } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2855]!, self._r[2855]!, [_0]) + return formatWithArgumentRanges(self._s[2856]!, self._r[2856]!, [_0]) } - public var Conversation_OpenBotLinkOpen: String { return self._s[2856]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[2857]! } - public var PrivacySettings_LastSeen: String { return self._s[2859]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[2860]! } - public var Theme_Colors_Proceed: String { return self._s[2861]! } - public var UserInfo_ScamBotWarning: String { return self._s[2862]! } - public var LogoutOptions_LogOut: String { return self._s[2864]! } - public var Conversation_SendMessage: String { return self._s[2865]! } - public var Passport_Address_Region: String { return self._s[2867]! } - public var MediaPicker_CameraRoll: String { return self._s[2869]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[2857]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[2858]! } + public var PrivacySettings_LastSeen: String { return self._s[2860]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[2861]! } + public var Theme_Colors_Proceed: String { return self._s[2862]! } + public var UserInfo_ScamBotWarning: String { return self._s[2863]! } + public var LogoutOptions_LogOut: String { return self._s[2865]! } + public var Conversation_SendMessage: String { return self._s[2866]! } + public var Passport_Address_Region: String { return self._s[2868]! } + public var MediaPicker_CameraRoll: String { return self._s[2870]! } public func VoiceOver_Chat_ForwardedFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2871]!, self._r[2871]!, [_0]) + return formatWithArgumentRanges(self._s[2872]!, self._r[2872]!, [_0]) } - public var Call_ReportSend: String { return self._s[2873]! } - public var Month_ShortJune: String { return self._s[2874]! } - public var AutoDownloadSettings_GroupChats: String { return self._s[2875]! } + public var Call_ReportSend: String { return self._s[2874]! } + public var Month_ShortJune: String { return self._s[2875]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[2876]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2878]!, self._r[2878]!, [_0]) + return formatWithArgumentRanges(self._s[2879]!, self._r[2879]!, [_0]) } - public var TwoStepAuth_DisableSuccess: String { return self._s[2879]! } - public var Cache_KeepMedia: String { return self._s[2880]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2880]! } + public var Cache_KeepMedia: String { return self._s[2881]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2881]!, self._r[2881]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_1, _2, _3]) } - public var Wallet_Alert_OK: String { return self._s[2882]! } - public var Appearance_LargeEmoji: String { return self._s[2883]! } + public var Wallet_Alert_OK: String { return self._s[2883]! } + public var Appearance_LargeEmoji: String { return self._s[2884]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2884]!, self._r[2884]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[2885]!, self._r[2885]!, [_1, _2, _3, _4, _5, _6]) } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2885]! } - public var Wallet_Navigation_Close: String { return self._s[2886]! } - public var Call_CameraConfirmationText: String { return self._s[2887]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2886]! } + public var Wallet_Navigation_Close: String { return self._s[2887]! } + public var Call_CameraConfirmationText: String { return self._s[2888]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2889]!, self._r[2889]!, [_0]) + return formatWithArgumentRanges(self._s[2890]!, self._r[2890]!, [_0]) } - public var VoiceOver_MessageContextReport: String { return self._s[2891]! } - public var VoiceChat_RemovePeer: String { return self._s[2892]! } - public var ChatListFolder_ExcludeChatsTitle: String { return self._s[2893]! } - public var NotificationsSound_Tritone: String { return self._s[2895]! } - public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[2896]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[2899]! } - public var Stats_GroupTopAdmin_Actions: String { return self._s[2900]! } - public var PeerInfo_AddToContacts: String { return self._s[2901]! } - public var AccessDenied_Title: String { return self._s[2902]! } - public var Tour_Title1: String { return self._s[2903]! } - public var VoiceOver_AttachMedia: String { return self._s[2904]! } + public var VoiceOver_MessageContextReport: String { return self._s[2892]! } + public var VoiceChat_RemovePeer: String { return self._s[2893]! } + public var ChatListFolder_ExcludeChatsTitle: String { return self._s[2894]! } + public var NotificationsSound_Tritone: String { return self._s[2896]! } + public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[2897]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[2900]! } + public var Stats_GroupTopAdmin_Actions: String { return self._s[2901]! } + public var PeerInfo_AddToContacts: String { return self._s[2902]! } + public var AccessDenied_Title: String { return self._s[2903]! } + public var Tour_Title1: String { return self._s[2904]! } + public var VoiceOver_AttachMedia: String { return self._s[2905]! } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2906]!, self._r[2906]!, [_0]) + return formatWithArgumentRanges(self._s[2907]!, self._r[2907]!, [_0]) } - public var Chat_Gifs_SavedSectionHeader: String { return self._s[2907]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2908]! } + public var Chat_Gifs_SavedSectionHeader: String { return self._s[2908]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2909]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2909]!, self._r[2909]!, [_0]) + return formatWithArgumentRanges(self._s[2910]!, self._r[2910]!, [_0]) } - public var Channel_AdminLog_MessagePreviousLink: String { return self._s[2910]! } - public var Wallet_Send_AddressText: String { return self._s[2911]! } - public var OldChannels_Title: String { return self._s[2912]! } - public var LoginPassword_FloodError: String { return self._s[2913]! } - public var Checkout_ErrorPaymentFailed: String { return self._s[2915]! } + public var Channel_AdminLog_MessagePreviousLink: String { return self._s[2911]! } + public var Wallet_Send_AddressText: String { return self._s[2912]! } + public var OldChannels_Title: String { return self._s[2913]! } + public var LoginPassword_FloodError: String { return self._s[2914]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[2916]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2916]!, self._r[2916]!, [_0]) + return formatWithArgumentRanges(self._s[2917]!, self._r[2917]!, [_0]) } - public var VoiceOver_Media_PlaybackPlay: String { return self._s[2919]! } - public var Passport_CorrectErrors: String { return self._s[2921]! } + public var VoiceOver_Media_PlaybackPlay: String { return self._s[2920]! } + public var Passport_CorrectErrors: String { return self._s[2922]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2922]!, self._r[2922]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_1, _2]) } - public var ChatListFolderSettings_Title: String { return self._s[2923]! } + public var ChatListFolderSettings_Title: String { return self._s[2924]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2924]!, self._r[2924]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2925]!, self._r[2925]!, [_1, _2]) } - public var PhotoEditor_HighlightsTool: String { return self._s[2925]! } - public var Contacts_NotRegisteredSection: String { return self._s[2928]! } + public var PhotoEditor_HighlightsTool: String { return self._s[2926]! } + public var Contacts_NotRegisteredSection: String { return self._s[2929]! } public func Call_VoiceChatInProgressCallMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2929]!, self._r[2929]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2930]!, self._r[2930]!, [_1, _2]) } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2930]!, self._r[2930]!, [_1]) + return formatWithArgumentRanges(self._s[2931]!, self._r[2931]!, [_1]) } - public var User_DeletedAccount: String { return self._s[2931]! } - public var Conversation_ViewContactDetails: String { return self._s[2932]! } - public var Conversation_Dice_u1F3B3: String { return self._s[2933]! } - public var WebSearch_GIFs: String { return self._s[2934]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2935]! } - public var Appearance_PreviewOutgoingText: String { return self._s[2936]! } - public var Calls_CallTabTitle: String { return self._s[2937]! } - public var Call_VoiceChatInProgressTitle: String { return self._s[2938]! } + public var User_DeletedAccount: String { return self._s[2932]! } + public var Conversation_ViewContactDetails: String { return self._s[2933]! } + public var Conversation_Dice_u1F3B3: String { return self._s[2934]! } + public var WebSearch_GIFs: String { return self._s[2935]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2936]! } + public var Appearance_PreviewOutgoingText: String { return self._s[2937]! } + public var Calls_CallTabTitle: String { return self._s[2938]! } + public var Call_VoiceChatInProgressTitle: String { return self._s[2939]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2939]!, self._r[2939]!, [_0]) + return formatWithArgumentRanges(self._s[2940]!, self._r[2940]!, [_0]) } - public var Channel_Status: String { return self._s[2940]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[2942]! } - public var VoiceOver_Chat_OptionSelected: String { return self._s[2943]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2944]! } + public var Channel_Status: String { return self._s[2941]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[2943]! } + public var VoiceOver_Chat_OptionSelected: String { return self._s[2944]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2945]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2945]!, self._r[2945]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2946]!, self._r[2946]!, [_0, _1]) } - public var Passport_Identity_ExpiryDateNone: String { return self._s[2947]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2949]! } - public var Month_ShortDecember: String { return self._s[2950]! } - public var Username_Help: String { return self._s[2951]! } - public var Login_InfoAvatarAdd: String { return self._s[2952]! } - public var Month_ShortMay: String { return self._s[2953]! } - public var DialogList_UnknownPinLimitError: String { return self._s[2954]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[2955]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[2956]! } - public var Weekday_ShortSunday: String { return self._s[2957]! } - public var Channel_Username_InvalidTooShort: String { return self._s[2958]! } - public var AuthSessions_TerminateSession: String { return self._s[2959]! } - public var Passport_Identity_FilesTitle: String { return self._s[2960]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[2948]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2950]! } + public var Month_ShortDecember: String { return self._s[2951]! } + public var Username_Help: String { return self._s[2952]! } + public var Login_InfoAvatarAdd: String { return self._s[2953]! } + public var Month_ShortMay: String { return self._s[2954]! } + public var DialogList_UnknownPinLimitError: String { return self._s[2955]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[2956]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[2957]! } + public var Weekday_ShortSunday: String { return self._s[2958]! } + public var Channel_Username_InvalidTooShort: String { return self._s[2959]! } + public var AuthSessions_TerminateSession: String { return self._s[2960]! } + public var Passport_Identity_FilesTitle: String { return self._s[2961]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2961]!, self._r[2961]!, [_0]) + return formatWithArgumentRanges(self._s[2962]!, self._r[2962]!, [_0]) } - public var PeopleNearby_MakeVisible: String { return self._s[2963]! } + public var PeopleNearby_MakeVisible: String { return self._s[2964]! } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2964]!, self._r[2964]!, [_0]) + return formatWithArgumentRanges(self._s[2965]!, self._r[2965]!, [_0]) } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2965]!, self._r[2965]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2966]!, self._r[2966]!, [_1, _2]) } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2966]!, self._r[2966]!, [_0]) + return formatWithArgumentRanges(self._s[2967]!, self._r[2967]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[2967]! } - public var Conversation_ContextMenuForward: String { return self._s[2968]! } - public var Channel_AdminLog_CanManageCalls: String { return self._s[2969]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[2968]! } + public var Conversation_ContextMenuForward: String { return self._s[2969]! } + public var Channel_AdminLog_CanManageCalls: String { return self._s[2970]! } public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2971]!, self._r[2971]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2972]!, self._r[2972]!, [_1, _2, _3]) } - public var Notification_GroupInviterSelf: String { return self._s[2972]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2974]! } - public var AuthSessions_CurrentSession: String { return self._s[2975]! } - public var Passport_Address_EditPassportRegistration: String { return self._s[2976]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[2977]! } - public var ChatSearch_ResultsTooltip: String { return self._s[2979]! } - public var CheckoutInfo_Pay: String { return self._s[2980]! } + public var Notification_GroupInviterSelf: String { return self._s[2973]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2975]! } + public var AuthSessions_CurrentSession: String { return self._s[2976]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2977]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[2978]! } + public var ChatSearch_ResultsTooltip: String { return self._s[2980]! } + public var CheckoutInfo_Pay: String { return self._s[2981]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2982]!, self._r[2982]!, [_0]) + return formatWithArgumentRanges(self._s[2983]!, self._r[2983]!, [_0]) } - public var GroupInfo_AddParticipant: String { return self._s[2983]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[2984]! } - public var ChatList_UndoArchiveText1: String { return self._s[2985]! } - public var Localization_LanguageCustom: String { return self._s[2986]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[2987]! } - public var Settings_UsernameEmpty: String { return self._s[2988]! } - public var Settings_FAQ_URL: String { return self._s[2989]! } + public var GroupInfo_AddParticipant: String { return self._s[2984]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[2985]! } + public var ChatList_UndoArchiveText1: String { return self._s[2986]! } + public var Localization_LanguageCustom: String { return self._s[2987]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[2988]! } + public var Settings_UsernameEmpty: String { return self._s[2989]! } + public var Settings_FAQ_URL: String { return self._s[2990]! } public func Conversation_PinMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2990]!, self._r[2990]!, [_0]) + return formatWithArgumentRanges(self._s[2991]!, self._r[2991]!, [_0]) } - public var Common_Select: String { return self._s[2992]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[2993]! } - public var Notification_PassportValueAddress: String { return self._s[2994]! } - public var Conversation_MessageDialogDelete: String { return self._s[2995]! } - public var Map_OpenInYandexNavigator: String { return self._s[2997]! } - public var DialogList_SearchSectionDialogs: String { return self._s[2998]! } - public var AccessDenied_Contacts: String { return self._s[2999]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3001]! } - public var Passport_ScanPassportHelp: String { return self._s[3002]! } - public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3003]! } - public var ChatListFolder_NameChannels: String { return self._s[3004]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3005]! } + public var Common_Select: String { return self._s[2993]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[2994]! } + public var Notification_PassportValueAddress: String { return self._s[2995]! } + public var Conversation_MessageDialogDelete: String { return self._s[2996]! } + public var Map_OpenInYandexNavigator: String { return self._s[2998]! } + public var DialogList_SearchSectionDialogs: String { return self._s[2999]! } + public var AccessDenied_Contacts: String { return self._s[3000]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[3002]! } + public var Passport_ScanPassportHelp: String { return self._s[3003]! } + public var Chat_PinnedListPreview_HidePinnedMessages: String { return self._s[3004]! } + public var ChatListFolder_NameChannels: String { return self._s[3005]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[3006]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3006]!, self._r[3006]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3007]!, self._r[3007]!, [_1, _2]) } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3007]! } - public var Conversation_GifTooltip: String { return self._s[3008]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[3008]! } + public var Conversation_GifTooltip: String { return self._s[3009]! } public func VoiceChat_InviteMemberToGroupFirstText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3009]!, self._r[3009]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3010]!, self._r[3010]!, [_1, _2]) } public func CHAT_VOICECHAT_INVITE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3010]!, self._r[3010]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_1, _2, _3]) } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3012]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3013]! } - public var VoiceChat_Connecting: String { return self._s[3014]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3015]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3016]! } - public var CreatePoll_Quiz: String { return self._s[3017]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[3018]! } - public var Watch_Message_Invoice: String { return self._s[3019]! } - public var Settings_AddAnotherAccount_Help: String { return self._s[3020]! } - public var Watch_Message_Unsupported: String { return self._s[3021]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[3013]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3014]! } + public var VoiceChat_Connecting: String { return self._s[3015]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3016]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3017]! } + public var CreatePoll_Quiz: String { return self._s[3018]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[3019]! } + public var Watch_Message_Invoice: String { return self._s[3020]! } + public var Settings_AddAnotherAccount_Help: String { return self._s[3021]! } + public var Watch_Message_Unsupported: String { return self._s[3022]! } public func Call_CameraOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3023]!, self._r[3023]!, [_0]) + return formatWithArgumentRanges(self._s[3024]!, self._r[3024]!, [_0]) } - public var AuthSessions_TerminateOtherSessions: String { return self._s[3024]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[3026]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3027]! } - public var Call_IncomingVoiceCall: String { return self._s[3028]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[3025]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[3027]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[3028]! } + public var Call_IncomingVoiceCall: String { return self._s[3029]! } public func Channel_AdminLog_MessageTransferedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3029]!, self._r[3029]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3030]!, self._r[3030]!, [_1, _2]) } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[3030]! } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3031]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3032]! } - public var Group_ErrorAccessDenied: String { return self._s[3033]! } - public var PasscodeSettings_HelpTop: String { return self._s[3034]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3035]! } - public var AddContact_SharedContactException: String { return self._s[3036]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[3037]! } - public var Privacy_TopPeers: String { return self._s[3038]! } - public var Web_OpenExternal: String { return self._s[3039]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[3040]! } - public var Channel_Management_LabelAdministrator: String { return self._s[3041]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[3031]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[3032]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[3033]! } + public var Group_ErrorAccessDenied: String { return self._s[3034]! } + public var PasscodeSettings_HelpTop: String { return self._s[3035]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3036]! } + public var AddContact_SharedContactException: String { return self._s[3037]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[3038]! } + public var Privacy_TopPeers: String { return self._s[3039]! } + public var Web_OpenExternal: String { return self._s[3040]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[3041]! } + public var Channel_Management_LabelAdministrator: String { return self._s[3042]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3042]!, self._r[3042]!, [_0]) + return formatWithArgumentRanges(self._s[3043]!, self._r[3043]!, [_0]) } - public var Permissions_Skip: String { return self._s[3043]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3044]! } - public var PeopleNearby_Title: String { return self._s[3045]! } - public var GroupInfo_SharedMediaNone: String { return self._s[3046]! } + public var Permissions_Skip: String { return self._s[3044]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3045]! } + public var PeopleNearby_Title: String { return self._s[3046]! } + public var GroupInfo_SharedMediaNone: String { return self._s[3047]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3048]!, self._r[3048]!, [_1]) + return formatWithArgumentRanges(self._s[3049]!, self._r[3049]!, [_1]) } - public var Profile_MessageLifetime1w: String { return self._s[3049]! } + public var Profile_MessageLifetime1w: String { return self._s[3050]! } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3050]!, self._r[3050]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3051]!, self._r[3051]!, [_1, _2, _3]) } - public var WebBrowser_DefaultBrowser: String { return self._s[3051]! } - public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3053]! } - public var EditTheme_Edit_BottomInfo: String { return self._s[3054]! } - public var Privacy_Forwards_Preview: String { return self._s[3055]! } - public var Settings_EditAccount: String { return self._s[3056]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3052]! } + public var Conversation_PinOlderMessageAlertTitle: String { return self._s[3054]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[3055]! } + public var Privacy_Forwards_Preview: String { return self._s[3056]! } + public var Settings_EditAccount: String { return self._s[3057]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3057]!, self._r[3057]!, [_0]) + return formatWithArgumentRanges(self._s[3058]!, self._r[3058]!, [_0]) } - public var TwoFactorSetup_Intro_Title: String { return self._s[3058]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[3059]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3060]!, self._r[3060]!, [_1]) + return formatWithArgumentRanges(self._s[3061]!, self._r[3061]!, [_1]) } - public var PeerInfo_ButtonVideoCall: String { return self._s[3061]! } + public var PeerInfo_ButtonVideoCall: String { return self._s[3062]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3062]!, self._r[3062]!, [_0]) + return formatWithArgumentRanges(self._s[3063]!, self._r[3063]!, [_0]) } - public var Login_InfoHelp: String { return self._s[3063]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3064]! } - public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3065]! } - public var Profile_MessageLifetime1d: String { return self._s[3066]! } - public var Group_UpgradeConfirmation: String { return self._s[3067]! } + public var Login_InfoHelp: String { return self._s[3064]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[3065]! } + public var VoiceChat_SpeakPermissionEveryone: String { return self._s[3066]! } + public var Profile_MessageLifetime1d: String { return self._s[3067]! } + public var Group_UpgradeConfirmation: String { return self._s[3068]! } public func PUSH_PINNED_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3069]!, self._r[3069]!, [_1, _2]) } - public var Appearance_RemoveThemeColor: String { return self._s[3069]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3070]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3071]! } + public var Appearance_RemoveThemeColor: String { return self._s[3070]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3071]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3072]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3072]!, self._r[3072]!, [_0]) + return formatWithArgumentRanges(self._s[3073]!, self._r[3073]!, [_0]) } - public var UserInfo_BotSettings: String { return self._s[3073]! } + public var UserInfo_BotSettings: String { return self._s[3074]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3075]!, self._r[3075]!, [_0]) + return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_0]) } - public var Permissions_ContactsText_v0: String { return self._s[3076]! } - public var Conversation_PinMessagesForMe: String { return self._s[3077]! } - public var VoiceChat_PanelJoin: String { return self._s[3078]! } - public var Conversation_DiscussionStarted: String { return self._s[3080]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3081]! } - public var SharedMedia_SearchNoResults: String { return self._s[3083]! } + public var Permissions_ContactsText_v0: String { return self._s[3077]! } + public var Conversation_PinMessagesForMe: String { return self._s[3078]! } + public var VoiceChat_PanelJoin: String { return self._s[3079]! } + public var Conversation_DiscussionStarted: String { return self._s[3081]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[3082]! } + public var SharedMedia_SearchNoResults: String { return self._s[3084]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3085]!, self._r[3085]!, [_0]) + return formatWithArgumentRanges(self._s[3086]!, self._r[3086]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3087]!, self._r[3087]!, [_0]) + return formatWithArgumentRanges(self._s[3088]!, self._r[3088]!, [_0]) } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3088]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3089]! } - public var Call_AudioRouteHeadphones: String { return self._s[3090]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[3089]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3090]! } + public var Call_AudioRouteHeadphones: String { return self._s[3091]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3092]!, self._r[3092]!, [_1]) + return formatWithArgumentRanges(self._s[3093]!, self._r[3093]!, [_1]) } - public var Passport_Identity_FilesView: String { return self._s[3093]! } - public var TwoStepAuth_SetupEmail: String { return self._s[3094]! } - public var Widget_ApplicationStartRequired: String { return self._s[3095]! } - public var PhotoEditor_Original: String { return self._s[3096]! } - public var Call_YourMicrophoneOff: String { return self._s[3097]! } - public var Permissions_ContactsAllow_v0: String { return self._s[3098]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3099]! } - public var PrivacyPolicy_Decline: String { return self._s[3100]! } - public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3101]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3102]! } - public var ChatListFolder_IncludeSectionInfo: String { return self._s[3103]! } + public var Passport_Identity_FilesView: String { return self._s[3094]! } + public var TwoStepAuth_SetupEmail: String { return self._s[3095]! } + public var Widget_ApplicationStartRequired: String { return self._s[3096]! } + public var PhotoEditor_Original: String { return self._s[3097]! } + public var Call_YourMicrophoneOff: String { return self._s[3098]! } + public var Permissions_ContactsAllow_v0: String { return self._s[3099]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[3100]! } + public var PrivacyPolicy_Decline: String { return self._s[3101]! } + public var SettingsSearch_Synonyms_ChatFolders: String { return self._s[3102]! } + public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[3103]! } + public var ChatListFolder_IncludeSectionInfo: String { return self._s[3104]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3104]!, self._r[3104]!, [_0]) + return formatWithArgumentRanges(self._s[3105]!, self._r[3105]!, [_0]) } - public var Passport_Identity_Name: String { return self._s[3105]! } - public var WallpaperPreview_PatternTitle: String { return self._s[3107]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3108]! } - public var WallpaperSearch_ColorOrange: String { return self._s[3110]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3111]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3112]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3113]! } - public var IntentsSettings_ResetAll: String { return self._s[3114]! } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3116]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3117]! } - public var Notification_Exceptions_Add: String { return self._s[3118]! } - public var Cache_Help: String { return self._s[3119]! } - public var Call_AudioRouteMute: String { return self._s[3120]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3121]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[3122]! } + public var Passport_Identity_Name: String { return self._s[3106]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3108]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[3109]! } + public var WallpaperSearch_ColorOrange: String { return self._s[3111]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[3112]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[3113]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3114]! } + public var IntentsSettings_ResetAll: String { return self._s[3115]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3117]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3118]! } + public var Notification_Exceptions_Add: String { return self._s[3119]! } + public var Cache_Help: String { return self._s[3120]! } + public var Call_AudioRouteMute: String { return self._s[3121]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[3122]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[3123]! } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3123]!, self._r[3123]!, [_1]) + return formatWithArgumentRanges(self._s[3124]!, self._r[3124]!, [_1]) } public func VoiceChat_Status_MembersFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3124]!, self._r[3124]!, [_1, _2]) - } - public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3125]!, self._r[3125]!, [_1, _2]) } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3126]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[3127]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3128]! } + public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3126]!, self._r[3126]!, [_1, _2]) + } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3127]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[3128]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[3129]! } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3129]!, self._r[3129]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3130]!, self._r[3130]!, [_1, _2, _3]) } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3130]! } - public var ClearCache_StorageFree: String { return self._s[3131]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[3131]! } + public var ClearCache_StorageFree: String { return self._s[3132]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3132]!, self._r[3132]!, [_0]) + return formatWithArgumentRanges(self._s[3133]!, self._r[3133]!, [_0]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[3133]! } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[3135]! } - public var DialogList_Typing: String { return self._s[3136]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[3134]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[3136]! } + public var DialogList_Typing: String { return self._s[3137]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3137]!, self._r[3137]!, [_0]) + return formatWithArgumentRanges(self._s[3138]!, self._r[3138]!, [_0]) } - public var Target_SelectGroup: String { return self._s[3138]! } - public var AuthSessions_IncompleteAttempts: String { return self._s[3139]! } + public var Target_SelectGroup: String { return self._s[3139]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3140]! } public func Notification_ProximityReached(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3140]!, self._r[3140]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3141]!, self._r[3141]!, [_1, _2, _3]) } - public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3141]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3142]! } + public var Chat_PinnedListPreview_ShowAllMessages: String { return self._s[3142]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[3143]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3143]!, self._r[3143]!, [_0]) + return formatWithArgumentRanges(self._s[3144]!, self._r[3144]!, [_0]) } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3144]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3145]! } - public var ChatSettings_TextSize: String { return self._s[3146]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3148]! } - public var Map_SendThisPlace: String { return self._s[3149]! } - public var Conversation_TextCopied: String { return self._s[3150]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3151]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3152]! } - public var Call_ShareStats: String { return self._s[3153]! } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3155]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[3156]! } - public var Settings_Support: String { return self._s[3157]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3158]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3145]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[3146]! } + public var ChatSettings_TextSize: String { return self._s[3147]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[3149]! } + public var Map_SendThisPlace: String { return self._s[3150]! } + public var Conversation_TextCopied: String { return self._s[3151]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3152]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3153]! } + public var Call_ShareStats: String { return self._s[3154]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3156]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[3157]! } + public var Settings_Support: String { return self._s[3158]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[3159]! } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3160]!, self._r[3160]!, [_0]) + return formatWithArgumentRanges(self._s[3161]!, self._r[3161]!, [_0]) } - public var Watch_Conversation_GroupInfo: String { return self._s[3161]! } - public var Tour_Text4: String { return self._s[3162]! } - public var PasscodeSettings_AutoLock: String { return self._s[3164]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3165]! } - public var Bot_DescriptionTitle: String { return self._s[3166]! } - public var Map_LocationTitle: String { return self._s[3167]! } - public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3168]! } + public var Watch_Conversation_GroupInfo: String { return self._s[3162]! } + public var Tour_Text4: String { return self._s[3163]! } + public var PasscodeSettings_AutoLock: String { return self._s[3165]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3166]! } + public var Bot_DescriptionTitle: String { return self._s[3167]! } + public var Map_LocationTitle: String { return self._s[3168]! } + public var ChatListFolder_ExcludeSectionInfo: String { return self._s[3169]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3169]!, self._r[3169]!, [_1]) + return formatWithArgumentRanges(self._s[3170]!, self._r[3170]!, [_1]) } - public var Login_EmailNotConfiguredError: String { return self._s[3170]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[3171]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[3172]! } - public var Permissions_CellularDataText_v0: String { return self._s[3173]! } - public var Conversation_EncryptionProcessing: String { return self._s[3174]! } - public var GroupPermission_Delete: String { return self._s[3175]! } - public var Contacts_SortByName: String { return self._s[3176]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3177]! } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[3178]! } - public var Group_Management_AddModeratorHelp: String { return self._s[3180]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3181]! } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3182]! } + public var Login_EmailNotConfiguredError: String { return self._s[3171]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[3172]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[3173]! } + public var Permissions_CellularDataText_v0: String { return self._s[3174]! } + public var Conversation_EncryptionProcessing: String { return self._s[3175]! } + public var GroupPermission_Delete: String { return self._s[3176]! } + public var Contacts_SortByName: String { return self._s[3177]! } + public var TwoStepAuth_RecoveryUnavailable: String { return self._s[3178]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[3179]! } + public var Group_Management_AddModeratorHelp: String { return self._s[3181]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[3182]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3183]! } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3184]!, self._r[3184]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_1, _2, _3]) } - public var CallFeedback_IncludeLogsInfo: String { return self._s[3185]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[3186]! } public func PUSH_CHANNEL_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3186]!, self._r[3186]!, [_1]) + return formatWithArgumentRanges(self._s[3187]!, self._r[3187]!, [_1]) } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3187]!, self._r[3187]!, [_0]) + return formatWithArgumentRanges(self._s[3188]!, self._r[3188]!, [_0]) } - public var ChatList_Context_Delete: String { return self._s[3188]! } - public var VoiceChat_InviteMember: String { return self._s[3189]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3190]! } - public var Conversation_Processing: String { return self._s[3191]! } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[3192]! } - public var ChatSettings_Stickers: String { return self._s[3193]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3194]! } - public var Passport_Language_cs: String { return self._s[3195]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3197]! } - public var Conversation_Contact: String { return self._s[3198]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[3199]! } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[3200]! } - public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[3201]! } - public var Theme_Unsupported: String { return self._s[3202]! } - public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[3203]! } - public var Privacy_TopPeersWarning: String { return self._s[3204]! } + public var ChatList_Context_Delete: String { return self._s[3189]! } + public var VoiceChat_InviteMember: String { return self._s[3190]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[3191]! } + public var Conversation_Processing: String { return self._s[3192]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[3193]! } + public var ChatSettings_Stickers: String { return self._s[3194]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3195]! } + public var Passport_Language_cs: String { return self._s[3196]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3198]! } + public var Conversation_Contact: String { return self._s[3199]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[3200]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[3201]! } + public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[3202]! } + public var Theme_Unsupported: String { return self._s[3203]! } + public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[3204]! } + public var Privacy_TopPeersWarning: String { return self._s[3205]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3206]!, self._r[3206]!, [_0]) + return formatWithArgumentRanges(self._s[3207]!, self._r[3207]!, [_0]) } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3207]! } - public var TwoStepAuth_RemovePassword: String { return self._s[3208]! } - public var Settings_CheckPhoneNumberText: String { return self._s[3209]! } - public var PeopleNearby_Users: String { return self._s[3210]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3211]! } - public var Settings_SetProfilePhoto: String { return self._s[3212]! } - public var Conversation_ContextMenuBan: String { return self._s[3213]! } - public var KeyCommand_ScrollUp: String { return self._s[3214]! } - public var Settings_ChatSettings: String { return self._s[3216]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3208]! } + public var TwoStepAuth_RemovePassword: String { return self._s[3209]! } + public var Settings_CheckPhoneNumberText: String { return self._s[3210]! } + public var PeopleNearby_Users: String { return self._s[3211]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3212]! } + public var Settings_SetProfilePhoto: String { return self._s[3213]! } + public var Conversation_ContextMenuBan: String { return self._s[3214]! } + public var KeyCommand_ScrollUp: String { return self._s[3215]! } + public var Settings_ChatSettings: String { return self._s[3217]! } public func PUSH_CHAT_MESSAGE_VIDEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3217]!, self._r[3217]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3218]!, self._r[3218]!, [_1, _2]) } - public var Stats_GroupTopInvitersTitle: String { return self._s[3218]! } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3219]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3221]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3222]! } - public var Stats_GroupTopPoster_Promote: String { return self._s[3223]! } - public var Cache_Title: String { return self._s[3224]! } - public var Clipboard_SendPhoto: String { return self._s[3225]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3227]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3228]! } - public var WatchRemote_AlertTitle: String { return self._s[3229]! } - public var Appearance_ReduceMotion: String { return self._s[3230]! } + public var Stats_GroupTopInvitersTitle: String { return self._s[3219]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3220]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[3222]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[3223]! } + public var Stats_GroupTopPoster_Promote: String { return self._s[3224]! } + public var Cache_Title: String { return self._s[3225]! } + public var Clipboard_SendPhoto: String { return self._s[3226]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[3228]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3229]! } + public var WatchRemote_AlertTitle: String { return self._s[3230]! } + public var Appearance_ReduceMotion: String { return self._s[3231]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3234]!, self._r[3234]!, [_1, _2]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[3234]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3235]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[3236]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[3235]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[3236]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[3237]! } public func Call_CallInProgressVoiceChatMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3237]!, self._r[3237]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3238]!, self._r[3238]!, [_1, _2]) } - public var Wallet_TransactionInfo_CopyAddress: String { return self._s[3239]! } + public var Wallet_TransactionInfo_CopyAddress: String { return self._s[3240]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3240]!, self._r[3240]!, [_0]) + return formatWithArgumentRanges(self._s[3241]!, self._r[3241]!, [_0]) } - public var ChatListFolder_DiscardConfirmation: String { return self._s[3241]! } + public var ChatListFolder_DiscardConfirmation: String { return self._s[3242]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3242]!, self._r[3242]!, [_0]) + return formatWithArgumentRanges(self._s[3243]!, self._r[3243]!, [_0]) } - public var ChatState_WaitingForNetwork: String { return self._s[3243]! } - public var GroupInfo_Sound: String { return self._s[3244]! } - public var NotificationsSound_Telegraph: String { return self._s[3245]! } - public var NotificationsSound_Hello: String { return self._s[3246]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[3247]! } - public var Wallet_Settings_BackupWallet: String { return self._s[3248]! } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3249]! } - public var Conversation_HoldForVideo: String { return self._s[3250]! } - public var Conversation_PinOlderMessageAlertText: String { return self._s[3251]! } - public var Wallet_Configuration_ApplyErrorTextURLInvalidData: String { return self._s[3252]! } - public var Wallet_RestoreFailed_EnterWords: String { return self._s[3253]! } - public var Appearance_ShareTheme: String { return self._s[3254]! } - public var TwoStepAuth_SetupHint: String { return self._s[3255]! } - public var Wallet_Created_Text: String { return self._s[3258]! } - public var Stats_GrowthTitle: String { return self._s[3259]! } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3260]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[3261]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3262]! } - public var GroupPermission_NoSendMessages: String { return self._s[3265]! } - public var Conversation_SetReminder_Title: String { return self._s[3266]! } - public var Privacy_Calls_CustomHelp: String { return self._s[3267]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3268]! } + public var ChatState_WaitingForNetwork: String { return self._s[3244]! } + public var GroupInfo_Sound: String { return self._s[3245]! } + public var NotificationsSound_Telegraph: String { return self._s[3246]! } + public var NotificationsSound_Hello: String { return self._s[3247]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[3248]! } + public var Wallet_Settings_BackupWallet: String { return self._s[3249]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[3250]! } + public var Conversation_HoldForVideo: String { return self._s[3251]! } + public var Conversation_PinOlderMessageAlertText: String { return self._s[3252]! } + public var Wallet_Configuration_ApplyErrorTextURLInvalidData: String { return self._s[3253]! } + public var Wallet_RestoreFailed_EnterWords: String { return self._s[3254]! } + public var Appearance_ShareTheme: String { return self._s[3255]! } + public var TwoStepAuth_SetupHint: String { return self._s[3256]! } + public var Wallet_Created_Text: String { return self._s[3259]! } + public var Stats_GrowthTitle: String { return self._s[3260]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3261]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[3262]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[3263]! } + public var GroupPermission_NoSendMessages: String { return self._s[3266]! } + public var Conversation_SetReminder_Title: String { return self._s[3267]! } + public var Privacy_Calls_CustomHelp: String { return self._s[3268]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3269]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_0]) + return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_0]) } - public var Undo_SecretChatDeleted: String { return self._s[3271]! } - public var PhotoEditor_ContrastTool: String { return self._s[3272]! } - public var Privacy_Forwards: String { return self._s[3273]! } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[3274]! } - public var KeyCommand_SendMessage: String { return self._s[3276]! } + public var Undo_SecretChatDeleted: String { return self._s[3272]! } + public var PhotoEditor_ContrastTool: String { return self._s[3273]! } + public var Privacy_Forwards: String { return self._s[3274]! } + public var AuthSessions_LoggedInWithTelegram: String { return self._s[3275]! } + public var KeyCommand_SendMessage: String { return self._s[3277]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3278]!, self._r[3278]!, [_1, _2]) } - public var GroupPermission_NoSendGifs: String { return self._s[3278]! } - public var Wallet_Month_ShortJune: String { return self._s[3279]! } - public var Notification_MessageLifetime2s: String { return self._s[3280]! } - public var Message_Theme: String { return self._s[3281]! } - public var Conversation_Dice_u1F3AF: String { return self._s[3284]! } + public var GroupPermission_NoSendGifs: String { return self._s[3279]! } + public var Wallet_Month_ShortJune: String { return self._s[3280]! } + public var Notification_MessageLifetime2s: String { return self._s[3281]! } + public var Message_Theme: String { return self._s[3282]! } + public var Conversation_Dice_u1F3AF: String { return self._s[3285]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3285]!, self._r[3285]!, [_0]) + return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_0]) } - public var Group_UpgradeNoticeHeader: String { return self._s[3287]! } - public var PeerInfo_BioExpand: String { return self._s[3288]! } - public var Passport_DeletePersonalDetails: String { return self._s[3289]! } - public var Widget_NoUsers: String { return self._s[3290]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[3291]! } - public var Login_TermsOfServiceDecline: String { return self._s[3292]! } - public var CreatePoll_QuizTip: String { return self._s[3294]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[3295]! } - public var MessagePoll_SubmitVote: String { return self._s[3297]! } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[3298]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[3299]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3300]! } - public var Conversation_UpdateTelegram: String { return self._s[3301]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3288]! } + public var PeerInfo_BioExpand: String { return self._s[3289]! } + public var Passport_DeletePersonalDetails: String { return self._s[3290]! } + public var Widget_NoUsers: String { return self._s[3291]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[3292]! } + public var Login_TermsOfServiceDecline: String { return self._s[3293]! } + public var CreatePoll_QuizTip: String { return self._s[3295]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[3296]! } + public var MessagePoll_SubmitVote: String { return self._s[3298]! } + public var ChatSettings_AutoDownloadEnabled: String { return self._s[3299]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[3300]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3301]! } + public var Conversation_UpdateTelegram: String { return self._s[3302]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_0]) + return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3303]! } - public var CallSettings_Always: String { return self._s[3304]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[3305]! } - public var Login_TermsOfServiceHeader: String { return self._s[3306]! } - public var KeyCommand_ChatInfo: String { return self._s[3307]! } - public var MessagePoll_LabelPoll: String { return self._s[3308]! } - public var Paint_Clear: String { return self._s[3309]! } - public var PeerInfo_ButtonMute: String { return self._s[3310]! } - public var LastSeen_WithinAWeek: String { return self._s[3311]! } - public var Passport_Identity_FrontSide: String { return self._s[3312]! } - public var Stickers_GroupStickers: String { return self._s[3313]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3314]! } + public var UserInfo_About_Placeholder: String { return self._s[3304]! } + public var CallSettings_Always: String { return self._s[3305]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[3306]! } + public var Login_TermsOfServiceHeader: String { return self._s[3307]! } + public var KeyCommand_ChatInfo: String { return self._s[3308]! } + public var MessagePoll_LabelPoll: String { return self._s[3309]! } + public var Paint_Clear: String { return self._s[3310]! } + public var PeerInfo_ButtonMute: String { return self._s[3311]! } + public var LastSeen_WithinAWeek: String { return self._s[3312]! } + public var Passport_Identity_FrontSide: String { return self._s[3313]! } + public var Stickers_GroupStickers: String { return self._s[3314]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[3315]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3315]!, self._r[3315]!, [_0]) + return formatWithArgumentRanges(self._s[3316]!, self._r[3316]!, [_0]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3318]!, self._r[3318]!, [_1]) + return formatWithArgumentRanges(self._s[3319]!, self._r[3319]!, [_1]) } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3319]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[3320]! } + public var SocksProxySetup_ProxyStatusConnected: String { return self._s[3320]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[3321]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3321]!, self._r[3321]!, [_0]) + return formatWithArgumentRanges(self._s[3322]!, self._r[3322]!, [_0]) } - public var Wallet_Send_AmountText: String { return self._s[3322]! } - public var WebSearch_SearchNoResults: String { return self._s[3324]! } - public var Channel_DiscussionGroup_Create: String { return self._s[3325]! } - public var Passport_Language_es: String { return self._s[3326]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3327]! } - public var Wallet_Intro_Title: String { return self._s[3328]! } - public var Map_LiveLocationShowAll: String { return self._s[3329]! } - public var Cache_MaximumCacheSizeHelp: String { return self._s[3331]! } - public var Map_OpenInGoogleMaps: String { return self._s[3332]! } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3334]! } - public var EditTheme_Create_BottomInfo: String { return self._s[3335]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[3336]! } + public var Wallet_Send_AmountText: String { return self._s[3323]! } + public var WebSearch_SearchNoResults: String { return self._s[3325]! } + public var Channel_DiscussionGroup_Create: String { return self._s[3326]! } + public var Passport_Language_es: String { return self._s[3327]! } + public var EnterPasscode_EnterCurrentPasscode: String { return self._s[3328]! } + public var Wallet_Intro_Title: String { return self._s[3329]! } + public var Map_LiveLocationShowAll: String { return self._s[3330]! } + public var Cache_MaximumCacheSizeHelp: String { return self._s[3332]! } + public var Map_OpenInGoogleMaps: String { return self._s[3333]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[3335]! } + public var EditTheme_Create_BottomInfo: String { return self._s[3336]! } + public var PhotoEditor_BlurToolLinear: String { return self._s[3337]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3337]!, self._r[3337]!, [_0]) + return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_0]) } - public var Passport_Phone_Delete: String { return self._s[3338]! } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3339]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[3340]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3341]! } + public var Passport_Phone_Delete: String { return self._s[3339]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[3340]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[3341]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[3342]! } public func EncryptionKey_Description(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3342]!, self._r[3342]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_1, _2]) } - public var LogoutOptions_LogOutInfo: String { return self._s[3343]! } - public var Wallet_Month_GenAugust: String { return self._s[3344]! } - public var Cache_ByPeerHeader: String { return self._s[3345]! } - public var Username_InvalidCharacters: String { return self._s[3346]! } - public var Wallet_Qr_Title: String { return self._s[3348]! } - public var Checkout_ShippingAddress: String { return self._s[3349]! } + public var LogoutOptions_LogOutInfo: String { return self._s[3344]! } + public var Wallet_Month_GenAugust: String { return self._s[3345]! } + public var Cache_ByPeerHeader: String { return self._s[3346]! } + public var Username_InvalidCharacters: String { return self._s[3347]! } + public var Wallet_Qr_Title: String { return self._s[3349]! } + public var Checkout_ShippingAddress: String { return self._s[3350]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3350]!, self._r[3350]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3351]!, self._r[3351]!, [_1, _2, _3, _4]) } - public var Conversation_AddContact: String { return self._s[3352]! } - public var Passport_Address_EditUtilityBill: String { return self._s[3353]! } - public var Message_Video: String { return self._s[3354]! } + public var Conversation_AddContact: String { return self._s[3353]! } + public var Passport_Address_EditUtilityBill: String { return self._s[3354]! } + public var Message_Video: String { return self._s[3355]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3355]!, self._r[3355]!, [_0]) + return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_0]) } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[3357]!, self._r[3357]!, ["\(_0)"]) } - public var Passport_Language_km: String { return self._s[3357]! } + public var Passport_Language_km: String { return self._s[3358]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3358]!, self._r[3358]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3359]!, self._r[3359]!, [_1, _2, _3]) } - public var EmptyGroupInfo_Line4: String { return self._s[3359]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3361]! } - public var Notification_CallCanceledShort: String { return self._s[3362]! } - public var PhotoEditor_FadeTool: String { return self._s[3363]! } - public var Group_PublicLink_Info: String { return self._s[3364]! } - public var Contacts_DeselectAll: String { return self._s[3365]! } - public var Conversation_Moderate_Delete: String { return self._s[3366]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3367]! } - public var NotificationsSound_Note: String { return self._s[3370]! } + public var EmptyGroupInfo_Line4: String { return self._s[3360]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[3362]! } + public var Notification_CallCanceledShort: String { return self._s[3363]! } + public var PhotoEditor_FadeTool: String { return self._s[3364]! } + public var Group_PublicLink_Info: String { return self._s[3365]! } + public var Contacts_DeselectAll: String { return self._s[3366]! } + public var Conversation_Moderate_Delete: String { return self._s[3367]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3368]! } + public var NotificationsSound_Note: String { return self._s[3371]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3371]!, self._r[3371]!, [_0]) + return formatWithArgumentRanges(self._s[3372]!, self._r[3372]!, [_0]) } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3372]! } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3374]! } - public var DialogList_SearchSectionGlobal: String { return self._s[3375]! } - public var AccessDenied_Settings: String { return self._s[3376]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3377]! } - public var AuthSessions_EmptyTitle: String { return self._s[3378]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3379]! } - public var GroupInfo_GroupType: String { return self._s[3380]! } - public var Calls_Missed: String { return self._s[3381]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3382]! } - public var Passport_Language_uz: String { return self._s[3383]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3384]! } - public var PhotoEditor_BlurToolPortrait: String { return self._s[3385]! } - public var Map_ChooseLocationTitle: String { return self._s[3386]! } - public var Checkout_EnterPassword: String { return self._s[3387]! } - public var GroupInfo_ConvertToSupergroup: String { return self._s[3388]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3389]! } - public var NetworkUsageSettings_Title: String { return self._s[3390]! } - public var Location_ProximityAlertCancelled: String { return self._s[3391]! } - public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3392]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[3393]! } - public var Compose_NewChannel: String { return self._s[3394]! } - public var Privacy_PaymentsClearInfo: String { return self._s[3396]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[3373]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3375]! } + public var DialogList_SearchSectionGlobal: String { return self._s[3376]! } + public var AccessDenied_Settings: String { return self._s[3377]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3378]! } + public var AuthSessions_EmptyTitle: String { return self._s[3379]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[3380]! } + public var GroupInfo_GroupType: String { return self._s[3381]! } + public var Calls_Missed: String { return self._s[3382]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3383]! } + public var Passport_Language_uz: String { return self._s[3384]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3385]! } + public var PhotoEditor_BlurToolPortrait: String { return self._s[3386]! } + public var Map_ChooseLocationTitle: String { return self._s[3387]! } + public var Checkout_EnterPassword: String { return self._s[3388]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[3389]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3390]! } + public var NetworkUsageSettings_Title: String { return self._s[3391]! } + public var Location_ProximityAlertCancelled: String { return self._s[3392]! } + public var SettingsSearch_Synonyms_ChatSettings_IntentsSettings: String { return self._s[3393]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[3394]! } + public var Compose_NewChannel: String { return self._s[3395]! } + public var Privacy_PaymentsClearInfo: String { return self._s[3397]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3397]!, self._r[3397]!, [_1]) + return formatWithArgumentRanges(self._s[3398]!, self._r[3398]!, [_1]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3398]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3399]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[3402]! } - public var WallpaperSearch_ColorBrown: String { return self._s[3403]! } - public var Appearance_AppIconDefault: String { return self._s[3404]! } - public var Wallet_Month_GenJune: String { return self._s[3407]! } - public var StickerSettings_ContextInfo: String { return self._s[3408]! } - public var Channel_AddBotErrorNoRights: String { return self._s[3409]! } - public var Passport_FieldPhone: String { return self._s[3411]! } - public var Contacts_PermissionsTitle: String { return self._s[3412]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3413]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3399]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3400]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[3403]! } + public var WallpaperSearch_ColorBrown: String { return self._s[3404]! } + public var Appearance_AppIconDefault: String { return self._s[3405]! } + public var Wallet_Month_GenJune: String { return self._s[3408]! } + public var StickerSettings_ContextInfo: String { return self._s[3409]! } + public var Channel_AddBotErrorNoRights: String { return self._s[3410]! } + public var Passport_FieldPhone: String { return self._s[3412]! } + public var Contacts_PermissionsTitle: String { return self._s[3413]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3414]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3414]!, self._r[3414]!, [_0]) + return formatWithArgumentRanges(self._s[3415]!, self._r[3415]!, [_0]) } - public var Bot_Unblock: String { return self._s[3415]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[3416]! } - public var Passport_PasswordHelp: String { return self._s[3417]! } - public var Watch_Conversation_UserInfo: String { return self._s[3418]! } + public var Bot_Unblock: String { return self._s[3416]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[3417]! } + public var Passport_PasswordHelp: String { return self._s[3418]! } + public var Watch_Conversation_UserInfo: String { return self._s[3419]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3422]!, self._r[3422]!, [_0]) + return formatWithArgumentRanges(self._s[3423]!, self._r[3423]!, [_0]) } - public var State_Connecting: String { return self._s[3424]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3425]! } - public var TextFormat_AddLinkPlaceholder: String { return self._s[3426]! } - public var Conversation_Dice_u1F3B2: String { return self._s[3427]! } + public var State_Connecting: String { return self._s[3425]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3426]! } + public var TextFormat_AddLinkPlaceholder: String { return self._s[3427]! } + public var Conversation_Dice_u1F3B2: String { return self._s[3428]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3428]!, self._r[3428]!, [_0]) + return formatWithArgumentRanges(self._s[3429]!, self._r[3429]!, [_0]) } - public var Conversation_SendingOptionsTooltip: String { return self._s[3429]! } - public var ChatList_UndoArchiveTitle: String { return self._s[3430]! } - public var ChatList_EmptyChatListNewMessage: String { return self._s[3431]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3433]! } - public var PhotoEditor_BlurToolOff: String { return self._s[3434]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[3435]! } - public var Weekday_Saturday: String { return self._s[3436]! } - public var DialogList_Unread: String { return self._s[3437]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3438]! } - public var Stats_GroupPosters: String { return self._s[3439]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[3430]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3431]! } + public var ChatList_EmptyChatListNewMessage: String { return self._s[3432]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3434]! } + public var PhotoEditor_BlurToolOff: String { return self._s[3435]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[3436]! } + public var Weekday_Saturday: String { return self._s[3437]! } + public var DialogList_Unread: String { return self._s[3438]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[3439]! } + public var Stats_GroupPosters: String { return self._s[3440]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3440]!, self._r[3440]!, [_1]) + return formatWithArgumentRanges(self._s[3441]!, self._r[3441]!, [_1]) } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3443]!, self._r[3443]!, [_0]) + return formatWithArgumentRanges(self._s[3444]!, self._r[3444]!, [_0]) } - public var ReportPeer_ReasonChildAbuse: String { return self._s[3444]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[3445]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3445]!, self._r[3445]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3446]!, self._r[3446]!, [_1, _2]) } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[3446]! } - public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3448]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3449]! } - public var Passport_Language_dv: String { return self._s[3450]! } - public var GroupPermission_AddSuccess: String { return self._s[3453]! } - public var Passport_Email_Help: String { return self._s[3454]! } - public var Call_ReportPlaceholder: String { return self._s[3455]! } - public var CreatePoll_AddOption: String { return self._s[3456]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3457]! } - public var PeerInfo_ButtonLeave: String { return self._s[3458]! } - public var PhotoEditor_TiltShift: String { return self._s[3461]! } - public var SecretGif_Title: String { return self._s[3463]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[3464]! } - public var SocksProxySetup_Connecting: String { return self._s[3465]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3466]! } - public var ContactInfo_PhoneLabelWork: String { return self._s[3467]! } - public var Stats_GroupTopHoursTitle: String { return self._s[3468]! } - public var Compose_NewMessage: String { return self._s[3469]! } - public var VoiceOver_Common_SwitchHint: String { return self._s[3470]! } - public var NotificationsSound_Synth: String { return self._s[3471]! } - public var Conversation_FileOpenIn: String { return self._s[3472]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[3473]! } - public var UserInfo_SendMessage: String { return self._s[3474]! } - public var Checkout_PayWithFaceId: String { return self._s[3475]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[3447]! } + public var AutoNightTheme_UseSunsetSunrise: String { return self._s[3449]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[3450]! } + public var Passport_Language_dv: String { return self._s[3451]! } + public var GroupPermission_AddSuccess: String { return self._s[3454]! } + public var Passport_Email_Help: String { return self._s[3455]! } + public var Call_ReportPlaceholder: String { return self._s[3456]! } + public var CreatePoll_AddOption: String { return self._s[3457]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3458]! } + public var PeerInfo_ButtonLeave: String { return self._s[3459]! } + public var PhotoEditor_TiltShift: String { return self._s[3462]! } + public var SecretGif_Title: String { return self._s[3464]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[3465]! } + public var SocksProxySetup_Connecting: String { return self._s[3466]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3467]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[3468]! } + public var Stats_GroupTopHoursTitle: String { return self._s[3469]! } + public var Compose_NewMessage: String { return self._s[3470]! } + public var VoiceOver_Common_SwitchHint: String { return self._s[3471]! } + public var NotificationsSound_Synth: String { return self._s[3472]! } + public var Conversation_FileOpenIn: String { return self._s[3473]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[3474]! } + public var UserInfo_SendMessage: String { return self._s[3475]! } + public var Checkout_PayWithFaceId: String { return self._s[3476]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3476]!, self._r[3476]!, [_0]) + return formatWithArgumentRanges(self._s[3477]!, self._r[3477]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[3477]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3478]! } - public var Conversation_ViewChannel: String { return self._s[3479]! } + public var TextFormat_Strikethrough: String { return self._s[3478]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[3479]! } + public var Conversation_ViewChannel: String { return self._s[3480]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3480]!, self._r[3480]!, [_0]) + return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_0]) } - public var Channel_Stickers_Placeholder: String { return self._s[3481]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3482]! } - public var Camera_FlashAuto: String { return self._s[3483]! } - public var Conversation_EncryptedDescription1: String { return self._s[3484]! } - public var LocalGroup_Text: String { return self._s[3485]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3486]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[3487]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[3488]! } - public var Conversation_EncryptedDescription2: String { return self._s[3489]! } - public var Notification_GroupActivated: String { return self._s[3490]! } - public var LastSeen_Lately: String { return self._s[3491]! } - public var Conversation_EncryptedDescription3: String { return self._s[3492]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3493]! } - public var Conversation_SwipeToReplyHintText: String { return self._s[3494]! } - public var Conversation_EncryptedDescription4: String { return self._s[3495]! } - public var SharedMedia_EmptyTitle: String { return self._s[3496]! } - public var Wallet_Configuration_Apply: String { return self._s[3497]! } - public var Appearance_CreateTheme: String { return self._s[3498]! } - public var Stats_SharesPerPost: String { return self._s[3499]! } - public var Contacts_TabTitle: String { return self._s[3500]! } - public var Weekday_ShortThursday: String { return self._s[3501]! } - public var MessageTimer_Forever: String { return self._s[3502]! } - public var ChatListFolder_CategoryArchived: String { return self._s[3503]! } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3504]! } - public var EditTheme_Create_TopInfo: String { return self._s[3506]! } - public var Month_GenDecember: String { return self._s[3507]! } - public var EnterPasscode_EnterPasscode: String { return self._s[3508]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3509]! } - public var PeopleNearby_CreateGroup: String { return self._s[3511]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3512]! } - public var Paint_ClearConfirm: String { return self._s[3513]! } - public var ChatList_ReadAll: String { return self._s[3514]! } - public var ChatSettings_IntentsSettings: String { return self._s[3515]! } - public var Passport_PassportInformation: String { return self._s[3517]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3519]! } - public var Location_ProximityNotification_DistanceMI: String { return self._s[3522]! } - public var PhotoEditor_ExposureTool: String { return self._s[3523]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3524]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[3525]! } - public var Stats_GroupTopPoster_History: String { return self._s[3526]! } - public var UserInfo_AddPhone: String { return self._s[3527]! } - public var Media_SendWithTimer: String { return self._s[3529]! } - public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3530]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3531]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3532]! } - public var ChatList_Context_Unarchive: String { return self._s[3534]! } + public var Channel_Stickers_Placeholder: String { return self._s[3482]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3483]! } + public var Camera_FlashAuto: String { return self._s[3484]! } + public var Conversation_EncryptedDescription1: String { return self._s[3485]! } + public var LocalGroup_Text: String { return self._s[3486]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[3487]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[3488]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[3489]! } + public var Conversation_EncryptedDescription2: String { return self._s[3490]! } + public var Notification_GroupActivated: String { return self._s[3491]! } + public var LastSeen_Lately: String { return self._s[3492]! } + public var Conversation_EncryptedDescription3: String { return self._s[3493]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[3494]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3495]! } + public var Conversation_EncryptedDescription4: String { return self._s[3496]! } + public var SharedMedia_EmptyTitle: String { return self._s[3497]! } + public var Wallet_Configuration_Apply: String { return self._s[3498]! } + public var Appearance_CreateTheme: String { return self._s[3499]! } + public var Stats_SharesPerPost: String { return self._s[3500]! } + public var Contacts_TabTitle: String { return self._s[3501]! } + public var Weekday_ShortThursday: String { return self._s[3502]! } + public var MessageTimer_Forever: String { return self._s[3503]! } + public var ChatListFolder_CategoryArchived: String { return self._s[3504]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3505]! } + public var EditTheme_Create_TopInfo: String { return self._s[3507]! } + public var Month_GenDecember: String { return self._s[3508]! } + public var EnterPasscode_EnterPasscode: String { return self._s[3509]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3510]! } + public var PeopleNearby_CreateGroup: String { return self._s[3512]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3513]! } + public var Paint_ClearConfirm: String { return self._s[3514]! } + public var ChatList_ReadAll: String { return self._s[3515]! } + public var ChatSettings_IntentsSettings: String { return self._s[3516]! } + public var Passport_PassportInformation: String { return self._s[3518]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3520]! } + public var Location_ProximityNotification_DistanceMI: String { return self._s[3523]! } + public var PhotoEditor_ExposureTool: String { return self._s[3524]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[3525]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[3526]! } + public var Stats_GroupTopPoster_History: String { return self._s[3527]! } + public var UserInfo_AddPhone: String { return self._s[3528]! } + public var Media_SendWithTimer: String { return self._s[3530]! } + public var SettingsSearch_Synonyms_Notifications_Title: String { return self._s[3531]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3532]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[3533]! } + public var ChatList_Context_Unarchive: String { return self._s[3535]! } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3535]!, self._r[3535]!, [_0]) + return formatWithArgumentRanges(self._s[3536]!, self._r[3536]!, [_0]) } - public var BlockedUsers_Title: String { return self._s[3537]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[3538]! } - public var Media_ShareThisPhoto: String { return self._s[3539]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3540]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[3541]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3545]! } - public var CallFeedback_ReasonNoise: String { return self._s[3547]! } - public var WebBrowser_Title: String { return self._s[3548]! } + public var BlockedUsers_Title: String { return self._s[3538]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[3539]! } + public var Media_ShareThisPhoto: String { return self._s[3540]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[3541]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[3542]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[3546]! } + public var CallFeedback_ReasonNoise: String { return self._s[3548]! } + public var WebBrowser_Title: String { return self._s[3549]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3549]!, self._r[3549]!, [_0]) + return formatWithArgumentRanges(self._s[3550]!, self._r[3550]!, [_0]) } - public var Notification_MessageLifetime5s: String { return self._s[3550]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3551]! } - public var Profile_MessageLifetime1m: String { return self._s[3552]! } - public var Stats_LoadingTitle: String { return self._s[3554]! } - public var Passport_ScanPassport: String { return self._s[3555]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3558]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[3559]! } - public var Login_InvalidFirstNameError: String { return self._s[3560]! } - public var Undo_ChatCleared: String { return self._s[3562]! } + public var Notification_MessageLifetime5s: String { return self._s[3551]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3552]! } + public var Profile_MessageLifetime1m: String { return self._s[3553]! } + public var Stats_LoadingTitle: String { return self._s[3555]! } + public var Passport_ScanPassport: String { return self._s[3556]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3559]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[3560]! } + public var Login_InvalidFirstNameError: String { return self._s[3561]! } + public var Undo_ChatCleared: String { return self._s[3563]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3564]!, self._r[3564]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3565]!, self._r[3565]!, [_1, _2]) } - public var Conversation_PinMessageAlertPin: String { return self._s[3565]! } + public var Conversation_PinMessageAlertPin: String { return self._s[3566]! } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3566]!, self._r[3566]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3567]!, self._r[3567]!, [_1, _2, _3, _4, _5]) } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3567]!, self._r[3567]!, [_1]) + return formatWithArgumentRanges(self._s[3568]!, self._r[3568]!, [_1]) } - public var Share_MultipleMessagesDisabled: String { return self._s[3568]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[3569]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3571]! } + public var Share_MultipleMessagesDisabled: String { return self._s[3569]! } + public var TwoStepAuth_EmailInvalid: String { return self._s[3570]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3572]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3572]!, self._r[3572]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3573]!, self._r[3573]!, [_1, _2, _3]) } - public var CallSettings_RecentCalls: String { return self._s[3573]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[3574]! } - public var AuthSessions_OtherSessions: String { return self._s[3575]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3576]! } - public var Tour_Text5: String { return self._s[3577]! } - public var Login_PadPhoneHelp: String { return self._s[3578]! } - public var Wallpaper_PhotoLibrary: String { return self._s[3580]! } - public var Conversation_ViewGroup: String { return self._s[3581]! } - public var PeopleNearby_MakeVisibleTitle: String { return self._s[3583]! } - public var VoiceOver_Chat_YourContact: String { return self._s[3584]! } - public var Watch_AuthRequired: String { return self._s[3585]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3586]! } - public var Conversation_ForwardContacts: String { return self._s[3587]! } - public var Conversation_InputTextPlaceholder: String { return self._s[3588]! } + public var CallSettings_RecentCalls: String { return self._s[3574]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[3575]! } + public var AuthSessions_OtherSessions: String { return self._s[3576]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3577]! } + public var Tour_Text5: String { return self._s[3578]! } + public var Login_PadPhoneHelp: String { return self._s[3579]! } + public var Wallpaper_PhotoLibrary: String { return self._s[3581]! } + public var Conversation_ViewGroup: String { return self._s[3582]! } + public var PeopleNearby_MakeVisibleTitle: String { return self._s[3584]! } + public var VoiceOver_Chat_YourContact: String { return self._s[3585]! } + public var Watch_AuthRequired: String { return self._s[3586]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[3587]! } + public var Conversation_ForwardContacts: String { return self._s[3588]! } + public var Conversation_InputTextPlaceholder: String { return self._s[3589]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3589]!, self._r[3589]!, [_1]) + return formatWithArgumentRanges(self._s[3590]!, self._r[3590]!, [_1]) } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3590]!, self._r[3590]!, [_0]) + return formatWithArgumentRanges(self._s[3591]!, self._r[3591]!, [_0]) } - public var Channel_Setup_TypePrivate: String { return self._s[3591]! } + public var Channel_Setup_TypePrivate: String { return self._s[3592]! } public func Conversation_NoticeInvitedByInChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3592]!, self._r[3592]!, [_0]) + return formatWithArgumentRanges(self._s[3593]!, self._r[3593]!, [_0]) } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[3593]! } - public var Wallet_ContextMenuCopy: String { return self._s[3594]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[3595]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3596]! } - public var UserInfo_StartSecretChatStart: String { return self._s[3597]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[3594]! } + public var Wallet_ContextMenuCopy: String { return self._s[3595]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[3596]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3597]! } + public var UserInfo_StartSecretChatStart: String { return self._s[3598]! } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3598]!, self._r[3598]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3599]!, self._r[3599]!, [_1, _2]) } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3599]!, self._r[3599]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_0, _1, _2]) } - public var PrivacySettings_AutoArchiveTitle: String { return self._s[3600]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[3601]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3602]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[3603]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[3605]! } - public var NewContact_Title: String { return self._s[3608]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3609]! } - public var VoiceChat_StatusSpeaking: String { return self._s[3610]! } - public var Notifications_PermissionsKeepDisabled: String { return self._s[3611]! } + public var PrivacySettings_AutoArchiveTitle: String { return self._s[3601]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[3602]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[3603]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[3604]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[3606]! } + public var NewContact_Title: String { return self._s[3609]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3610]! } + public var VoiceChat_StatusSpeaking: String { return self._s[3611]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[3612]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3612]!, self._r[3612]!, [_0]) + return formatWithArgumentRanges(self._s[3613]!, self._r[3613]!, [_0]) } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3613]!, self._r[3613]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3614]!, self._r[3614]!, [_0, _1]) } - public var Chat_SlowmodeTooltipPending: String { return self._s[3614]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3615]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3617]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[3618]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3619]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[3615]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3616]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3618]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[3619]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[3620]! } public func PUSH_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3621]!, self._r[3621]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3622]!, self._r[3622]!, [_1, "\(_2)"]) } - public var Conversation_MessageEditedLabel: String { return self._s[3622]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3623]! } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3624]! } - public var ChatList_Context_AddToContacts: String { return self._s[3625]! } - public var Passport_Language_is: String { return self._s[3626]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[3627]! } - public var Wallet_Month_ShortOctober: String { return self._s[3628]! } - public var PhotoEditor_CurvesBlue: String { return self._s[3629]! } + public var Conversation_MessageEditedLabel: String { return self._s[3623]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3624]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3625]! } + public var ChatList_Context_AddToContacts: String { return self._s[3626]! } + public var Passport_Language_is: String { return self._s[3627]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[3628]! } + public var Wallet_Month_ShortOctober: String { return self._s[3629]! } + public var PhotoEditor_CurvesBlue: String { return self._s[3630]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3630]!, self._r[3630]!, [_0]) + return formatWithArgumentRanges(self._s[3631]!, self._r[3631]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[3631]! } - public var Login_SmsRequestState3: String { return self._s[3632]! } - public var Message_PinnedVideoMessage: String { return self._s[3633]! } - public var SharedMedia_TitleLink: String { return self._s[3634]! } - public var Passport_FieldIdentity: String { return self._s[3635]! } - public var Wallet_Configuration_SourceInfo: String { return self._s[3636]! } + public var SocksProxySetup_Username: String { return self._s[3632]! } + public var Login_SmsRequestState3: String { return self._s[3633]! } + public var Message_PinnedVideoMessage: String { return self._s[3634]! } + public var SharedMedia_TitleLink: String { return self._s[3635]! } + public var Passport_FieldIdentity: String { return self._s[3636]! } + public var Wallet_Configuration_SourceInfo: String { return self._s[3637]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3640]!, self._r[3640]!, [_0]) + return formatWithArgumentRanges(self._s[3641]!, self._r[3641]!, [_0]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3643]! } - public var ReportSpam_DeleteThisChat: String { return self._s[3644]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3645]! } - public var Passport_Identity_DateOfBirth: String { return self._s[3646]! } - public var Call_StatusIncoming: String { return self._s[3647]! } - public var Wallet_TransactionInfo_NoAddress: String { return self._s[3648]! } - public var ChatAdmins_AdminLabel: String { return self._s[3649]! } - public var Wallet_WordCheck_IncorrectHeader: String { return self._s[3650]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[3644]! } + public var ReportSpam_DeleteThisChat: String { return self._s[3645]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3646]! } + public var Passport_Identity_DateOfBirth: String { return self._s[3647]! } + public var Call_StatusIncoming: String { return self._s[3648]! } + public var Wallet_TransactionInfo_NoAddress: String { return self._s[3649]! } + public var ChatAdmins_AdminLabel: String { return self._s[3650]! } + public var Wallet_WordCheck_IncorrectHeader: String { return self._s[3651]! } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3652]!, self._r[3652]!, [_0]) + return formatWithArgumentRanges(self._s[3653]!, self._r[3653]!, [_0]) } - public var Message_PinnedAnimationMessage: String { return self._s[3653]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[3654]! } - public var Preview_CopyAddress: String { return self._s[3655]! } - public var MediaPlayer_UnknownTrack: String { return self._s[3656]! } - public var Login_CancelSignUpConfirmation: String { return self._s[3657]! } - public var Map_OpenInYandexMaps: String { return self._s[3659]! } + public var Message_PinnedAnimationMessage: String { return self._s[3654]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[3655]! } + public var Preview_CopyAddress: String { return self._s[3656]! } + public var MediaPlayer_UnknownTrack: String { return self._s[3657]! } + public var Login_CancelSignUpConfirmation: String { return self._s[3658]! } + public var Map_OpenInYandexMaps: String { return self._s[3660]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3662]!, self._r[3662]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3663]!, self._r[3663]!, [_1, _2, _3]) } - public var GroupRemoved_Remove: String { return self._s[3663]! } - public var ChatListFolder_TitleCreate: String { return self._s[3664]! } + public var GroupRemoved_Remove: String { return self._s[3664]! } + public var ChatListFolder_TitleCreate: String { return self._s[3665]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3666]!, self._r[3666]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3667]!, self._r[3667]!, [_1, _2]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[3667]! } - public var Group_UpgradeNoticeText2: String { return self._s[3669]! } - public var Stats_GroupGrowthTitle: String { return self._s[3670]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3673]! } - public var Month_GenOctober: String { return self._s[3674]! } - public var Conversation_TitleCommentsEmpty: String { return self._s[3675]! } - public var Settings_Appearance: String { return self._s[3676]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[3668]! } + public var Group_UpgradeNoticeText2: String { return self._s[3670]! } + public var Stats_GroupGrowthTitle: String { return self._s[3671]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3674]! } + public var Month_GenOctober: String { return self._s[3675]! } + public var Conversation_TitleCommentsEmpty: String { return self._s[3676]! } + public var Settings_Appearance: String { return self._s[3677]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3677]!, self._r[3677]!, [_0]) + return formatWithArgumentRanges(self._s[3678]!, self._r[3678]!, [_0]) } - public var Wallet_Completed_Title: String { return self._s[3678]! } - public var UserInfo_AddToExisting: String { return self._s[3679]! } - public var Call_PhoneCallInProgressMessage: String { return self._s[3680]! } - public var Map_HomeAndWorkInfo: String { return self._s[3681]! } - public var Paint_Arrow: String { return self._s[3682]! } - public var CancelResetAccount_Title: String { return self._s[3683]! } - public var NotificationsSound_Circles: String { return self._s[3684]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3685]! } - public var ChatState_Connecting: String { return self._s[3687]! } - public var Profile_MessageLifetime5s: String { return self._s[3688]! } + public var Wallet_Completed_Title: String { return self._s[3679]! } + public var UserInfo_AddToExisting: String { return self._s[3680]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3681]! } + public var Map_HomeAndWorkInfo: String { return self._s[3682]! } + public var Paint_Arrow: String { return self._s[3683]! } + public var CancelResetAccount_Title: String { return self._s[3684]! } + public var NotificationsSound_Circles: String { return self._s[3685]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[3686]! } + public var ChatState_Connecting: String { return self._s[3688]! } + public var Profile_MessageLifetime5s: String { return self._s[3689]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3689]!, self._r[3689]!, [_0]) + return formatWithArgumentRanges(self._s[3690]!, self._r[3690]!, [_0]) } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3690]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3691]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3692]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[3693]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[3694]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[3691]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[3692]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3693]! } + public var Conversation_DefaultRestrictedStickers: String { return self._s[3694]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[3695]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0]) + return formatWithArgumentRanges(self._s[3696]!, self._r[3696]!, [_0]) } - public var Passport_Phone_Help: String { return self._s[3696]! } - public var Privacy_ContactsSync: String { return self._s[3697]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3698]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3699]! } - public var Map_SendMyCurrentLocation: String { return self._s[3700]! } - public var Map_AddressOnMap: String { return self._s[3701]! } + public var Passport_Phone_Help: String { return self._s[3697]! } + public var Privacy_ContactsSync: String { return self._s[3698]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3699]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[3700]! } + public var Map_SendMyCurrentLocation: String { return self._s[3701]! } + public var Map_AddressOnMap: String { return self._s[3702]! } public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3703]!, self._r[3703]!, [_1, _2, _3]) } - public var DialogList_SearchLabel: String { return self._s[3704]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3705]! } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3706]! } - public var ChatList_Search_ShowMore: String { return self._s[3707]! } - public var DialogList_EncryptionRejected: String { return self._s[3708]! } - public var Wallet_WordImport_Text: String { return self._s[3709]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[3710]! } - public var VoiceChat_InviteLinkCopiedText: String { return self._s[3711]! } - public var Privacy_TopPeersDelete: String { return self._s[3712]! } - public var AttachmentMenu_SendAsFile: String { return self._s[3713]! } - public var ChatList_GenericPsaAlert: String { return self._s[3715]! } - public var SecretTimer_ImageDescription: String { return self._s[3717]! } + public var DialogList_SearchLabel: String { return self._s[3705]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3706]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3707]! } + public var ChatList_Search_ShowMore: String { return self._s[3708]! } + public var DialogList_EncryptionRejected: String { return self._s[3709]! } + public var Wallet_WordImport_Text: String { return self._s[3710]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[3711]! } + public var VoiceChat_InviteLinkCopiedText: String { return self._s[3712]! } + public var Privacy_TopPeersDelete: String { return self._s[3713]! } + public var AttachmentMenu_SendAsFile: String { return self._s[3714]! } + public var ChatList_GenericPsaAlert: String { return self._s[3716]! } + public var SecretTimer_ImageDescription: String { return self._s[3718]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3718]!, self._r[3718]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3719]!, self._r[3719]!, [_0, _1]) } - public var ChatSettings_TextSizeUnits: String { return self._s[3719]! } - public var Notification_RenamedGroup: String { return self._s[3720]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3721]! } - public var Tour_Title2: String { return self._s[3722]! } - public var Settings_CopyUsername: String { return self._s[3723]! } - public var Compose_NewEncryptedChat: String { return self._s[3724]! } - public var Conversation_CloudStorageInfo_Title: String { return self._s[3725]! } - public var Month_ShortSeptember: String { return self._s[3726]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[3727]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[3728]! } - public var Settings_Wallet: String { return self._s[3729]! } - public var Call_StatusConnecting: String { return self._s[3731]! } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[3732]! } - public var Map_ShareLiveLocationHelp: String { return self._s[3733]! } - public var Cache_Files: String { return self._s[3734]! } - public var Notifications_Reset: String { return self._s[3735]! } + public var ChatSettings_TextSizeUnits: String { return self._s[3720]! } + public var Notification_RenamedGroup: String { return self._s[3721]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3722]! } + public var Tour_Title2: String { return self._s[3723]! } + public var Settings_CopyUsername: String { return self._s[3724]! } + public var Compose_NewEncryptedChat: String { return self._s[3725]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[3726]! } + public var Month_ShortSeptember: String { return self._s[3727]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[3728]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[3729]! } + public var Settings_Wallet: String { return self._s[3730]! } + public var Call_StatusConnecting: String { return self._s[3732]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[3733]! } + public var Map_ShareLiveLocationHelp: String { return self._s[3734]! } + public var Cache_Files: String { return self._s[3735]! } + public var Notifications_Reset: String { return self._s[3736]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3736]!, self._r[3736]!, [_0]) + return formatWithArgumentRanges(self._s[3737]!, self._r[3737]!, [_0]) } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[3737]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[3738]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3738]!, self._r[3738]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3739]!, self._r[3739]!, [_1, _2]) } - public var Notification_CallIncomingShort: String { return self._s[3739]! } - public var UserInfo_BotPrivacy: String { return self._s[3741]! } - public var Appearance_BubbleCorners_Apply: String { return self._s[3742]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3743]! } - public var Conversation_ContextMenuLookUp: String { return self._s[3744]! } - public var Calls_RatingTitle: String { return self._s[3745]! } - public var SecretImage_Title: String { return self._s[3746]! } - public var Weekday_Monday: String { return self._s[3747]! } + public var Notification_CallIncomingShort: String { return self._s[3740]! } + public var UserInfo_BotPrivacy: String { return self._s[3742]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[3743]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3744]! } + public var Conversation_ContextMenuLookUp: String { return self._s[3745]! } + public var Calls_RatingTitle: String { return self._s[3746]! } + public var SecretImage_Title: String { return self._s[3747]! } + public var Weekday_Monday: String { return self._s[3748]! } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3749]!, self._r[3749]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3750]!, self._r[3750]!, [_1, _2]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3750]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3751]! } public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3751]!, self._r[3751]!, [_0]) + return formatWithArgumentRanges(self._s[3752]!, self._r[3752]!, [_0]) } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3752]!, self._r[3752]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3753]!, self._r[3753]!, [_1, _2]) } - public var Stats_GroupMembers: String { return self._s[3753]! } - public var Camera_Retake: String { return self._s[3754]! } - public var Conversation_SearchPlaceholder: String { return self._s[3756]! } + public var Stats_GroupMembers: String { return self._s[3754]! } + public var Camera_Retake: String { return self._s[3755]! } + public var Conversation_SearchPlaceholder: String { return self._s[3757]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3757]!, self._r[3757]!, [_0]) + return formatWithArgumentRanges(self._s[3758]!, self._r[3758]!, [_0]) } - public var Channel_DiscussionGroup_Info: String { return self._s[3758]! } - public var SocksProxySetup_Hostname: String { return self._s[3759]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3760]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3761]! } - public var Privacy_DeleteDrafts: String { return self._s[3762]! } + public var Channel_DiscussionGroup_Info: String { return self._s[3759]! } + public var SocksProxySetup_Hostname: String { return self._s[3760]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3761]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3762]! } + public var Privacy_DeleteDrafts: String { return self._s[3763]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3764]!, self._r[3764]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3765]!, self._r[3765]!, [_1, _1, _1, _2]) } - public var Wallet_RestoreFailed_Text: String { return self._s[3765]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[3766]! } - public var Login_CancelPhoneVerification: String { return self._s[3767]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3769]! } + public var Wallet_RestoreFailed_Text: String { return self._s[3766]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[3767]! } + public var Login_CancelPhoneVerification: String { return self._s[3768]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3770]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3770]!, self._r[3770]!, [_0]) + return formatWithArgumentRanges(self._s[3771]!, self._r[3771]!, [_0]) } - public var TwoStepAuth_EmailSent: String { return self._s[3771]! } - public var Cache_Indexing: String { return self._s[3772]! } - public var Notifications_ExceptionsNone: String { return self._s[3773]! } - public var MessagePoll_LabelQuiz: String { return self._s[3774]! } - public var Call_EncryptionKey_Title: String { return self._s[3775]! } - public var Common_Yes: String { return self._s[3776]! } - public var Channel_ErrorAddBlocked: String { return self._s[3777]! } - public var Month_GenJanuary: String { return self._s[3778]! } - public var Checkout_NewCard_Title: String { return self._s[3779]! } - public var Wallet_TransactionInfo_OtherFeeHeader: String { return self._s[3780]! } + public var TwoStepAuth_EmailSent: String { return self._s[3772]! } + public var Cache_Indexing: String { return self._s[3773]! } + public var Notifications_ExceptionsNone: String { return self._s[3774]! } + public var MessagePoll_LabelQuiz: String { return self._s[3775]! } + public var Call_EncryptionKey_Title: String { return self._s[3776]! } + public var Common_Yes: String { return self._s[3777]! } + public var Channel_ErrorAddBlocked: String { return self._s[3778]! } + public var Month_GenJanuary: String { return self._s[3779]! } + public var Checkout_NewCard_Title: String { return self._s[3780]! } + public var Wallet_TransactionInfo_OtherFeeHeader: String { return self._s[3781]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3781]!, self._r[3781]!, [_0]) + return formatWithArgumentRanges(self._s[3782]!, self._r[3782]!, [_0]) } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3783]! } - public var Conversation_SendDice: String { return self._s[3784]! } - public var Conversation_InputTextPlaceholderReply: String { return self._s[3785]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3784]! } + public var Conversation_SendDice: String { return self._s[3785]! } + public var Conversation_InputTextPlaceholderReply: String { return self._s[3786]! } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3786]!, self._r[3786]!, [_0]) - } - public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3787]!, self._r[3787]!, [_0]) } - public var Weekday_Wednesday: String { return self._s[3788]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[3789]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[3790]! } - public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[3791]! } - public var OldChannels_NoticeTitle: String { return self._s[3792]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[3793]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[3794]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[3795]! } - public var Passport_Address_AddUtilityBill: String { return self._s[3796]! } + public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_0]) + } + public var Weekday_Wednesday: String { return self._s[3789]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[3790]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[3791]! } + public var PrivacyLastSeenSettings_CustomShareSettingsHelp: String { return self._s[3792]! } + public var OldChannels_NoticeTitle: String { return self._s[3793]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[3794]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[3795]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[3796]! } + public var Passport_Address_AddUtilityBill: String { return self._s[3797]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3798]!, self._r[3798]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3799]!, self._r[3799]!, [_1, _2, _3]) } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[3800]! } - public var Stats_GroupTopAdminsTitle: String { return self._s[3801]! } - public var Paint_Regular: String { return self._s[3802]! } - public var Message_Contact: String { return self._s[3803]! } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[3804]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[3805]! } - public var Notification_Mute1hMin: String { return self._s[3806]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[3801]! } + public var Stats_GroupTopAdminsTitle: String { return self._s[3802]! } + public var Paint_Regular: String { return self._s[3803]! } + public var Message_Contact: String { return self._s[3804]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[3805]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[3806]! } + public var Notification_Mute1hMin: String { return self._s[3807]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3807]!, self._r[3807]!, [_0]) + return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0]) } - public var Profile_MessageLifetime1h: String { return self._s[3808]! } - public var TwoStepAuth_GenericHelp: String { return self._s[3809]! } - public var TextFormat_Monospace: String { return self._s[3810]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[3812]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3813]! } - public var ChatList_DeleteChat: String { return self._s[3814]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[3817]! } + public var Profile_MessageLifetime1h: String { return self._s[3809]! } + public var TwoStepAuth_GenericHelp: String { return self._s[3810]! } + public var TextFormat_Monospace: String { return self._s[3811]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[3813]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3814]! } + public var ChatList_DeleteChat: String { return self._s[3815]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[3818]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3818]!, self._r[3818]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[3819]!, self._r[3819]!, [_1, _2, _3, _4]) } - public var Login_CancelPhoneVerificationStop: String { return self._s[3819]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[3820]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[3821]! } - public var Wallet_Settings_Configuration: String { return self._s[3822]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[3823]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[3820]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[3821]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[3822]! } + public var Wallet_Settings_Configuration: String { return self._s[3823]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[3824]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3824]!, self._r[3824]!, [_0]) + return formatWithArgumentRanges(self._s[3825]!, self._r[3825]!, [_0]) } - public var Wallet_Sent_ViewWallet: String { return self._s[3825]! } - public var StickerPack_ViewPack: String { return self._s[3828]! } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[3830]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[3831]! } - public var Notifications_Title: String { return self._s[3832]! } - public var Wallet_WordImport_Continue: String { return self._s[3833]! } - public var GroupInfo_PublicLink: String { return self._s[3834]! } - public var Conversation_InputTextPlaceholderComment: String { return self._s[3835]! } - public var VoiceOver_DiscardPreparedContent: String { return self._s[3836]! } - public var Conversation_Moderate_Ban: String { return self._s[3840]! } + public var Wallet_Sent_ViewWallet: String { return self._s[3826]! } + public var StickerPack_ViewPack: String { return self._s[3829]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[3831]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[3832]! } + public var Notifications_Title: String { return self._s[3833]! } + public var Wallet_WordImport_Continue: String { return self._s[3834]! } + public var GroupInfo_PublicLink: String { return self._s[3835]! } + public var Conversation_InputTextPlaceholderComment: String { return self._s[3836]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[3837]! } + public var Conversation_Moderate_Ban: String { return self._s[3841]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_0]) + return formatWithArgumentRanges(self._s[3842]!, self._r[3842]!, [_0]) } - public var TextFormat_Underline: String { return self._s[3842]! } + public var TextFormat_Underline: String { return self._s[3843]! } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3843]!, self._r[3843]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3844]!, self._r[3844]!, [_0, _1]) } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3844]!, self._r[3844]!, [_1]) + return formatWithArgumentRanges(self._s[3845]!, self._r[3845]!, [_1]) } - public var PollResults_Collapse: String { return self._s[3846]! } - public var Contacts_GlobalSearch: String { return self._s[3847]! } + public var PollResults_Collapse: String { return self._s[3847]! } + public var Contacts_GlobalSearch: String { return self._s[3848]! } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3848]!, self._r[3848]!, [_0]) + return formatWithArgumentRanges(self._s[3849]!, self._r[3849]!, [_0]) } - public var Channel_Management_LabelEditor: String { return self._s[3849]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[3851]! } - public var Conversation_Theme: String { return self._s[3852]! } + public var Channel_Management_LabelEditor: String { return self._s[3850]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[3852]! } + public var Conversation_Theme: String { return self._s[3853]! } public func PUSH_CHANNEL_MESSAGE_DOCS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3853]!, self._r[3853]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3854]!, self._r[3854]!, [_1, "\(_2)"]) } - public var Conversation_LinkDialogSave: String { return self._s[3854]! } - public var EnterPasscode_TouchId: String { return self._s[3855]! } - public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[3856]! } - public var Stats_MessageOverview: String { return self._s[3857]! } - public var Privacy_Calls_P2PAlways: String { return self._s[3859]! } - public var Message_Sticker: String { return self._s[3860]! } - public var Conversation_Mute: String { return self._s[3862]! } - public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[3863]! } - public var ContactInfo_Title: String { return self._s[3864]! } + public var Conversation_LinkDialogSave: String { return self._s[3855]! } + public var EnterPasscode_TouchId: String { return self._s[3856]! } + public var Conversation_VoiceChatMediaRecordingRestricted: String { return self._s[3857]! } + public var Stats_MessageOverview: String { return self._s[3858]! } + public var Privacy_Calls_P2PAlways: String { return self._s[3860]! } + public var Message_Sticker: String { return self._s[3861]! } + public var Conversation_Mute: String { return self._s[3863]! } + public var VoiceChat_AnonymousDisabledAlertText: String { return self._s[3864]! } + public var ContactInfo_Title: String { return self._s[3865]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_1]) + return formatWithArgumentRanges(self._s[3866]!, self._r[3866]!, [_1]) } - public var Channel_Setup_TypeHeader: String { return self._s[3866]! } - public var AuthSessions_LogOut: String { return self._s[3867]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3868]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3869]! } - public var ChatListFolderSettings_NewFolder: String { return self._s[3871]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3872]! } - public var CreatePoll_Title: String { return self._s[3873]! } - public var EditTheme_EditTitle: String { return self._s[3874]! } - public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[3875]! } - public var TwoStepAuth_SetPassword: String { return self._s[3876]! } - public var Wallet_Words_Done: String { return self._s[3877]! } + public var Channel_Setup_TypeHeader: String { return self._s[3867]! } + public var AuthSessions_LogOut: String { return self._s[3868]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3869]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3870]! } + public var ChatListFolderSettings_NewFolder: String { return self._s[3872]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3873]! } + public var CreatePoll_Title: String { return self._s[3874]! } + public var EditTheme_EditTitle: String { return self._s[3875]! } + public var ChatListFolderSettings_RecommendedFoldersSection: String { return self._s[3876]! } + public var TwoStepAuth_SetPassword: String { return self._s[3877]! } + public var Wallet_Words_Done: String { return self._s[3878]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3878]!, self._r[3878]!, [_0]) + return formatWithArgumentRanges(self._s[3879]!, self._r[3879]!, [_0]) } - public var BlockedUsers_Info: String { return self._s[3879]! } - public var AuthSessions_Sessions: String { return self._s[3880]! } - public var Group_EditAdmin_RankTitle: String { return self._s[3881]! } + public var BlockedUsers_Info: String { return self._s[3880]! } + public var AuthSessions_Sessions: String { return self._s[3881]! } + public var Group_EditAdmin_RankTitle: String { return self._s[3882]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3882]!, self._r[3882]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3883]!, self._r[3883]!, [_1, _2, _3]) } - public var Common_ActionNotAllowedError: String { return self._s[3883]! } - public var WebPreview_GettingLinkInfo: String { return self._s[3884]! } - public var Appearance_AppIconFilledX: String { return self._s[3885]! } - public var Wallet_TransactionInfo_StorageFeeInfo: String { return self._s[3886]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[3887]! } - public var FeaturedStickers_OtherSection: String { return self._s[3888]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[3889]! } - public var Profile_Username: String { return self._s[3890]! } - public var Appearance_RemoveTheme: String { return self._s[3891]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[3892]! } - public var Message_PinnedStickerMessage: String { return self._s[3893]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3894]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[3895]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3896]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[3897]! } - public var TwoStepAuth_Title: String { return self._s[3898]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3899]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[3900]! } - public var ChatListFolder_CategoryGroups: String { return self._s[3902]! } - public var Stats_GroupTopInviter_Promote: String { return self._s[3903]! } - public var Conversation_EditingPhotoPanelTitle: String { return self._s[3904]! } - public var Month_GenJuly: String { return self._s[3905]! } - public var Passport_Identity_Gender: String { return self._s[3906]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3907]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[3908]! } + public var Common_ActionNotAllowedError: String { return self._s[3884]! } + public var WebPreview_GettingLinkInfo: String { return self._s[3885]! } + public var Appearance_AppIconFilledX: String { return self._s[3886]! } + public var Wallet_TransactionInfo_StorageFeeInfo: String { return self._s[3887]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[3888]! } + public var FeaturedStickers_OtherSection: String { return self._s[3889]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[3890]! } + public var Profile_Username: String { return self._s[3891]! } + public var Appearance_RemoveTheme: String { return self._s[3892]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[3893]! } + public var Message_PinnedStickerMessage: String { return self._s[3894]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3895]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[3896]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3897]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[3898]! } + public var TwoStepAuth_Title: String { return self._s[3899]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3900]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[3901]! } + public var ChatListFolder_CategoryGroups: String { return self._s[3903]! } + public var Stats_GroupTopInviter_Promote: String { return self._s[3904]! } + public var Conversation_EditingPhotoPanelTitle: String { return self._s[3905]! } + public var Month_GenJuly: String { return self._s[3906]! } + public var Passport_Identity_Gender: String { return self._s[3907]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3908]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[3909]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3909]!, self._r[3909]!, [_0]) + return formatWithArgumentRanges(self._s[3910]!, self._r[3910]!, [_0]) } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3910]!, self._r[3910]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[3911]!, self._r[3911]!, [_0, _1, _2]) } - public var Login_CodeSentSms: String { return self._s[3911]! } + public var Login_CodeSentSms: String { return self._s[3912]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3913]!, self._r[3913]!, [_0]) + return formatWithArgumentRanges(self._s[3914]!, self._r[3914]!, [_0]) } - public var Login_CallRequestState2: String { return self._s[3914]! } - public var Channel_DiscussionGroup_Header: String { return self._s[3915]! } + public var Login_CallRequestState2: String { return self._s[3915]! } + public var Channel_DiscussionGroup_Header: String { return self._s[3916]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_0]) + return formatWithArgumentRanges(self._s[3917]!, self._r[3917]!, [_0]) } - public var Passport_Language_ms: String { return self._s[3917]! } - public var PeopleNearby_MakeInvisible: String { return self._s[3919]! } - public var ChatList_Search_FilterVoice: String { return self._s[3921]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3923]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[3924]! } + public var Passport_Language_ms: String { return self._s[3918]! } + public var PeopleNearby_MakeInvisible: String { return self._s[3920]! } + public var ChatList_Search_FilterVoice: String { return self._s[3922]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3924]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[3925]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_0]) + return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_0]) } public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3927]!, self._r[3927]!, [_1, _2, _3]) } - public var Wallet_Info_TransactionTo: String { return self._s[3927]! } + public var Wallet_Info_TransactionTo: String { return self._s[3928]! } public func Call_VoiceChatInProgressMessageCall(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3928]!, self._r[3928]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3929]!, self._r[3929]!, [_1, _2]) } - public var Map_Locating: String { return self._s[3929]! } + public var Map_Locating: String { return self._s[3930]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3931]!, self._r[3931]!, [_0]) + return formatWithArgumentRanges(self._s[3932]!, self._r[3932]!, [_0]) } - public var Passport_Identity_TypeInternalPassport: String { return self._s[3933]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3934]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[3935]! } - public var Stickers_Installed: String { return self._s[3936]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[3937]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3938]! } - public var CallSettings_Never: String { return self._s[3940]! } - public var Wallet_AccessDenied_Camera: String { return self._s[3941]! } - public var Channel_Setup_TypePublicHelp: String { return self._s[3942]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[3934]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3935]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[3936]! } + public var Stickers_Installed: String { return self._s[3937]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[3938]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3939]! } + public var CallSettings_Never: String { return self._s[3941]! } + public var Wallet_AccessDenied_Camera: String { return self._s[3942]! } + public var Channel_Setup_TypePublicHelp: String { return self._s[3943]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3944]!, self._r[3944]!, [_0]) + return formatWithArgumentRanges(self._s[3945]!, self._r[3945]!, [_0]) } - public var Message_Game: String { return self._s[3945]! } - public var Call_Message: String { return self._s[3946]! } + public var Message_Game: String { return self._s[3946]! } + public var Call_Message: String { return self._s[3947]! } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_1]) + return formatWithArgumentRanges(self._s[3948]!, self._r[3948]!, [_1]) } - public var ChannelIntro_Text: String { return self._s[3948]! } - public var StickerPack_Send: String { return self._s[3949]! } - public var Share_AuthDescription: String { return self._s[3950]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[3951]! } - public var CallFeedback_WhatWentWrong: String { return self._s[3952]! } - public var Common_Create: String { return self._s[3955]! } - public var Passport_Language_hy: String { return self._s[3956]! } - public var CreatePoll_Explanation: String { return self._s[3957]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[3958]! } - public var Undo_ChatClearedForBothSides: String { return self._s[3959]! } - public var DialogList_NoMessagesTitle: String { return self._s[3960]! } - public var GroupInfo_Title: String { return self._s[3962]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[3963]! } - public var PhoneNumberHelp_Help: String { return self._s[3964]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[3965]! } - public var Settings_Logout: String { return self._s[3966]! } - public var Privacy_PaymentsTitle: String { return self._s[3967]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[3968]! } - public var Tour_Text6: String { return self._s[3969]! } - public var Channel_Username_Help: String { return self._s[3971]! } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[3972]! } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[3973]! } - public var AttachmentMenu_Poll: String { return self._s[3974]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[3975]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[3976]! } - public var Passport_DeletePassport: String { return self._s[3977]! } - public var Login_Code: String { return self._s[3978]! } - public var Notification_SecretChatScreenshot: String { return self._s[3979]! } - public var Login_CodeFloodError: String { return self._s[3980]! } + public var ChannelIntro_Text: String { return self._s[3949]! } + public var StickerPack_Send: String { return self._s[3950]! } + public var Share_AuthDescription: String { return self._s[3951]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[3952]! } + public var CallFeedback_WhatWentWrong: String { return self._s[3953]! } + public var Common_Create: String { return self._s[3956]! } + public var Passport_Language_hy: String { return self._s[3957]! } + public var CreatePoll_Explanation: String { return self._s[3958]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[3959]! } + public var Undo_ChatClearedForBothSides: String { return self._s[3960]! } + public var DialogList_NoMessagesTitle: String { return self._s[3961]! } + public var GroupInfo_Title: String { return self._s[3963]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[3964]! } + public var PhoneNumberHelp_Help: String { return self._s[3965]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[3966]! } + public var Settings_Logout: String { return self._s[3967]! } + public var Privacy_PaymentsTitle: String { return self._s[3968]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[3969]! } + public var Tour_Text6: String { return self._s[3970]! } + public var Channel_Username_Help: String { return self._s[3972]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[3973]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[3974]! } + public var AttachmentMenu_Poll: String { return self._s[3975]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[3976]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[3977]! } + public var Passport_DeletePassport: String { return self._s[3978]! } + public var Login_Code: String { return self._s[3979]! } + public var Notification_SecretChatScreenshot: String { return self._s[3980]! } + public var Login_CodeFloodError: String { return self._s[3981]! } public func Notification_PinnedAnimationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3981]!, self._r[3981]!, [_0]) - } - public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3982]!, self._r[3982]!, [_0]) } - public var Watch_Stickers_Recents: String { return self._s[3983]! } - public var Generic_ErrorMoreInfo: String { return self._s[3984]! } + public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3983]!, self._r[3983]!, [_0]) + } + public var Watch_Stickers_Recents: String { return self._s[3984]! } + public var Generic_ErrorMoreInfo: String { return self._s[3985]! } public func Call_AccountIsLoggedOnCurrentDevice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3985]!, self._r[3985]!, [_0]) + return formatWithArgumentRanges(self._s[3986]!, self._r[3986]!, [_0]) } - public var AutoDownloadSettings_DataUsage: String { return self._s[3986]! } - public var Conversation_ViewTheme: String { return self._s[3987]! } - public var Contacts_InviteSearchLabel: String { return self._s[3988]! } - public var Settings_CancelUpload: String { return self._s[3990]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[3991]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[3987]! } + public var Conversation_ViewTheme: String { return self._s[3988]! } + public var Contacts_InviteSearchLabel: String { return self._s[3989]! } + public var Settings_CancelUpload: String { return self._s[3991]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[3992]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3992]!, self._r[3992]!, [_0]) + return formatWithArgumentRanges(self._s[3993]!, self._r[3993]!, [_0]) } - public var ChatList_AddFolder: String { return self._s[3993]! } - public var Conversation_Location: String { return self._s[3995]! } - public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[3996]! } - public var DialogList_AdLabel: String { return self._s[3997]! } + public var ChatList_AddFolder: String { return self._s[3994]! } + public var Conversation_Location: String { return self._s[3996]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[3997]! } + public var DialogList_AdLabel: String { return self._s[3998]! } public func Time_TomorrowAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3999]!, self._r[3999]!, [_0]) + return formatWithArgumentRanges(self._s[4000]!, self._r[4000]!, [_0]) } - public var Message_InvoiceLabel: String { return self._s[4000]! } - public var Channel_TooMuchBots: String { return self._s[4001]! } + public var Message_InvoiceLabel: String { return self._s[4001]! } + public var Channel_TooMuchBots: String { return self._s[4002]! } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4003]!, self._r[4003]!, [_0]) + return formatWithArgumentRanges(self._s[4004]!, self._r[4004]!, [_0]) } - public var Wallet_Month_ShortAugust: String { return self._s[4004]! } - public var Call_IncomingVideoCall: String { return self._s[4005]! } - public var Conversation_LiveLocation: String { return self._s[4006]! } - public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4007]! } - public var Passport_Identity_EditPassport: String { return self._s[4008]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[4010]! } - public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4011]! } - public var GroupInfo_Permissions_AddException: String { return self._s[4012]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[4014]! } - public var Channel_MessageVideoUpdated: String { return self._s[4015]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4016]! } - public var AccessDenied_Camera: String { return self._s[4019]! } + public var Wallet_Month_ShortAugust: String { return self._s[4005]! } + public var Call_IncomingVideoCall: String { return self._s[4006]! } + public var Conversation_LiveLocation: String { return self._s[4007]! } + public var TwoStepAuth_SetupPasswordEnterPasswordChange: String { return self._s[4008]! } + public var Passport_Identity_EditPassport: String { return self._s[4009]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[4011]! } + public var ChatList_Search_NoResultsFitlerVoice: String { return self._s[4012]! } + public var GroupInfo_Permissions_AddException: String { return self._s[4013]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[4015]! } + public var Channel_MessageVideoUpdated: String { return self._s[4016]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[4017]! } + public var AccessDenied_Camera: String { return self._s[4020]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4020]!, self._r[4020]!, [_0]) + return formatWithArgumentRanges(self._s[4021]!, self._r[4021]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[4021]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[4022]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[4023]! } - public var Login_CodeExpiredError: String { return self._s[4024]! } - public var State_ConnectingToProxy: String { return self._s[4025]! } - public var TextFormat_Link: String { return self._s[4026]! } - public var Passport_Language_lv: String { return self._s[4027]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[4028]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[4029]! } - public var ProfilePhoto_SetMainVideo: String { return self._s[4030]! } - public var AutoDownloadSettings_Cellular: String { return self._s[4032]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4033]! } + public var Theme_Context_ChangeColors: String { return self._s[4022]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[4023]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[4024]! } + public var Login_CodeExpiredError: String { return self._s[4025]! } + public var State_ConnectingToProxy: String { return self._s[4026]! } + public var TextFormat_Link: String { return self._s[4027]! } + public var Passport_Language_lv: String { return self._s[4028]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[4029]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[4030]! } + public var ProfilePhoto_SetMainVideo: String { return self._s[4031]! } + public var AutoDownloadSettings_Cellular: String { return self._s[4033]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[4034]! } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4034]!, self._r[4034]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4035]!, self._r[4035]!, [_1, _2]) } - public var ChatList_EmptyChatListFilterTitle: String { return self._s[4035]! } - public var Checkout_PayNone: String { return self._s[4036]! } - public var NotificationsSound_Complete: String { return self._s[4038]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4039]! } - public var AuthSessions_DevicesTitle: String { return self._s[4040]! } + public var ChatList_EmptyChatListFilterTitle: String { return self._s[4036]! } + public var Checkout_PayNone: String { return self._s[4037]! } + public var NotificationsSound_Complete: String { return self._s[4039]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[4040]! } + public var AuthSessions_DevicesTitle: String { return self._s[4041]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_0, _1]) } - public var Message_LiveLocation: String { return self._s[4042]! } - public var Watch_Suggestion_BRB: String { return self._s[4043]! } - public var Channel_BanUser_Title: String { return self._s[4044]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4045]! } - public var Conversation_Dice_u1F3C0: String { return self._s[4046]! } - public var Conversation_ClearSelfHistory: String { return self._s[4047]! } - public var ProfilePhoto_OpenGallery: String { return self._s[4048]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[4049]! } - public var Weekday_Thursday: String { return self._s[4050]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4051]! } - public var Privacy_ProfilePhoto: String { return self._s[4053]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4054]! } + public var Message_LiveLocation: String { return self._s[4043]! } + public var Watch_Suggestion_BRB: String { return self._s[4044]! } + public var Channel_BanUser_Title: String { return self._s[4045]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[4046]! } + public var Conversation_Dice_u1F3C0: String { return self._s[4047]! } + public var Conversation_ClearSelfHistory: String { return self._s[4048]! } + public var ProfilePhoto_OpenGallery: String { return self._s[4049]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[4050]! } + public var Weekday_Thursday: String { return self._s[4051]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4052]! } + public var Privacy_ProfilePhoto: String { return self._s[4054]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[4055]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4055]!, self._r[4055]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4056]!, self._r[4056]!, [_1, _2]) } - public var Message_Audio: String { return self._s[4056]! } - public var Conversation_Info: String { return self._s[4057]! } - public var Cache_Videos: String { return self._s[4058]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4059]! } - public var Channel_ErrorAddTooMuch: String { return self._s[4060]! } + public var Message_Audio: String { return self._s[4057]! } + public var Conversation_Info: String { return self._s[4058]! } + public var Cache_Videos: String { return self._s[4059]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[4060]! } + public var Channel_ErrorAddTooMuch: String { return self._s[4061]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4061]!, self._r[4061]!, [_0]) + return formatWithArgumentRanges(self._s[4062]!, self._r[4062]!, [_0]) } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4063]! } - public var ScheduledMessages_Title: String { return self._s[4065]! } - public var ShareFileTip_Title: String { return self._s[4068]! } - public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4069]! } - public var ChatList_RemoveFolderConfirmation: String { return self._s[4070]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[4064]! } + public var ScheduledMessages_Title: String { return self._s[4066]! } + public var ShareFileTip_Title: String { return self._s[4069]! } + public var Chat_Gifs_TrendingSectionHeader: String { return self._s[4070]! } + public var ChatList_RemoveFolderConfirmation: String { return self._s[4071]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4071]!, self._r[4071]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4072]!, self._r[4072]!, [_1, _2]) } - public var Conversation_ContextViewStats: String { return self._s[4073]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4074]! } - public var PasscodeSettings_Title: String { return self._s[4075]! } - public var Channel_AdminLog_SendPolls: String { return self._s[4076]! } - public var LastSeen_ALongTimeAgo: String { return self._s[4077]! } + public var Conversation_ContextViewStats: String { return self._s[4074]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[4075]! } + public var PasscodeSettings_Title: String { return self._s[4076]! } + public var Channel_AdminLog_SendPolls: String { return self._s[4077]! } + public var LastSeen_ALongTimeAgo: String { return self._s[4078]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4078]!, self._r[4078]!, [_1]) + return formatWithArgumentRanges(self._s[4079]!, self._r[4079]!, [_1]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4079]! } - public var CallFeedback_VideoReasonLowQuality: String { return self._s[4080]! } - public var Conversation_PinnedPreviousMessage: String { return self._s[4081]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[4082]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[4083]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4080]! } + public var CallFeedback_VideoReasonLowQuality: String { return self._s[4081]! } + public var Conversation_PinnedPreviousMessage: String { return self._s[4082]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[4083]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[4084]! } public func ChatList_RemovedFromFolderTooltip(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4084]!, self._r[4084]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_1, _2]) } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_0]) + return formatWithArgumentRanges(self._s[4086]!, self._r[4086]!, [_0]) } - public var Passport_Identity_GenderFemale: String { return self._s[4086]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[4089]! } - public var Location_ProximityNotification_DistanceKM: String { return self._s[4090]! } - public var VoiceChat_Audio: String { return self._s[4091]! } - public var SharedMedia_TitleAll: String { return self._s[4092]! } - public var Settings_Context_Logout: String { return self._s[4093]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4095]! } - public var Settings_About_Title: String { return self._s[4096]! } - public var StickerSettings_ContextHide: String { return self._s[4097]! } + public var Passport_Identity_GenderFemale: String { return self._s[4087]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[4090]! } + public var Location_ProximityNotification_DistanceKM: String { return self._s[4091]! } + public var VoiceChat_Audio: String { return self._s[4092]! } + public var SharedMedia_TitleAll: String { return self._s[4093]! } + public var Settings_Context_Logout: String { return self._s[4094]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[4096]! } + public var Settings_About_Title: String { return self._s[4097]! } + public var StickerSettings_ContextHide: String { return self._s[4098]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4098]!, self._r[4098]!, [_0]) - } - public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4099]!, self._r[4099]!, [_0]) } - public var Common_Cancel: String { return self._s[4101]! } - public var CallFeedback_Title: String { return self._s[4103]! } - public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4104]!, self._r[4104]!, [_0]) + public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4100]!, self._r[4100]!, [_0]) } - public var Activity_UploadingVideoMessage: String { return self._s[4105]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[4106]! } - public var MediaPicker_Send: String { return self._s[4107]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4108]! } - public var Conversation_LiveLocationYou: String { return self._s[4109]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[4110]! } + public var Common_Cancel: String { return self._s[4102]! } + public var CallFeedback_Title: String { return self._s[4104]! } + public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4105]!, self._r[4105]!, [_0]) + } + public var Activity_UploadingVideoMessage: String { return self._s[4106]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[4107]! } + public var MediaPicker_Send: String { return self._s[4108]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[4109]! } + public var Conversation_LiveLocationYou: String { return self._s[4110]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[4111]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_0]) + return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_0]) } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4113]!, self._r[4113]!, [_1, _2]) } - public var Conversation_ViewBackground: String { return self._s[4113]! } - public var ChatSettings_PrivateChats: String { return self._s[4116]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[4117]! } - public var Wallet_Receive_AmountInfo: String { return self._s[4118]! } - public var Appearance_ThemeNight: String { return self._s[4119]! } - public var Common_Search: String { return self._s[4120]! } - public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4121]! } - public var ChangePhoneNumberNumber_Help: String { return self._s[4123]! } - public var Stickers_SuggestAdded: String { return self._s[4124]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4127]! } - public var NetworkUsageSettings_Cellular: String { return self._s[4128]! } - public var CheckoutInfo_Title: String { return self._s[4129]! } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4130]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[4131]! } + public var Conversation_ViewBackground: String { return self._s[4114]! } + public var ChatSettings_PrivateChats: String { return self._s[4117]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[4118]! } + public var Wallet_Receive_AmountInfo: String { return self._s[4119]! } + public var Appearance_ThemeNight: String { return self._s[4120]! } + public var Common_Search: String { return self._s[4121]! } + public var TwoStepAuth_ReEnterPasswordTitle: String { return self._s[4122]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[4124]! } + public var Stickers_SuggestAdded: String { return self._s[4125]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[4128]! } + public var NetworkUsageSettings_Cellular: String { return self._s[4129]! } + public var CheckoutInfo_Title: String { return self._s[4130]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[4131]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[4132]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4132]!, self._r[4132]!, [_0]) + return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_0]) } - public var MaskStickerSettings_Info: String { return self._s[4134]! } - public var GroupRemoved_DeleteUser: String { return self._s[4136]! } - public var Contacts_ShareTelegram: String { return self._s[4137]! } - public var Group_UpgradeNoticeText1: String { return self._s[4138]! } + public var MaskStickerSettings_Info: String { return self._s[4135]! } + public var GroupRemoved_DeleteUser: String { return self._s[4137]! } + public var Contacts_ShareTelegram: String { return self._s[4138]! } + public var Group_UpgradeNoticeText1: String { return self._s[4139]! } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4139]!, self._r[4139]!, [_1]) + return formatWithArgumentRanges(self._s[4140]!, self._r[4140]!, [_1]) } - public var PrivacyLastSeenSettings_Title: String { return self._s[4140]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[4144]! } - public var PhotoEditor_TintTool: String { return self._s[4145]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[4147]! } - public var GroupPermission_NoSendPolls: String { return self._s[4148]! } - public var NotificationsSound_None: String { return self._s[4149]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[4141]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[4145]! } + public var PhotoEditor_TintTool: String { return self._s[4146]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[4148]! } + public var GroupPermission_NoSendPolls: String { return self._s[4149]! } + public var NotificationsSound_None: String { return self._s[4150]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4151]!, self._r[4151]!, [_1, "\(_2)"]) } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4152]! } - public var ExplicitContent_AlertChannel: String { return self._s[4154]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[4155]! } - public var Contacts_SortedByPresence: String { return self._s[4156]! } - public var WallpaperSearch_ColorGray: String { return self._s[4157]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4158]! } - public var Conversation_ReportSpam: String { return self._s[4159]! } - public var ChatList_Search_NoResultsFilter: String { return self._s[4162]! } - public var WallpaperSearch_ColorBlack: String { return self._s[4163]! } - public var ArchivedChats_IntroTitle3: String { return self._s[4164]! } - public var Conversation_DefaultRestrictedText: String { return self._s[4165]! } - public var Settings_Devices: String { return self._s[4166]! } - public var Call_AudioRouteSpeaker: String { return self._s[4167]! } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[4168]! } - public var Passport_Address_Country: String { return self._s[4170]! } - public var Cache_MaximumCacheSize: String { return self._s[4171]! } - public var Chat_PanelHidePinnedMessages: String { return self._s[4172]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[4173]! } - public var Wallet_Receive_CreateInvoice: String { return self._s[4175]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4176]! } - public var Login_TermsOfServiceLabel: String { return self._s[4177]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[4178]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[4179]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4180]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[4181]! } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[4182]! } - public var ConvertToSupergroup_Note: String { return self._s[4184]! } - public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4185]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4186]! } - public var Common_More: String { return self._s[4187]! } - public var ShareMenu_SelectChats: String { return self._s[4189]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[4153]! } + public var ExplicitContent_AlertChannel: String { return self._s[4155]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[4156]! } + public var Contacts_SortedByPresence: String { return self._s[4157]! } + public var WallpaperSearch_ColorGray: String { return self._s[4158]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[4159]! } + public var Conversation_ReportSpam: String { return self._s[4160]! } + public var ChatList_Search_NoResultsFilter: String { return self._s[4163]! } + public var WallpaperSearch_ColorBlack: String { return self._s[4164]! } + public var ArchivedChats_IntroTitle3: String { return self._s[4165]! } + public var Conversation_DefaultRestrictedText: String { return self._s[4166]! } + public var Settings_Devices: String { return self._s[4167]! } + public var Call_AudioRouteSpeaker: String { return self._s[4168]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[4169]! } + public var Passport_Address_Country: String { return self._s[4171]! } + public var Cache_MaximumCacheSize: String { return self._s[4172]! } + public var Chat_PanelHidePinnedMessages: String { return self._s[4173]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[4174]! } + public var Wallet_Receive_CreateInvoice: String { return self._s[4176]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[4177]! } + public var Login_TermsOfServiceLabel: String { return self._s[4178]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[4179]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[4180]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[4181]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[4182]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[4183]! } + public var ConvertToSupergroup_Note: String { return self._s[4185]! } + public var Settings_SetNewProfilePhotoOrVideo: String { return self._s[4186]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[4187]! } + public var Common_More: String { return self._s[4188]! } + public var ShareMenu_SelectChats: String { return self._s[4190]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4191]!, self._r[4191]!, [_0]) - } - public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4192]!, self._r[4192]!, [_0]) } - public var Contacts_PermissionsKeepDisabled: String { return self._s[4194]! } + public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4193]!, self._r[4193]!, [_0]) + } + public var Contacts_PermissionsKeepDisabled: String { return self._s[4195]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4195]!, self._r[4195]!, [_0]) + return formatWithArgumentRanges(self._s[4196]!, self._r[4196]!, [_0]) } - public var WatchRemote_AlertOpen: String { return self._s[4196]! } + public var WatchRemote_AlertOpen: String { return self._s[4197]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4197]!, self._r[4197]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4198]!, self._r[4198]!, [_1, _2, _3]) } - public var Channel_Members_AddMembersHelp: String { return self._s[4198]! } - public var Shortcut_SwitchAccount: String { return self._s[4199]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4200]! } + public var Channel_Members_AddMembersHelp: String { return self._s[4199]! } + public var Shortcut_SwitchAccount: String { return self._s[4200]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4201]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4201]!, self._r[4201]!, [_0]) + return formatWithArgumentRanges(self._s[4202]!, self._r[4202]!, [_0]) } - public var Compose_NewGroupTitle: String { return self._s[4202]! } - public var DialogList_You: String { return self._s[4203]! } - public var ReportPeer_ReasonViolence: String { return self._s[4204]! } + public var Compose_NewGroupTitle: String { return self._s[4203]! } + public var DialogList_You: String { return self._s[4204]! } + public var ReportPeer_ReasonViolence: String { return self._s[4205]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4205]!, self._r[4205]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4206]!, self._r[4206]!, [_1, _2]) } - public var VoiceChat_Reconnecting: String { return self._s[4208]! } - public var KeyCommand_ScrollDown: String { return self._s[4210]! } - public var ChatSettings_DownloadInBackground: String { return self._s[4211]! } - public var Wallpaper_ResetWallpapers: String { return self._s[4212]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[4213]! } - public var ArchivedChats_IntroText3: String { return self._s[4214]! } - public var HashtagSearch_AllChats: String { return self._s[4216]! } - public var VoiceChat_EndVoiceChat: String { return self._s[4217]! } - public var Channel_Info_BlackList: String { return self._s[4219]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4220]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4221]! } - public var Paint_Neon: String { return self._s[4223]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4224]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[4225]! } + public var VoiceChat_Reconnecting: String { return self._s[4209]! } + public var KeyCommand_ScrollDown: String { return self._s[4211]! } + public var ChatSettings_DownloadInBackground: String { return self._s[4212]! } + public var Wallpaper_ResetWallpapers: String { return self._s[4213]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[4214]! } + public var ArchivedChats_IntroText3: String { return self._s[4215]! } + public var HashtagSearch_AllChats: String { return self._s[4217]! } + public var VoiceChat_EndVoiceChat: String { return self._s[4218]! } + public var Channel_Info_BlackList: String { return self._s[4220]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[4221]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[4222]! } + public var Paint_Neon: String { return self._s[4224]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[4225]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[4226]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4227]!, self._r[4227]!, [_0]) + return formatWithArgumentRanges(self._s[4228]!, self._r[4228]!, [_0]) } - public var Map_StopLiveLocation: String { return self._s[4228]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4229]! } - public var Channel_Username_InvalidCharacters: String { return self._s[4230]! } - public var InstantPage_Reference: String { return self._s[4231]! } - public var ChatList_HideAction: String { return self._s[4233]! } - public var Conversation_FileICloudDrive: String { return self._s[4235]! } + public var Map_StopLiveLocation: String { return self._s[4229]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[4230]! } + public var Channel_Username_InvalidCharacters: String { return self._s[4231]! } + public var InstantPage_Reference: String { return self._s[4232]! } + public var ChatList_HideAction: String { return self._s[4234]! } + public var Conversation_FileICloudDrive: String { return self._s[4236]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4236]!, self._r[4236]!, [_1]) + return formatWithArgumentRanges(self._s[4237]!, self._r[4237]!, [_1]) } - public var Passport_PasswordReset: String { return self._s[4238]! } - public var ChatList_Context_UnhideArchive: String { return self._s[4240]! } - public var ConvertToSupergroup_HelpText: String { return self._s[4241]! } - public var Calls_AddTab: String { return self._s[4242]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4243]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4244]! } - public var Privacy_GroupsAndChannels: String { return self._s[4247]! } - public var AutoNightTheme_Disabled: String { return self._s[4248]! } - public var CreatePoll_MultipleChoice: String { return self._s[4249]! } + public var Passport_PasswordReset: String { return self._s[4239]! } + public var ChatList_Context_UnhideArchive: String { return self._s[4241]! } + public var ConvertToSupergroup_HelpText: String { return self._s[4242]! } + public var Calls_AddTab: String { return self._s[4243]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[4244]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[4245]! } + public var Privacy_GroupsAndChannels: String { return self._s[4248]! } + public var AutoNightTheme_Disabled: String { return self._s[4249]! } + public var CreatePoll_MultipleChoice: String { return self._s[4250]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4250]!, self._r[4250]!, [_1]) + return formatWithArgumentRanges(self._s[4251]!, self._r[4251]!, [_1]) } - public var Watch_Bot_Restart: String { return self._s[4252]! } + public var Watch_Bot_Restart: String { return self._s[4253]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4253]!, self._r[4253]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[4254]!, self._r[4254]!, ["\(_0)"]) } - public var GroupInfo_ScamGroupWarning: String { return self._s[4255]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[4256]! } - public var Appearance_PreviewIncomingText: String { return self._s[4257]! } - public var ChatSettings_WidgetSettings: String { return self._s[4258]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4259]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4261]! } - public var Stats_GroupOverview: String { return self._s[4263]! } - public var ScheduledMessages_EditTime: String { return self._s[4266]! } - public var Month_GenFebruary: String { return self._s[4267]! } - public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4268]! } - public var Stickers_ClearRecent: String { return self._s[4269]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4270]! } - public var Stats_Message_PublicShares: String { return self._s[4271]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[4256]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[4257]! } + public var Appearance_PreviewIncomingText: String { return self._s[4258]! } + public var ChatSettings_WidgetSettings: String { return self._s[4259]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[4260]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[4262]! } + public var Stats_GroupOverview: String { return self._s[4264]! } + public var ScheduledMessages_EditTime: String { return self._s[4267]! } + public var Month_GenFebruary: String { return self._s[4268]! } + public var ChatList_AutoarchiveSuggestion_OpenSettings: String { return self._s[4269]! } + public var Stickers_ClearRecent: String { return self._s[4270]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[4271]! } + public var Stats_Message_PublicShares: String { return self._s[4272]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4272]!, self._r[4272]!, [_0]) + return formatWithArgumentRanges(self._s[4273]!, self._r[4273]!, [_0]) } - public var Login_TermsOfServiceSignupDecline: String { return self._s[4273]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4274]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[4275]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4276]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4278]! } - public var CreatePoll_Create: String { return self._s[4279]! } - public var ChatList_Search_FilterLinks: String { return self._s[4280]! } - public var Your_cards_number_is_invalid: String { return self._s[4281]! } - public var Month_ShortApril: String { return self._s[4282]! } - public var SocksProxySetup_UseForCalls: String { return self._s[4283]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[4284]! } - public var SocksProxySetup_Status: String { return self._s[4285]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4286]! } - public var ChatListFolder_CategoryBots: String { return self._s[4287]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[4289]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4290]! } - public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4291]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[4292]! } - public var Conversation_TitleUnmute: String { return self._s[4293]! } - public var Group_Setup_TypeHeader: String { return self._s[4294]! } - public var Stats_ViewsPerPost: String { return self._s[4295]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4296]! } - public var Passport_Identity_TranslationHelp: String { return self._s[4297]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[4274]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[4275]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[4276]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[4277]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[4279]! } + public var CreatePoll_Create: String { return self._s[4280]! } + public var ChatList_Search_FilterLinks: String { return self._s[4281]! } + public var Your_cards_number_is_invalid: String { return self._s[4282]! } + public var Month_ShortApril: String { return self._s[4283]! } + public var SocksProxySetup_UseForCalls: String { return self._s[4284]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[4285]! } + public var SocksProxySetup_Status: String { return self._s[4286]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[4287]! } + public var ChatListFolder_CategoryBots: String { return self._s[4288]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[4290]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[4291]! } + public var Chat_PinnedListPreview_UnpinAllMessages: String { return self._s[4292]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[4293]! } + public var Conversation_TitleUnmute: String { return self._s[4294]! } + public var Group_Setup_TypeHeader: String { return self._s[4295]! } + public var Stats_ViewsPerPost: String { return self._s[4296]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[4297]! } + public var Passport_Identity_TranslationHelp: String { return self._s[4298]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4298]!, self._r[4298]!, [_1]) + return formatWithArgumentRanges(self._s[4299]!, self._r[4299]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[4299]! } + public var GroupInfo_Administrators_Title: String { return self._s[4300]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4300]!, self._r[4300]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4301]!, self._r[4301]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4301]!, self._r[4301]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4302]!, self._r[4302]!, [_1, _2, _3]) } - public var Wallet_Receive_Title: String { return self._s[4302]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[4303]! } - public var Passport_Language_my: String { return self._s[4305]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4306]! } - public var Map_PlacesNearby: String { return self._s[4307]! } - public var Channel_About_Help: String { return self._s[4308]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[4309]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[4310]! } - public var Channel_Username_Title: String { return self._s[4311]! } - public var Activity_RecordingVideoMessage: String { return self._s[4312]! } + public var Wallet_Receive_Title: String { return self._s[4303]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[4304]! } + public var Passport_Language_my: String { return self._s[4306]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[4307]! } + public var Map_PlacesNearby: String { return self._s[4308]! } + public var Channel_About_Help: String { return self._s[4309]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[4310]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[4311]! } + public var Channel_Username_Title: String { return self._s[4312]! } + public var Activity_RecordingVideoMessage: String { return self._s[4313]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4313]!, self._r[4313]!, [_0]) + return formatWithArgumentRanges(self._s[4314]!, self._r[4314]!, [_0]) } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[4314]! } - public var Passport_DiscardMessageDescription: String { return self._s[4315]! } - public var Conversation_LinkDialogOpen: String { return self._s[4316]! } - public var ChatList_Context_HideArchive: String { return self._s[4317]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[4315]! } + public var Passport_DiscardMessageDescription: String { return self._s[4316]! } + public var Conversation_LinkDialogOpen: String { return self._s[4317]! } + public var ChatList_Context_HideArchive: String { return self._s[4318]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4318]!, self._r[4318]!, [_0]) + return formatWithArgumentRanges(self._s[4319]!, self._r[4319]!, [_0]) } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4319]! } - public var Conversation_Admin: String { return self._s[4320]! } - public var DialogList_TabTitle: String { return self._s[4321]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[4320]! } + public var Conversation_Admin: String { return self._s[4321]! } + public var DialogList_TabTitle: String { return self._s[4322]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4322]!, self._r[4322]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4323]!, self._r[4323]!, [_1, _2]) } - public var Notifications_PermissionsUnreachableText: String { return self._s[4323]! } - public var Passport_Identity_GenderMale: String { return self._s[4325]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4327]! } - public var PhoneNumberHelp_Alert: String { return self._s[4328]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4329]! } - public var Notifications_InAppNotifications: String { return self._s[4330]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[4324]! } + public var Passport_Identity_GenderMale: String { return self._s[4326]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[4328]! } + public var PhoneNumberHelp_Alert: String { return self._s[4329]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[4330]! } + public var Notifications_InAppNotifications: String { return self._s[4331]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4331]!, self._r[4331]!, [_0]) + return formatWithArgumentRanges(self._s[4332]!, self._r[4332]!, [_0]) } - public var Notification_VideoCallOutgoing: String { return self._s[4332]! } - public var Login_InvalidCodeError: String { return self._s[4333]! } - public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4334]! } + public var Notification_VideoCallOutgoing: String { return self._s[4333]! } + public var Login_InvalidCodeError: String { return self._s[4334]! } + public var Conversation_PrivateChannelTimeLimitedAlertJoin: String { return self._s[4335]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4335]!, self._r[4335]!, [_0]) + return formatWithArgumentRanges(self._s[4336]!, self._r[4336]!, [_0]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4337]! } - public var ReportPeer_Report: String { return self._s[4338]! } - public var Camera_FlashOff: String { return self._s[4341]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4344]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[4347]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4348]! } - public var Passport_FieldEmail: String { return self._s[4349]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[4338]! } + public var ReportPeer_Report: String { return self._s[4339]! } + public var Camera_FlashOff: String { return self._s[4342]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[4345]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[4348]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[4349]! } + public var Passport_FieldEmail: String { return self._s[4350]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4350]!, self._r[4350]!, [_1]) + return formatWithArgumentRanges(self._s[4351]!, self._r[4351]!, [_1]) } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[4351]! } - public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4352]! } - public var Group_OwnershipTransfer_Title: String { return self._s[4353]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[4354]! } - public var Login_PhoneNumberHelp: String { return self._s[4356]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4357]! } - public var Conversation_PinnedQuiz: String { return self._s[4358]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[4359]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4360]! } - public var Group_MessagePhotoUpdated: String { return self._s[4361]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[4362]! } - public var Passport_Identity_Translations: String { return self._s[4364]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4365]! } - public var ChannelInfo_DeleteChannel: String { return self._s[4367]! } - public var PasscodeSettings_HelpBottom: String { return self._s[4368]! } - public var Channel_Members_AddMembers: String { return self._s[4369]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[4370]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4372]! } - public var Conversation_HoldForAudio: String { return self._s[4373]! } - public var Watch_LastSeen_Lately: String { return self._s[4375]! } - public var ChatList_Context_MarkAsRead: String { return self._s[4376]! } - public var Conversation_PinnedMessage: String { return self._s[4377]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4378]! } - public var Passport_UpdateRequiredError: String { return self._s[4380]! } - public var PrivacySettings_Passcode: String { return self._s[4381]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[4352]! } + public var PeerInfo_PaneVoiceAndVideo: String { return self._s[4353]! } + public var Group_OwnershipTransfer_Title: String { return self._s[4354]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[4355]! } + public var Login_PhoneNumberHelp: String { return self._s[4357]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[4358]! } + public var Conversation_PinnedQuiz: String { return self._s[4359]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[4360]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[4361]! } + public var Group_MessagePhotoUpdated: String { return self._s[4362]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[4363]! } + public var Passport_Identity_Translations: String { return self._s[4365]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[4366]! } + public var ChannelInfo_DeleteChannel: String { return self._s[4368]! } + public var PasscodeSettings_HelpBottom: String { return self._s[4369]! } + public var Channel_Members_AddMembers: String { return self._s[4370]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[4371]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[4373]! } + public var Conversation_HoldForAudio: String { return self._s[4374]! } + public var Watch_LastSeen_Lately: String { return self._s[4376]! } + public var ChatList_Context_MarkAsRead: String { return self._s[4377]! } + public var Conversation_PinnedMessage: String { return self._s[4378]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[4379]! } + public var Passport_UpdateRequiredError: String { return self._s[4381]! } + public var PrivacySettings_Passcode: String { return self._s[4382]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4382]!, self._r[4382]!, [_0]) + return formatWithArgumentRanges(self._s[4383]!, self._r[4383]!, [_0]) } - public var AutoNightTheme_NotAvailable: String { return self._s[4383]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[4384]! } - public var VoiceOver_Common_On: String { return self._s[4385]! } - public var LoginPassword_InvalidPasswordError: String { return self._s[4386]! } - public var ChatListFolder_IncludedSectionHeader: String { return self._s[4387]! } - public var Channel_SignMessages_Help: String { return self._s[4388]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4389]! } - public var Conversation_TitleNoComments: String { return self._s[4390]! } - public var MediaPicker_LivePhotoDescription: String { return self._s[4391]! } - public var GroupInfo_Permissions: String { return self._s[4392]! } - public var GroupPermission_NoSendLinks: String { return self._s[4395]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[4396]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[4398]! } - public var ChatList_ArchiveAction: String { return self._s[4399]! } + public var AutoNightTheme_NotAvailable: String { return self._s[4384]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[4385]! } + public var VoiceOver_Common_On: String { return self._s[4386]! } + public var LoginPassword_InvalidPasswordError: String { return self._s[4387]! } + public var ChatListFolder_IncludedSectionHeader: String { return self._s[4388]! } + public var Channel_SignMessages_Help: String { return self._s[4389]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[4390]! } + public var Conversation_TitleNoComments: String { return self._s[4391]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[4392]! } + public var GroupInfo_Permissions: String { return self._s[4393]! } + public var GroupPermission_NoSendLinks: String { return self._s[4396]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[4397]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[4399]! } + public var ChatList_ArchiveAction: String { return self._s[4400]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4400]!, self._r[4400]!, [_0]) + return formatWithArgumentRanges(self._s[4401]!, self._r[4401]!, [_0]) } - public var GroupInfo_GroupHistory: String { return self._s[4401]! } + public var GroupInfo_GroupHistory: String { return self._s[4402]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4403]!, self._r[4403]!, [_0]) + return formatWithArgumentRanges(self._s[4404]!, self._r[4404]!, [_0]) } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4405]! } - public var Channel_Info_Banned: String { return self._s[4406]! } - public var Paint_RecentStickers: String { return self._s[4407]! } - public var VoiceOver_MessageContextSend: String { return self._s[4408]! } - public var Group_ErrorNotMutualContact: String { return self._s[4409]! } - public var ReportPeer_ReasonOther: String { return self._s[4411]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4412]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4414]! } - public var KeyCommand_Find: String { return self._s[4415]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[4406]! } + public var Channel_Info_Banned: String { return self._s[4407]! } + public var Paint_RecentStickers: String { return self._s[4408]! } + public var VoiceOver_MessageContextSend: String { return self._s[4409]! } + public var Group_ErrorNotMutualContact: String { return self._s[4410]! } + public var ReportPeer_ReasonOther: String { return self._s[4412]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[4413]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[4415]! } + public var KeyCommand_Find: String { return self._s[4416]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4416]!, self._r[4416]!, [_0]) + return formatWithArgumentRanges(self._s[4417]!, self._r[4417]!, [_0]) } - public var ChatList_Context_Unmute: String { return self._s[4417]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4418]! } - public var Stickers_GroupStickersHelp: String { return self._s[4419]! } - public var Wallet_Configuration_BlockchainIdPlaceholder: String { return self._s[4420]! } - public var Checkout_Title: String { return self._s[4421]! } - public var Activity_RecordingAudio: String { return self._s[4422]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4423]! } - public var BlockedUsers_BlockTitle: String { return self._s[4424]! } - public var Wallet_Month_ShortFebruary: String { return self._s[4426]! } - public var Calls_All: String { return self._s[4427]! } - public var DialogList_SavedMessagesHelp: String { return self._s[4429]! } - public var Settings_FAQ_Button: String { return self._s[4430]! } - public var Conversation_Dice_u1F3B0: String { return self._s[4432]! } + public var ChatList_Context_Unmute: String { return self._s[4418]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[4419]! } + public var Stickers_GroupStickersHelp: String { return self._s[4420]! } + public var Wallet_Configuration_BlockchainIdPlaceholder: String { return self._s[4421]! } + public var Checkout_Title: String { return self._s[4422]! } + public var Activity_RecordingAudio: String { return self._s[4423]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[4424]! } + public var BlockedUsers_BlockTitle: String { return self._s[4425]! } + public var Wallet_Month_ShortFebruary: String { return self._s[4427]! } + public var Calls_All: String { return self._s[4428]! } + public var DialogList_SavedMessagesHelp: String { return self._s[4430]! } + public var Settings_FAQ_Button: String { return self._s[4431]! } + public var Conversation_Dice_u1F3B0: String { return self._s[4433]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4433]!, self._r[4433]!, [_0]) + return formatWithArgumentRanges(self._s[4434]!, self._r[4434]!, [_0]) } - public var Conversation_ReportGroupLocation: String { return self._s[4434]! } - public var Passport_Scans_Upload: String { return self._s[4435]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4437]! } - public var ChatList_UnarchiveAction: String { return self._s[4438]! } - public var Stats_GroupTopInviter_History: String { return self._s[4439]! } - public var GroupInfo_Permissions_Title: String { return self._s[4440]! } - public var Passport_Language_el: String { return self._s[4441]! } + public var Conversation_ReportGroupLocation: String { return self._s[4435]! } + public var Passport_Scans_Upload: String { return self._s[4436]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[4438]! } + public var ChatList_UnarchiveAction: String { return self._s[4439]! } + public var Stats_GroupTopInviter_History: String { return self._s[4440]! } + public var GroupInfo_Permissions_Title: String { return self._s[4441]! } + public var VoiceChat_CreateNewVoiceChatStart: String { return self._s[4442]! } + public var Passport_Language_el: String { return self._s[4443]! } public func Wallet_Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4442]!, self._r[4442]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4444]!, self._r[4444]!, [_1, _2, _3]) } - public var Channel_DiscussionMessageUnavailable: String { return self._s[4443]! } - public var GroupInfo_ActionPromote: String { return self._s[4444]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4445]! } + public var Channel_DiscussionMessageUnavailable: String { return self._s[4445]! } + public var GroupInfo_ActionPromote: String { return self._s[4446]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[4447]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4446]!, self._r[4446]!, [_0]) + return formatWithArgumentRanges(self._s[4448]!, self._r[4448]!, [_0]) } - public var VoiceOver_Chat_Reply: String { return self._s[4447]! } - public var Month_GenMay: String { return self._s[4448]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4449]! } - public var Chat_PsaTooltip_covid: String { return self._s[4450]! } - public var Watch_Suggestion_CantTalk: String { return self._s[4451]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4452]! } - public var AppUpgrade_Running: String { return self._s[4453]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4456]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4457]! } - public var SharedMedia_EmptyText: String { return self._s[4458]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[4459]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4460]! } - public var Message_PinnedGame: String { return self._s[4461]! } - public var KeyCommand_SearchInChat: String { return self._s[4462]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[4463]! } - public var ChatList_Search_FilterMedia: String { return self._s[4464]! } - public var Message_PinnedAudioMessage: String { return self._s[4465]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[4466]! } + public var VoiceOver_Chat_Reply: String { return self._s[4449]! } + public var Month_GenMay: String { return self._s[4450]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[4451]! } + public var Chat_PsaTooltip_covid: String { return self._s[4452]! } + public var Watch_Suggestion_CantTalk: String { return self._s[4453]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[4454]! } + public var AppUpgrade_Running: String { return self._s[4455]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[4458]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[4459]! } + public var SharedMedia_EmptyText: String { return self._s[4460]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[4461]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[4462]! } + public var Message_PinnedGame: String { return self._s[4463]! } + public var KeyCommand_SearchInChat: String { return self._s[4464]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[4465]! } + public var ChatList_Search_FilterMedia: String { return self._s[4466]! } + public var Message_PinnedAudioMessage: String { return self._s[4467]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[4468]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4467]!, self._r[4467]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4469]!, self._r[4469]!, [_1, _2]) } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4468]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4470]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4469]!, self._r[4469]!, [_0]) - } - public var Wallet_Receive_AddressCopied: String { return self._s[4470]! } - public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4471]!, self._r[4471]!, [_0]) } - public var Settings_AddAccount: String { return self._s[4472]! } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4473]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4474]! } - public var Channel_JoinChannel: String { return self._s[4475]! } - public var Watch_UserInfo_Unblock: String { return self._s[4476]! } - public var PhoneLabel_Title: String { return self._s[4477]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[4479]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4480]! } + public var Wallet_Receive_AddressCopied: String { return self._s[4472]! } + public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4473]!, self._r[4473]!, [_0]) + } + public var Settings_AddAccount: String { return self._s[4474]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[4475]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[4476]! } + public var Channel_JoinChannel: String { return self._s[4477]! } + public var Watch_UserInfo_Unblock: String { return self._s[4478]! } + public var PhoneLabel_Title: String { return self._s[4479]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[4481]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[4482]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4481]!, self._r[4481]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[4483]!, self._r[4483]!, [_1, _2, _3, _4, _5, _6]) } - public var Wallet_Month_GenOctober: String { return self._s[4482]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[4483]! } - public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4484]! } - public var DialogList_EncryptionProcessing: String { return self._s[4485]! } - public var ChatList_Search_FilterChats: String { return self._s[4486]! } - public var WatchRemote_NotificationText: String { return self._s[4487]! } - public var EditTheme_ChangeColors: String { return self._s[4488]! } - public var GroupRemoved_ViewUserInfo: String { return self._s[4489]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[4490]! } - public var CallSettings_OnMobile: String { return self._s[4492]! } - public var Month_ShortFebruary: String { return self._s[4494]! } - public var VoiceOver_MessageContextReply: String { return self._s[4495]! } + public var Wallet_Month_GenOctober: String { return self._s[4484]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[4485]! } + public var ChatList_TabIconFoldersTooltipNonEmptyFolders: String { return self._s[4486]! } + public var DialogList_EncryptionProcessing: String { return self._s[4487]! } + public var ChatList_Search_FilterChats: String { return self._s[4488]! } + public var WatchRemote_NotificationText: String { return self._s[4489]! } + public var EditTheme_ChangeColors: String { return self._s[4490]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[4491]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[4492]! } + public var CallSettings_OnMobile: String { return self._s[4494]! } + public var Month_ShortFebruary: String { return self._s[4496]! } + public var VoiceOver_MessageContextReply: String { return self._s[4497]! } public func PUSH_VIDEO_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4496]!, self._r[4496]!, [_1]) + return formatWithArgumentRanges(self._s[4498]!, self._r[4498]!, [_1]) } - public var Group_Location_ChangeLocation: String { return self._s[4497]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4499]! } - public var Wallet_Send_EncryptComment: String { return self._s[4500]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[4501]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4502]! } + public var Group_Location_ChangeLocation: String { return self._s[4499]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[4501]! } + public var Wallet_Send_EncryptComment: String { return self._s[4502]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[4503]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[4504]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4504]!, self._r[4504]!, [_0]) + return formatWithArgumentRanges(self._s[4506]!, self._r[4506]!, [_0]) } - public var PhotoEditor_WarmthTool: String { return self._s[4505]! } - public var Login_InfoAvatarPhoto: String { return self._s[4506]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4507]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4508]! } - public var Map_PlacesInThisArea: String { return self._s[4509]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[4510]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[4511]! } + public var PhotoEditor_WarmthTool: String { return self._s[4507]! } + public var Login_InfoAvatarPhoto: String { return self._s[4508]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[4509]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[4510]! } + public var Map_PlacesInThisArea: String { return self._s[4511]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[4512]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[4513]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4512]!, self._r[4512]!, [_1]) + return formatWithArgumentRanges(self._s[4514]!, self._r[4514]!, [_1]) } - public var ShareMenu_Send: String { return self._s[4513]! } - public var Username_InvalidStartsWithNumber: String { return self._s[4514]! } + public var ShareMenu_Send: String { return self._s[4515]! } + public var Username_InvalidStartsWithNumber: String { return self._s[4516]! } public func Channel_AdminLog_StartedVoiceChat(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4515]!, self._r[4515]!, [_1]) - } - public var Appearance_AppIconClassicX: String { return self._s[4516]! } - public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4517]!, self._r[4517]!, [_1]) } - public var Conversation_StopPoll: String { return self._s[4518]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4520]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[4521]! } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4522]! } - public var Wallet_WordCheck_Title: String { return self._s[4523]! } - public var Conversation_Timer_Title: String { return self._s[4524]! } - public var Common_Next: String { return self._s[4525]! } - public var Notification_Exceptions_NewException: String { return self._s[4526]! } + public var Appearance_AppIconClassicX: String { return self._s[4518]! } + public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4519]!, self._r[4519]!, [_1]) + } + public var Conversation_StopPoll: String { return self._s[4520]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[4522]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[4523]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[4524]! } + public var Wallet_WordCheck_Title: String { return self._s[4525]! } + public var Conversation_Timer_Title: String { return self._s[4526]! } + public var Common_Next: String { return self._s[4527]! } + public var Notification_Exceptions_NewException: String { return self._s[4528]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4527]!, self._r[4527]!, [_0]) + return formatWithArgumentRanges(self._s[4529]!, self._r[4529]!, [_0]) } - public var AccessDenied_CallMicrophone: String { return self._s[4528]! } - public var VoiceChat_UnmutePeer: String { return self._s[4529]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4530]! } - public var ChangePhoneNumberCode_Help: String { return self._s[4531]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4532]! } - public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4533]! } - public var BlockedUsers_LeavePrefix: String { return self._s[4534]! } + public var AccessDenied_CallMicrophone: String { return self._s[4530]! } + public var VoiceChat_UnmutePeer: String { return self._s[4531]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[4532]! } + public var ChangePhoneNumberCode_Help: String { return self._s[4533]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[4534]! } + public var Channel_AdminLogFilter_EventsLeaving: String { return self._s[4535]! } + public var BlockedUsers_LeavePrefix: String { return self._s[4536]! } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4535]!, self._r[4535]!, [_0]) + return formatWithArgumentRanges(self._s[4537]!, self._r[4537]!, [_0]) } - public var Group_About_Help: String { return self._s[4536]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4537]! } - public var Tour_Title3: String { return self._s[4538]! } - public var Watch_Conversation_Unblock: String { return self._s[4539]! } - public var Watch_UserInfo_Block: String { return self._s[4540]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[4541]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[4542]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4543]! } - public var Wallet_Alert_Cancel: String { return self._s[4544]! } - public var TextFormat_AddLinkTitle: String { return self._s[4545]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4546]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4547]! } - public var FastTwoStepSetup_PasswordSection: String { return self._s[4548]! } - public var Compose_ChannelMembers: String { return self._s[4549]! } - public var Conversation_ForwardTitle: String { return self._s[4550]! } + public var Group_About_Help: String { return self._s[4538]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[4539]! } + public var Tour_Title3: String { return self._s[4540]! } + public var Watch_Conversation_Unblock: String { return self._s[4541]! } + public var Watch_UserInfo_Block: String { return self._s[4542]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[4543]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[4544]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[4545]! } + public var Wallet_Alert_Cancel: String { return self._s[4546]! } + public var TextFormat_AddLinkTitle: String { return self._s[4547]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[4548]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[4549]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[4550]! } + public var Compose_ChannelMembers: String { return self._s[4551]! } + public var Conversation_ForwardTitle: String { return self._s[4552]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4551]!, self._r[4551]!, [_0]) + return formatWithArgumentRanges(self._s[4553]!, self._r[4553]!, [_0]) } - public var Conversation_PinnedPoll: String { return self._s[4553]! } + public var Conversation_PinnedPoll: String { return self._s[4555]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4554]!, self._r[4554]!, [_0]) + return formatWithArgumentRanges(self._s[4556]!, self._r[4556]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4555]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4556]! } - public var Stats_Overview: String { return self._s[4557]! } - public var Map_HomeAndWorkTitle: String { return self._s[4558]! } - public var Wallet_Intro_Terms: String { return self._s[4559]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4557]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[4558]! } + public var Stats_Overview: String { return self._s[4559]! } + public var Map_HomeAndWorkTitle: String { return self._s[4560]! } + public var Wallet_Intro_Terms: String { return self._s[4561]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4560]!, self._r[4560]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4562]!, self._r[4562]!, [_1, _2, _3]) } - public var Passport_Address_CityPlaceholder: String { return self._s[4561]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4562]! } - public var Privacy_PhoneNumber: String { return self._s[4563]! } - public var ChatList_Search_FilterFiles: String { return self._s[4564]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4565]! } - public var ChannelIntro_CreateChannel: String { return self._s[4566]! } - public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4567]! } + public var Passport_Address_CityPlaceholder: String { return self._s[4563]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[4564]! } + public var Privacy_PhoneNumber: String { return self._s[4565]! } + public var ChatList_Search_FilterFiles: String { return self._s[4566]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[4567]! } + public var ChannelIntro_CreateChannel: String { return self._s[4568]! } + public var Conversation_InputTextAnonymousPlaceholder: String { return self._s[4569]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4568]!, self._r[4568]!, [_0]) + return formatWithArgumentRanges(self._s[4570]!, self._r[4570]!, [_0]) } - public var Weekday_ShortMonday: String { return self._s[4569]! } - public var Passport_Language_ar: String { return self._s[4571]! } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4572]! } - public var TwoFactorSetup_Done_Title: String { return self._s[4573]! } - public var Calls_RatingFeedback: String { return self._s[4574]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4575]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[4578]! } - public var Watch_Compose_Send: String { return self._s[4579]! } - public var PasscodeSettings_ChangePasscode: String { return self._s[4580]! } - public var WebSearch_RecentSectionClear: String { return self._s[4581]! } + public var Weekday_ShortMonday: String { return self._s[4571]! } + public var Passport_Language_ar: String { return self._s[4573]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[4574]! } + public var TwoFactorSetup_Done_Title: String { return self._s[4575]! } + public var Calls_RatingFeedback: String { return self._s[4576]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[4577]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[4580]! } + public var Watch_Compose_Send: String { return self._s[4581]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[4582]! } + public var WebSearch_RecentSectionClear: String { return self._s[4583]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4582]!, self._r[4582]!, [_0]) + return formatWithArgumentRanges(self._s[4584]!, self._r[4584]!, [_0]) } - public var WallpaperSearch_ColorTeal: String { return self._s[4583]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4584]! } - public var Permissions_ContactsTitle_v0: String { return self._s[4585]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[4587]! } - public var Settings_SavedMessages: String { return self._s[4588]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4589]! } - public var Month_ShortMarch: String { return self._s[4590]! } - public var Message_Location: String { return self._s[4591]! } + public var WallpaperSearch_ColorTeal: String { return self._s[4585]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[4586]! } + public var Permissions_ContactsTitle_v0: String { return self._s[4587]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[4589]! } + public var Settings_SavedMessages: String { return self._s[4590]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[4591]! } + public var Month_ShortMarch: String { return self._s[4592]! } + public var Message_Location: String { return self._s[4593]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4592]!, self._r[4592]!, [_1]) + return formatWithArgumentRanges(self._s[4594]!, self._r[4594]!, [_1]) } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4593]!, self._r[4593]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4595]!, self._r[4595]!, [_1, _2]) } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[4595]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[4597]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4596]!, self._r[4596]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4598]!, self._r[4598]!, [_1, _2]) } - public var GroupPermission_NoSendMedia: String { return self._s[4597]! } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[4598]! } - public var SharedMedia_CategoryDocs: String { return self._s[4599]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[4600]! } - public var Paint_Framed: String { return self._s[4601]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4602]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[4603]! } - public var Channel_SignMessages: String { return self._s[4604]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[4605]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4606]! } + public var GroupPermission_NoSendMedia: String { return self._s[4599]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[4600]! } + public var SharedMedia_CategoryDocs: String { return self._s[4601]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[4602]! } + public var Paint_Framed: String { return self._s[4603]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[4604]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[4605]! } + public var Channel_SignMessages: String { return self._s[4606]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[4607]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[4608]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4607]!, self._r[4607]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4609]!, self._r[4609]!, [_1, _2]) } - public var GroupInfo_UpgradeButton: String { return self._s[4608]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4609]! } - public var AutoDownloadSettings_Files: String { return self._s[4610]! } + public var GroupInfo_UpgradeButton: String { return self._s[4610]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[4611]! } + public var AutoDownloadSettings_Files: String { return self._s[4612]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4611]!, self._r[4611]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4613]!, self._r[4613]!, [_0, _1]) } - public var Login_SendCodeViaSms: String { return self._s[4613]! } - public var Update_UpdateApp: String { return self._s[4614]! } - public var Channel_Setup_TypePublic: String { return self._s[4615]! } - public var Watch_Compose_CreateMessage: String { return self._s[4616]! } + public var Login_SendCodeViaSms: String { return self._s[4615]! } + public var Update_UpdateApp: String { return self._s[4616]! } + public var Channel_Setup_TypePublic: String { return self._s[4617]! } + public var Watch_Compose_CreateMessage: String { return self._s[4618]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4617]!, self._r[4617]!, [_1, _2, _3]) - } - public var StickerPacksSettings_ManagingHelp: String { return self._s[4618]! } - public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4619]!, self._r[4619]!, [_1, _2, _3]) } - public var VoiceOver_Chat_Video: String { return self._s[4620]! } - public var Forward_ChannelReadOnly: String { return self._s[4621]! } - public var StickerPack_HideStickers: String { return self._s[4622]! } - public var ChatListFolder_NameContacts: String { return self._s[4623]! } - public var Profile_BotInfo: String { return self._s[4624]! } - public var Document_TargetConfirmationFormat: String { return self._s[4625]! } - public var GroupInfo_InviteByLink: String { return self._s[4626]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4627]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[4628]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[4629]! } - public var Passport_NotLoggedInMessage: String { return self._s[4630]! } - public var Conversation_StopQuizConfirmation: String { return self._s[4631]! } - public var Checkout_PaymentMethod: String { return self._s[4632]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[4636]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4637]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4638]! } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4639]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4640]! } - public var Camera_Title: String { return self._s[4641]! } - public var Map_Directions: String { return self._s[4642]! } - public var Wallet_Intro_ImportExisting: String { return self._s[4643]! } - public var Stats_MessagePublicForwardsTitle: String { return self._s[4645]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4646]! } - public var Profile_EncryptionKey: String { return self._s[4647]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[4620]! } + public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4621]!, self._r[4621]!, [_1, _2, _3]) + } + public var VoiceOver_Chat_Video: String { return self._s[4622]! } + public var Forward_ChannelReadOnly: String { return self._s[4623]! } + public var StickerPack_HideStickers: String { return self._s[4624]! } + public var ChatListFolder_NameContacts: String { return self._s[4625]! } + public var Profile_BotInfo: String { return self._s[4626]! } + public var Document_TargetConfirmationFormat: String { return self._s[4627]! } + public var GroupInfo_InviteByLink: String { return self._s[4628]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[4629]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[4630]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[4631]! } + public var Passport_NotLoggedInMessage: String { return self._s[4632]! } + public var Conversation_StopQuizConfirmation: String { return self._s[4633]! } + public var Checkout_PaymentMethod: String { return self._s[4634]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[4638]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[4639]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[4640]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[4641]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[4642]! } + public var Camera_Title: String { return self._s[4643]! } + public var Map_Directions: String { return self._s[4644]! } + public var Wallet_Intro_ImportExisting: String { return self._s[4645]! } + public var Stats_MessagePublicForwardsTitle: String { return self._s[4647]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[4648]! } + public var Profile_EncryptionKey: String { return self._s[4649]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4648]!, self._r[4648]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[4650]!, self._r[4650]!, [_1, "\(_2)"]) } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4649]!, self._r[4649]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4651]!, self._r[4651]!, [_0, _1]) } - public var Passport_Identity_TypePassport: String { return self._s[4650]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[4652]! } - public var Common_No: String { return self._s[4653]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4654]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4655]! } - public var Settings_AboutEmpty: String { return self._s[4656]! } - public var TwoStepAuth_FloodError: String { return self._s[4658]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4659]! } + public var Passport_Identity_TypePassport: String { return self._s[4652]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[4654]! } + public var Common_No: String { return self._s[4655]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[4656]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[4657]! } + public var Settings_AboutEmpty: String { return self._s[4658]! } + public var TwoStepAuth_FloodError: String { return self._s[4660]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[4661]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4661]!, self._r[4661]!, [_1]) + return formatWithArgumentRanges(self._s[4663]!, self._r[4663]!, [_1]) } - public var Conversation_Edit: String { return self._s[4664]! } - public var CheckoutInfo_SaveInfo: String { return self._s[4665]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4666]! } - public var Call_CameraTooltip: String { return self._s[4668]! } - public var InstantPage_FeedbackButtonShort: String { return self._s[4669]! } - public var Contacts_InviteToTelegram: String { return self._s[4670]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[4671]! } - public var Notifications_ResetAllNotifications: String { return self._s[4672]! } - public var Calls_NewCall: String { return self._s[4673]! } - public var VoiceOver_Chat_Music: String { return self._s[4676]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4677]! } - public var Channel_Edit_AboutItem: String { return self._s[4678]! } - public var Message_VideoExpired: String { return self._s[4679]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4680]! } + public var Conversation_Edit: String { return self._s[4666]! } + public var CheckoutInfo_SaveInfo: String { return self._s[4667]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[4668]! } + public var Call_CameraTooltip: String { return self._s[4670]! } + public var InstantPage_FeedbackButtonShort: String { return self._s[4671]! } + public var Contacts_InviteToTelegram: String { return self._s[4672]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[4673]! } + public var Notifications_ResetAllNotifications: String { return self._s[4674]! } + public var Calls_NewCall: String { return self._s[4675]! } + public var VoiceOver_Chat_Music: String { return self._s[4678]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[4679]! } + public var Channel_Edit_AboutItem: String { return self._s[4680]! } + public var Message_VideoExpired: String { return self._s[4681]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[4682]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4681]!, self._r[4681]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4683]!, self._r[4683]!, [_1, _2]) } - public var NotificationsSound_Input: String { return self._s[4683]! } - public var Notifications_ClassicTones: String { return self._s[4684]! } - public var Conversation_StatusTyping: String { return self._s[4685]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4686]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4687]! } - public var Wallet_Month_ShortSeptember: String { return self._s[4688]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4689]! } - public var Conversation_MessageLeaveComment: String { return self._s[4690]! } - public var UserInfo_TapToCall: String { return self._s[4691]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4692]! } - public var Conversation_ClearAll: String { return self._s[4694]! } - public var UserInfo_NotificationsDefault: String { return self._s[4695]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[4696]! } - public var Location_ProximityGroupTip: String { return self._s[4697]! } - public var Map_ChooseAPlace: String { return self._s[4698]! } + public var NotificationsSound_Input: String { return self._s[4685]! } + public var Notifications_ClassicTones: String { return self._s[4686]! } + public var Conversation_StatusTyping: String { return self._s[4687]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[4688]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[4689]! } + public var Wallet_Month_ShortSeptember: String { return self._s[4690]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4691]! } + public var Conversation_MessageLeaveComment: String { return self._s[4692]! } + public var UserInfo_TapToCall: String { return self._s[4693]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[4694]! } + public var Conversation_ClearAll: String { return self._s[4696]! } + public var UserInfo_NotificationsDefault: String { return self._s[4697]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[4698]! } + public var Location_ProximityGroupTip: String { return self._s[4699]! } + public var Map_ChooseAPlace: String { return self._s[4700]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4699]!, self._r[4699]!, [_0]) + return formatWithArgumentRanges(self._s[4701]!, self._r[4701]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[4700]! } - public var ChatList_PeerTypeNonContact: String { return self._s[4701]! } - public var Conversation_SlideToCancel: String { return self._s[4702]! } - public var Month_ShortJuly: String { return self._s[4703]! } - public var SocksProxySetup_ProxyType: String { return self._s[4704]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[4702]! } + public var ChatList_PeerTypeNonContact: String { return self._s[4703]! } + public var Conversation_SlideToCancel: String { return self._s[4704]! } + public var Month_ShortJuly: String { return self._s[4705]! } + public var SocksProxySetup_ProxyType: String { return self._s[4706]! } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4705]!, self._r[4705]!, [_0]) + return formatWithArgumentRanges(self._s[4707]!, self._r[4707]!, [_0]) } - public var ChatList_EditFolders: String { return self._s[4706]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[4707]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[4709]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[4710]! } + public var ChatList_EditFolders: String { return self._s[4708]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[4709]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[4711]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[4712]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4711]!, self._r[4711]!, [_0]) + return formatWithArgumentRanges(self._s[4713]!, self._r[4713]!, [_0]) } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[4712]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[4713]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[4714]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[4716]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[4717]! } - public var Passport_DeleteAddress: String { return self._s[4719]! } - public var Passport_DeletePassportConfirmation: String { return self._s[4720]! } - public var Passport_Identity_ReverseSide: String { return self._s[4721]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[4722]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[4723]! } - public var Passport_FieldAddress: String { return self._s[4724]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[4725]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[4728]! } - public var Map_Home: String { return self._s[4730]! } - public var VoiceChat_Panel_TapToJoin: String { return self._s[4731]! } - public var PollResults_Title: String { return self._s[4732]! } - public var ArchivedChats_IntroText2: String { return self._s[4734]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[4735]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[4736]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[4738]! } - public var VoiceChat_Muted: String { return self._s[4739]! } - public var Passport_Identity_AddPersonalDetails: String { return self._s[4741]! } - public var Group_Info_AdminLog: String { return self._s[4743]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4744]! } - public var Appearance_Animations: String { return self._s[4745]! } - public var Appearance_TextSizeSetting: String { return self._s[4746]! } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[4714]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[4715]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[4716]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[4718]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[4719]! } + public var Passport_DeleteAddress: String { return self._s[4721]! } + public var Passport_DeletePassportConfirmation: String { return self._s[4722]! } + public var Passport_Identity_ReverseSide: String { return self._s[4723]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[4724]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[4725]! } + public var Passport_FieldAddress: String { return self._s[4726]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[4727]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[4730]! } + public var Map_Home: String { return self._s[4732]! } + public var VoiceChat_Panel_TapToJoin: String { return self._s[4733]! } + public var PollResults_Title: String { return self._s[4734]! } + public var ArchivedChats_IntroText2: String { return self._s[4736]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[4737]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[4738]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[4740]! } + public var VoiceChat_Muted: String { return self._s[4741]! } + public var Passport_Identity_AddPersonalDetails: String { return self._s[4743]! } + public var Group_Info_AdminLog: String { return self._s[4745]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4746]! } + public var Appearance_Animations: String { return self._s[4747]! } + public var Appearance_TextSizeSetting: String { return self._s[4748]! } + public func UserCount(_ 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 MessagePoll_QuizCount(_ value: Int32) -> String { + public func Stats_GroupTopPosterChars(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessagePoll_VotedCount(_ 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 PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, _1, _2) } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func MessageTimer_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedFiles(_ 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[4 * 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[5 * 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[5 * 6 + Int(form.rawValue)]!, _1, _2) } - public func ChatList_DeletedChats(_ value: Int32) -> String { + public func Call_ShortSeconds(_ 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 VoiceOver_Chat_MessagesSelected(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[8 * 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[8 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func Media_SharePhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func 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 Invitation_Members(_ value: Int32) -> String { + public func ChatList_Search_Messages(_ 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 VoiceOver_Chat_PollOptionCount(_ 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[12 * 6 + Int(form.rawValue)]!, stringValue) @@ -5322,714 +5321,717 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) } - public func Theme_UsersCount(_ value: Int32) -> String { + public func Notification_GameScoreSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { + public func Notification_GameScoreExtended(_ 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 ForwardedStickers(_ value: Int32) -> String { + public func SharedMedia_Generic(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + public func ForwardedLocations(_ 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 { + public func ForwardedVideoMessages(_ 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 ForwardedGifs(_ 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[19 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_ShareVideo(_ value: Int32) -> String { + public func Stats_GroupTopAdminDeletions(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + public func InviteText_ContactsCountText(_ 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 StickerPack_AddStickerCount(_ value: Int32) -> String { + public func Stats_GroupTopAdminBans(_ 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 Conversation_MessageViewComments(_ 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[23 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessagePhotos(_ value: Int32) -> String { + public func Conversation_ContextMenuSelectAll(_ 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 Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + public func ServiceMessage_GameScoreExtended(_ 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 MessageTimer_Months(_ value: Int32) -> String { + public func ChatList_DeleteConfirmation(_ 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 CreatePoll_AddMoreOptions(_ value: Int32) -> String { + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Hours(_ 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[28 * 6 + Int(form.rawValue)]!, stringValue) } - public func Contacts_ImportersCount(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSimple(_ 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 StickerPack_RemoveMaskCount(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func Map_ETAMinutes(_ value: Int32) -> String { + public func LastSeen_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { + 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[32 * 6 + Int(form.rawValue)]!, stringValue) } - public func Watch_LastSeen_HoursAgo(_ 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[33 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Days(_ value: Int32) -> String { + public func Contacts_ImportersCount(_ 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 Chat_TitlePinnedMessages(_ 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[35 * 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[36 * 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[36 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Stats_GroupTopInviterInvites(_ value: Int32) -> String { + public func ChatList_MessageFiles(_ 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 Stats_MessageForwards(_ value: Int32) -> String { + public func MuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Seconds(_ 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[39 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { + public func OldChannels_InactiveYear(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_MessageVideos(_ value: Int32) -> String { + public func StickerPack_AddMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { + 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[42 * 6 + Int(form.rawValue)]!, stringValue) } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + public func MessageTimer_ShortMinutes(_ 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 Notification_GameScoreSimple(_ value: Int32) -> String { + public func ForwardedStickers(_ 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 Conversation_SelectedMessages(_ value: Int32) -> String { + public func Media_ShareItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + public func MessageTimer_ShortDays(_ 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 ForwardedMessages(_ value: Int32) -> String { + public func ForwardedPhotos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) } - public func InstantPage_Views(_ value: Int32) -> String { + public func Map_ETAHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminBans(_ value: Int32) -> String { + public func GroupInfo_ShowMoreMembers(_ 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 MessageTimer_ShortDays(_ value: Int32) -> String { + public func MessagePoll_QuizCount(_ 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_ShortMinutes(_ value: Int32) -> String { + public func OldChannels_InactiveMonth(_ 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 ForwardedVideos(_ 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[52 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocationUpdated_MinutesAgo(_ 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[53 * 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[54 * 6 + Int(form.rawValue)]!, _1, _2) + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfSimple(_ 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[55 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Generic(_ value: Int32) -> String { + public func StickerPack_StickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[56 * 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[57 * 6 + Int(form.rawValue)]!, _1, _2) + public func QuickSend_Photos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) } public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, _1, _2) } - public func VoiceChat_Status_Members(_ value: Int32) -> String { + public func ChatList_MessageVideos(_ 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 Wallet_Updated_MinutesAgo(_ 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[60 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Hours(_ value: Int32) -> String { + public func PeopleNearby_ShowMorePeople(_ 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 Conversation_TitleComments(_ value: Int32) -> String { + 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[62 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Media_SharePhoto(_ 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) + return String(format: self._ps[63 * 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[63 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_TitleReplies(_ 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[64 * 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[65 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_Video(_ 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[66 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreExtended(_ value: Int32) -> String { + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Conversation_SelectedMessages(_ 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 GroupInfo_ParticipantCount(_ value: Int32) -> String { + public func Conversation_TitleComments(_ 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 ForwardedPolls(_ value: Int32) -> String { + 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[69 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Seconds(_ value: Int32) -> String { + public func Call_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) } - public func Stats_GroupTopAdminKicks(_ value: Int32) -> String { + public func MessageTimer_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_GroupFormat(_ value: Int32) -> String { + public func ChatListFilter_ShowMoreChats(_ 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 Conversation_StatusMembers(_ value: 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[73 * 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[74 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_DOCS(_ 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) } - public func Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { + public func ForwardedPolls(_ 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 SharedMedia_File(_ 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_GameScoreSimple(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ 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) } public func Stats_MessageViews(_ 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 ChatList_MessageMusic(_ 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 Passport_Scans(_ 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 MessageTimer_Years(_ 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 ChatList_SelectedChats(_ 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 GroupInfo_ShowMoreMembers(_ 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 Stats_GroupTopAdminDeletions(_ 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 Media_ShareItem(_ 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 MessageTimer_Hours(_ 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 AttachmentMenu_SendVideo(_ 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 MessageTimer_ShortHours(_ 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 Stats_GroupShowMoreTopPosters(_ 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 OldChannels_InactiveWeek(_ 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 OldChannels_Leave(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notifications_Exceptions(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 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[95 * 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[96 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_MessageFiles(_ 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 MessageTimer_ShortMinutes(_ 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_ContextViewReplies(_ 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 DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_StickerCount(_ 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 VoiceChat_Panel_Members(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocation_MenuChatsCount(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_Weeks(_ 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 UserCount(_ 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 Conversation_StatusOnline(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendItem(_ 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 Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[77 * 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[114 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) } - public func Chat_MessagesUnpinned(_ 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[115 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + public func OldChannels_GroupFormat(_ 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) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_DOCS_FIX1(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func Stats_MessageForwards(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, _1, _2) } - public func OldChannels_InactiveYear(_ value: Int32) -> String { + public func Conversation_ContextViewReplies(_ 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) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Minutes(_ value: Int32) -> String { + public func OldChannels_Leave(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, _0, _1) - } - 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[121 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PrivacyLastSeenSettings_AddUsers(_ 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 AttachmentMenu_SendGif(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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 LastSeen_MinutesAgo(_ 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 ServiceMessage_GameScoreSelfSimple(_ 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 MuteFor_Hours(_ 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 LastSeen_HoursAgo(_ 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 Call_Days(_ 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 ChatListFilter_ShowMoreChats(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 PeopleNearby_ShowMorePeople(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, _1, _2) - } - 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[134 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MuteExpires_Minutes(_ 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 ForwardedContacts(_ 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 Stats_GroupTopPosterChars(_ 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 Wallpaper_DeleteConfirmation(_ 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 MuteExpires_Days(_ 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 Wallet_Updated_HoursAgo(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[141 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Contacts_InviteContacts(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[142 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[143 * 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[144 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[145 * 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[146 * 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[147 * 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[148 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_ContextMenuSelectAll(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[149 * 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[150 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[84 * 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[151 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPhotos(_ value: Int32) -> String { + public func ChatList_MessageMusic(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[152 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_Search_Messages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[153 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[154 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func GroupInfo_ParticipantCount(_ 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 MuteFor_Days(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Conversation_TitleReplies(_ 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 MessageTimer_Weeks(_ 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 Passport_Scans(_ 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 SharedMedia_File(_ 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 VoiceOver_Chat_MessagesSelected(_ 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 Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ 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 Call_Days(_ 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 StickerPack_RemoveMaskCount(_ 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 VoiceOver_Chat_PollVotes(_ 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 AttachmentMenu_SendGif(_ 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 Map_ETAMinutes(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteFor_Hours(_ 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 Invitation_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_DeleteMessagesConfirmation(_ 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 ForwardedMessages(_ 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 Stats_GroupTopAdminKicks(_ 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 AttachmentMenu_SendVideo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideos(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Chat_TitlePinnedMessages(_ 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 ForwardedGifs(_ 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_Link(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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 VoiceChat_Panel_Members(_ 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 ChatList_DeletedChats(_ 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 MessagePoll_VotedCount(_ 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 PUSH_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedFiles(_ 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 MessageTimer_Years(_ 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 Wallpaper_DeleteConfirmation(_ 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 Call_ShortMinutes(_ 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 VoiceChat_Status_Members(_ 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 Call_Hours(_ 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 Chat_MessagesUnpinned(_ 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 Notification_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[155 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[129 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { + public func MessageTimer_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[156 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[130 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_DOCS(_ selector: Int32, _ _1: String, _ _2: 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[131 * 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[132 * 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[157 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[133 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func Stats_GroupTopInviterInvites(_ 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 DialogList_LiveLocationChatsCount(_ 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 StickerPack_RemoveStickerCount(_ 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 ServiceMessage_GameScoreSelfSimple(_ 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 Wallet_Updated_MinutesAgo(_ 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 MessageTimer_Seconds(_ 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 PollResults_ShowMore(_ 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 VoiceOver_Chat_PollOptionCount(_ 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) + } + public func Conversation_MessageViewComments(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[142 * 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[143 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[144 * 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[145 * 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[146 * 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[147 * 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[148 * 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[149 * 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[150 * 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[151 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedContacts(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[152 * 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[153 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[154 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[155 * 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[156 * 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[157 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Stats_GroupShowMoreTopInviters(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[158 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteText_ContactsCountText(_ 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[159 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/Resources/PresentationStrings.mapping index 6af7aea6c2c0b5e47b7de822ff66dc976661d658..70fb3762827a777f3f787559a413a682113bf13a 100644 GIT binary patch delta 32266 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 delta 31731 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 Void)? + let statusController = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: { + dismissStatus?() + })) + dismissStatus = { [weak self, weak statusController] in + self?.createVoiceChatDisposable.set(nil) + statusController?.dismiss() + } + strongSelf.present(statusController, in: .window(.root)) + strongSelf.createVoiceChatDisposable.set((createGroupCall(account: strongSelf.context.account, peerId: message.id.peerId) + |> deliverOnMainQueue).start(next: { [weak self] info in + guard let strongSelf = self else { + return + } + strongSelf.context.joinGroupCall(peerId: message.id.peerId, activeCall: CachedChannelData.ActiveCall(id: info.id, accessHash: info.accessHash)) + }, error: { [weak self] error in + dismissStatus?() + + guard let strongSelf = self else { + return + } + + let text: String + switch error { + case .generic: + text = strongSelf.presentationData.strings.Login_UnknownError + case .anonymousNotAllowed: + text = strongSelf.presentationData.strings.VoiceChat_AnonymousDisabledAlertText + } + strongSelf.present(textAlertController(context: strongSelf.context, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + }, completed: { [weak self] in + dismissStatus?() + })) + } + })]), in: .window(.root)) + } } - - let peerId = message.id.peerId - - strongSelf.context.joinGroupCall(peerId: peerId, activeCall: CachedChannelData.ActiveCall(id: callId, accessHash: accessHash)) + return true default: break } @@ -3340,6 +3394,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G self.preloadAvatarDisposable.dispose() self.peekTimerDisposable.dispose() self.hasActiveGroupCallDisposable?.dispose() + self.createVoiceChatDisposable.dispose() } public func updatePresentationMode(_ mode: ChatControllerPresentationMode) { diff --git a/submodules/TelegramUI/Sources/ChatMessageAnimatedStickerItemNode.swift b/submodules/TelegramUI/Sources/ChatMessageAnimatedStickerItemNode.swift index 3ede0c1793..79ea783f10 100644 --- a/submodules/TelegramUI/Sources/ChatMessageAnimatedStickerItemNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageAnimatedStickerItemNode.swift @@ -964,7 +964,9 @@ class ChatMessageAnimatedStickerItemNode: ChatMessageItemView { } if let immediateThumbnailData = file?.immediateThumbnailData, let placeholderNode = strongSelf.placeholderNode { - placeholderNode.update(backgroundColor: nil, foregroundColor: UIColor(rgb: 0x748391, alpha: 0.2), shimmeringColor: UIColor(rgb: 0x748391, alpha: 0.35), data: immediateThumbnailData, size: animationNodeFrame.size) + let foregroundColor = bubbleVariableColor(variableColor: item.presentationData.theme.theme.chat.message.stickerPlaceholderColor, wallpaper: item.presentationData.theme.wallpaper) + let shimmeringColor = bubbleVariableColor(variableColor: item.presentationData.theme.theme.chat.message.stickerPlaceholderShimmerColor, wallpaper: item.presentationData.theme.wallpaper) + placeholderNode.update(backgroundColor: nil, foregroundColor: foregroundColor, shimmeringColor: shimmeringColor, data: immediateThumbnailData, size: animationNodeFrame.size) placeholderNode.frame = animationNodeFrame } From 4db050b68c66c23be91ec75d7d4584ee783e7f69 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 15 Dec 2020 00:11:26 +0400 Subject: [PATCH 11/23] Voice chat fixes --- .../Resources/voip_group_connecting.mp3 | Bin 0 -> 84096 bytes .../Resources/voip_group_joined.mp3 | Bin 0 -> 18240 bytes .../Resources/voip_group_joined.wav | Bin 138580 -> 0 bytes .../Resources/voip_group_left.mp3 | Bin 0 -> 9600 bytes .../Resources/voip_group_left.wav | Bin 122952 -> 0 bytes .../Sources/PresentationCallToneData.swift | 9 ++++-- .../Sources/PresentationGroupCall.swift | 29 ++++++++++++------ submodules/TgVoipWebrtc/tgcalls | 2 +- 8 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 Telegram/Telegram-iOS/Resources/voip_group_connecting.mp3 create mode 100644 Telegram/Telegram-iOS/Resources/voip_group_joined.mp3 delete mode 100644 Telegram/Telegram-iOS/Resources/voip_group_joined.wav create mode 100644 Telegram/Telegram-iOS/Resources/voip_group_left.mp3 delete mode 100644 Telegram/Telegram-iOS/Resources/voip_group_left.wav diff --git a/Telegram/Telegram-iOS/Resources/voip_group_connecting.mp3 b/Telegram/Telegram-iOS/Resources/voip_group_connecting.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b1ace8c7f1c146a83dc58e7031e270012a593564 GIT binary patch literal 84096 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

V7iPjXHvI6ktm=#HAzm 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 literal 0 HcmV?d00001 diff --git a/Telegram/Telegram-iOS/Resources/voip_group_joined.mp3 b/Telegram/Telegram-iOS/Resources/voip_group_joined.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..314b1b16feb340fb73c7c758a1f1a94650c4b883 GIT binary patch literal 18240 zcmeFYWl&sQ7_Hg3ySux)TjTET?(UG_?ryCz`w#8^ zu>6Pne}w!a=|A%Sqvju7|1t58wf{K&$M63D|Ksm>2`EV@OLMVuu(LzV{m%-q!PJlu zkpKwse{~G#Gdldw3;+N4|2y#iMF+tD@(btPsUQ=2PL|e%ptmSOb!+f^On_pJH4`m- zv{pwLc)!Y(Pw`D4p%?%_3CRL5TLOro4xv#bV!om@ji{qbQG}+3$|4UW>wDT-N^YG5 zX9|k&7mLA*cW3hu9c@PNmE73Ai0H$J)@rcVXWyPGjLjh>2Oho>iBgK2`@BmsK*9<_ z!xK}X#7*r)mVH7;gn`G1TblPY-oy9{V63;dw}qPi3?EfzP z9Yu-(aN=laWam}3{E~y71mXYy5dYu zJi2w{f4^)7h{&A>WDq?589KRJ0xuI?J`2&RI6XGG43n(DoUfPEU!Z*d@^2#R_RWQq z^j~SPq<{HeC;5NN{r3*C@ULILpx6O_1)`CDBPukix}DL2W*(F<4+=}BB`7qr(}Yq1 zB$St=(n@i+f+*z5B2~$Io`Ue-s$FsoMr{c-or6$StJnDts$(t)GvvgrT;-&Bji;fR z&A*KZdWA$H#q?hrP*OsCTGL8_8FMX35l4usQ-00pE!MHr|LL^E7rEDJ{}FF>u263+ zBo95n8VB78UtILsB3tuxN*Lh z2n-G$^(J#Q!4P6r7D@T~w#Fd|-+E;ZMeZYC;gKOeidun5RA|jG-J^kxf5uW`6Piih zUE$@R2dPd#P9I{UluQ7CqQI0kBFyP^1YEH4r`2=MdCjxaDu2F}r?2_uynOGS5I~Kq z0lAoxqktSctU{>x8t%bP&1hDob$3BdF1{j_5>nhow+aumu4t9CRmfd4<;nk3kLA+9 zl4l#hV&AP$-BOSt!OA4hgzIXRCR^JS=>-;2?tA|yEoZIu7pNwwX3>@FFG_Ru+AZHD z`2OBTHo!l?VsoHi*E>FumuLU(A~MKY*UqG*+5j#BSoO^(Pje{qhm7@9qmdZ_3WZuY zOR2qLh;>@iq5egSp(GaGFmb8~M5V#BJwO(Ld&TD^3@%RLDMUi8)N`|S>mw4VG+++Q zleM7g_aocO!*cj=PSpIcgq--6>D^j<7#bk1w(}Mayttls!XJ7H3beuHkWc~)_g+}y zdCmbt*1D3!x_|iY5pQPmn}3;JYWXzHZ8 z`jULooy9Sy`#A|@OdyZ@Yw!QAFG~NnFWGDVmoMFaeL?C6AnTpu-mEJTnWfaAl% zEXBMsh}c*e1R4J9jyn5=$rXo35&hA-kgHJ9b@C&A9n`(m(YZqgwVG%=k~C@4I@|A0EzuBT8};tw z_jc_;Thm-W_jl~44Q97^*Mptyi$1#Q%t3%tqFNjW`O#B#wqRZkG z;1=dC35Rv zMg}3SF0KI81P2_fx)VYN_^#h*x~IdSGim^S7u_}EM2M%fZqKMQ62L%2JHtv#phRv}QLmOtRz z4>mgaNHI*5Sk-)=>T=WYa=vFc7K_pxl5!yuSpMX;wo%T&b@^Ft z^6TnJPK{Rs5gOfg(ilxeIKNpTon-}U3NjZUV`G0#XHiP)V9pfU&8j3mH_BsF&7nJ}pm7?aQPD^Wo)wjw zN0#&dfTh_k;%1rJANcs~%*40dQ~z7nnp%3tGRv&!yk=Oq-H5|x$ttniY}-#iR#*4S zkZWC<0W0}->LY7KxX9s8?+OM{k>>M+Jm1%R5M@eW%B2H^+tt&0J zk=)|n=2(g&dGqG!*DFt$VS>`7H!P`)M5ySqzX`eE>pw0RaE#f;&;7z!0VRq%p>`7? znz}n^&2R+x;G68|IOk0aWCYmbyl=19>L{0fk;uIVZS_dL1$vI2V4g6Q>WGqNxT}!RCUArg|yLu1|aw3 zI{-CxLa2yvx;4KOI`oRB)Kc^o_xgIh%Jam8W3(_^v^!wZYLcI8 zvD$f|d7^myL%o4rOOko({#YXALT9R!IU=3!9rk!xvb3Gm{N1 z;hbv*!f7hJ9K2TD%$jjeThg@j?&j=y^RZ;U|0eqLq~Vap1t(4;!A{}`6S?Uf^Iv|c zBXO?-#j%is+_oF-V9XZ&5a(XKR951Rbc+-L{#ZP9S(6kFD3{io`?loQHlOPB+<6%U zRV3bT#WCtP-ulwwGJP^o zq=DR&YHFK=ZF1jXnBWu7Y6~Ice@js2@1Nb&z4J07gg(bws{XSqfch-}1lH`NbyBRl zZMS@gi8}d$x|gZ7gRXpWD0|>p9+Rqu<7S+rWxPq9bN7H z;hOB1xpvyXCi5iVPtskZAm%rKfjeF$T}CO(Gan8+@2V9iJ!YOVJSGrz#-%fi-ZzcSIRx#FeG;3~gT5EWmeVmP>RY~m?3 zuD~D~Do?1_25x&?nOa_OWs#4zu}X9OB80BIi!`+Sj)B7SY(bmI0eHCLiNEHZS-NLW zYNt1HC&k#|poK7`6N6csGUp(_8?#-+#ATFaq7xs|`GT|PjZi#K)&@CQFXdqzkZ;Y4 zFBP^gA9Tjlp*t~AGksreDSoGwjc;W}`Pm}5$m-@4SsGaXAuL-UWZ-e=)*L(G`R;3( z_Ed+*lrUuo!hLDbSB!>IAd6-Eb(xlgosOABo?UxXu%sz_ve(j93>lt?Agq8uB2LML zdqxPvVBntc%Rh>s#N^=_#mefo%odiPhlWj?aiYiB|Jk!~L2gM|^3bP?Iu#?U|3!0s zy@W0sk$^0}YFF})i@(^*bK|disLy`SvH40hHZB3#mHL`m{e1DFt#>=%nH>Kt(Y z-YNVOMO?Hf>Dvq#j~Wab2d!ZVOa6cPWe$OZ4HVg=5nJ2NodW2~uflBT# z0!0kOB#4l*Fn80r=1JAvp9rg{f3g~(Qg2PZm~%gS+!m6zo)tcw#aexQG${o~92feV zZ|3{yGs?oBs=$xlVJ@3tV~pcVvtTi&^wp<&kD!b#I}_w1Il$W-hZm&{d{Mg>YPXO$ zEv#3LX<3ce$P!)6vDh+aQqJe~%5(=FnOY$MK@0lz2FQ5}gd20XqxUeGm>H)o_4w&i z;nLMFgqdTP_V`q`mpBWfOjBYe#?JZ5#Iw(r+zo43)s8}{MP(ORmi%)?0fuosuNS&y z`X0TEsL3;(qTCVVP}4~?TxV6Hg~B0zR<=K6rFnErB1$fcHW-T={DLf|2{_|XNF-Hl zy0x%9@Gi!9Swh$K^?h}TS&WtraxPEiP{sXIi9KX8IMB#+u6}Vpz-mlvJ$vVm6PF{z zMf3KJ8f*`QWtSP7T87dC&P{!#Td669sTf5SvRX3f4BjPMh=&-M0i7-56?SPyMw6s+ zZ6C2JL#rMD04`kX-1oC~5;I#_QHMvzd=}4T2i^Hv(_K@%FCv78Oz*hW9{bDI4YTO$ ziM*-Vhg$ux)61+a$EEiC4=9S$@zEb9^to&abQmNFqxXuUaxam`o8QX?nqEkg$rBLY zxfMvp;r!-K(r+-6<-;(}jX7Vb1jbFv%GZ#a+$;aYvcRz}=&v!?7?%$%^Tq53eV!irdQid!yEF-T``3ySX)M*ISBBMn-hUR9&L5BFVsnJiU|~@R{osY zDgv2SwdF*g{pMucnA^3X*ly+RPn}*2>?hLZ47^|*iUU1GTuAwm<)N60t)bvOvUm?f zwXhQ&4JCK9Xx|o&*(j4&O1P(0Gg%#4-Om}KhOg}|tZm$E!s^s1HD^y1sXVC!3F~z_ zd3mLG$@Kn!=+|NmMnV;b{q~?ZzU&y8a44d5-z;XN8)>%qNGX0H%tY3lDM^w;rR4Tc z7{N$164r#h$S*+X>csQ#_>Rd=PQNM5ZW-|$XY~b?A~vem32g^C$N+zq9-E^D{mU!+ zWLBX)zCe<)EGBFJ2=@NCP{T>by4NbZJ2|f->GI=eOyH7z{bD&DDd$Edb8P!Y9H;y8 z(KB<0sQR%*)9J8p%s3pAKCc!FEjmu@*lo2kK86T}g@`aGv#1PS*m2o8?!Wx9q4{bC z_Cp{qH2qreEvI;TBA&XshiD}o$r33H;XD2YZ?T~mwVmT$E!}vWF$EnaZ=bViFsE;K zewWmr?@%F@XvfHY^)@0O^lwrA;y%{?-r#or_NfEz)XmOO(wj*+2f2&J<=kNkpWM=Ur8lbiminUX&R9yPZ%QXmbI+gQA7 zv9JN!83_Z&n2d&KQ42pcRxN}h1UDZbZilq#W#%r?;46*>PYIZ*sz`ZHI<~M7#|I+E zjP-_Lhq^ns^gMgcx%iBL#lXVX7Ok>yI^nP5bXXN=vd;$N!g48qoYmji zfl;YdR1R&At+^RWQpNnc{*M7A8|P!`f-2JmeNLH5IxllJH9aI5T@HhB3$JK~=bzdr zvh02}(b|N;t+LxCRM?OgL+l_`;5Nj+0jZzik85BgQ=)BB1TBYn>Wo*6c+_hGuD62y5s4n~!Ou!$XMEXHmm?4lc_`FyM zb93!)b_GO{ol_%%oGf=zatfG#3Yc^g9@-tIY3BHQ zwt4Jxbyh@mQCYVPb=FPh4^c&|6Ksx)h=1yDxWND5@55KCK7C%MV^(Km z?>%ilWh}BadCEG@`}{Az3?Xolfg6vhDC!B_PgnxET7$>8KfvOQ!%B**d{rXEwwdwY_sn3JqMs>w) z@Hqq1fLl#~o{@tg%HU0zWhQ&(0U8IcS4E3mc+Uq7l4w>9FA|_Oqbx&WXXv5)vW~ z4Y3r;NuHwVQg>1q9M$bNBP(^TA`lUqAltC4o%`Udj5{_D%^*h6gOQ+Ips` zOv-tB@ZY}f3n8FZSpwe1vdCsxHvcG+t)<>NN;aPj&*`z+ztDMbkCM&(g z5$E@#j9}`n_i;H$BgNkAUQbN2z3b>|Wc~>u$*r7v z3@$^OhjD7C8Ub9#SkI09hVp9QM@WORR7vk64nN2=mHVn(88>u1~Gi z4v1r{PN$hu(>aQ@!2yMzDnL*Pi36L%4j2;h{DOo@5Ah{8fK>#6X@sOo~qvG6fSjCfZa$FSMsKpu4S=H8qeOyoF{?2*(!d0#!i-X8MvK zv0+~{zkFIaK=;6h9f+PM-D_V`7Nm*+oO0_?!OKXE{<}o)d{(RfM&=Z&71{)4R7#iB zH6>m`6lo|3nUMd)lKmdrhBix*Lo2AeQAP~^<~ zp)lg(C?E7(=IQ#P#C`_f#K}d!(ev}0I}Re+vH3o^h7gO}PWYqK&drFMqeSF}MnFr9 z=p+qy1qa{4>Js15h8iP?rdWqsqo#lnc14cda)=>M!Ox{B#p}u|{wSoW!qP}I!{_`a z8Zu;mHQw)~YY=IJ!OvFVw7IAp-2AaUvRYq2T3SE~fONgdaV8sVT@9_l`0S*EiPlv) ztde6w1V{xkB$pW%V9JG*`!QelTJ>#q7nJ!gzl0%htZvGWwgA9)<>#+g-vGq&LrhnP zz9UJUCj$93Pn@83t=T+n)@J7i3x*lC%m(f4rY1I5qgE5`Ok^8;w`vlr`J${|EpIbg zt!d+RD1om=y*QQ0Vhi{EIpfAzR4C|~HUr%4mRwvZ*wtemCInkbdS)9#v}25Z10H2o@H`Dc`$67M@XDcufMZYRoGrMwVB;s* zyVBNc23e8_82s_M2)xe^4!-m>1!oz*ICuA*!Lp{RtHVb?;I;=QY4s7dROLDnaZyzJ zYqn$%a5QjYrt%{~S~clGe41soeHCoIDGTTFNYk25ThrvU*XkMTT#Kn>{;Jch>o7dn z-|sQ!ucO70V?GS>P8SR^xK>{a$<<`=)k8jg_PEk16b6ee|FI_p~+VI*BF7JlL&q_k#H| zY&L=%2f(V4F((Zd2Rua|H@>EQ!4F)vH)=urkKiKkpJ1@x-7DCzXyL8p=ZfwmCV#7x zmy8soxzqqttI~I@qmUeSB0B*DR#Yu~@?SCx3ZG^3ye^We?fuQxj)|vlRR&n53wW$K zx3y}Tb&1U`_4<@GG)}EepSP1A{w_s~Vp+l^3^cTq_{Ghoh$EwayTX5i&1wU4##No%0LJ zh?+bBv4$D*%j7jCf!MkkZ&yu)uT-|b_E0~)?|2j0P^Gy z?t(7CjpvuLy#l`^g>a0mTb-3j0%@_nD z^=n%Wb2VAZU+0ZJKSh=6uxd0KW}BWgQzdm_OW0Zb;(i->$gC>I)$(zYzZx%@dAyOb zu{DNo`+OhQt9s|rX;Q(jP+dWPdvzt^L0WFy%>AuXXN+6%h&LFi)&KCdKieOpRf;ke zRsGWD>|$dwdPOe8IwrR0fd5iEEsb*_|8z9~@)Lsw><(M?mRbv7;x6a`Qi<@BbvUie z+dB6k3QG)7%~qC1UGMLaMhzT=6(56Br!LJOm+2c8Md*W=3DB>RbKJakw5IR>@=G3y zhvX+~$!~nScQbiqi}=;(;T%1|o^K?$??^o%@A*7itdYg&tahS)S*E&3CmpsU6c|4I z%thm^C;_({BLh-hGjh;tN9GDdukwD)Sc@V+*MK2Qv*qD3xHK*QY)j*MMVl9T^16Y~ z{nk9=*vz0^W5m$pXB$j%`6@ZHH^VrWrZrG29&Dg#V^~<-y?=MHzy3U19a$L^oct4f z=ORyD5VUFK>#=bVv|W+HBfreWQr+$NsMKxSx1HHq5&~^2#E2`7{}DVSp%&STv1m29 zIA^H@Sl*1Ff%Wpx#)(omc`5e5mGsD(@%AvUxN10BZBl+p2v9{9O|`F8dqq{r^?bQq zn~&=Y*rRsHeXwVDw8N$sW=rSPbTEJyZ7b!W45~TS7^^b>vKfA`abr`*J{gum|CTO@ zkhfv*&U7ij6l~7DipI8CY_@Vc!O}2YuH}*cSD_P_ukm`{AbX>#Uf+cTjr zn)Rro-8R}HOyN}Eh@Dn6p0)2;f9!Mm_~(l%8M!j#y@402#cjuQ8h5T#*8OpV*w-;L zqpB5OgzW#s%s1#~!)7yBHE?ktY%r~6bu&v?YK*kq=0?kAgC2g(2(H)q{16@OF4wo} zux`sb*b`mxn@<{=_ws7+G(!($(_e_Q$>0NGroDU|2B#luf6v~Q?Wv(?@ zrssQ=iUlMEsz0 zaYu!gkJjh=_;s_b!=QoXwG65DcwZ&r-IwLfY>rHW%5YjRLgzZEuRdn&R)w9rj5m~k z#-3EJ7i+x&lIrq>l`D1KSFR=)p;fzIbt-=kg|}_IGiH1FPXw5vZKwrL0@5~U8aNpB z>P5EUHgeSW_VsrMlrxpwhy91g@-7S`iEZH>HkNl^-}g*{FO3he@8*3g4nAybx#^x{ zTeoOqrTkdiqFBbSS%=75ULj0IHTKwMw|AjM2y$BCsOu;F8x zrV-0x`}WAK@eI^fpxXvb0`|sdIC7&+aGsNNnH)N2-;c!34_F@bes} zRxO5$)#1jn;_YRLDp5>X>eMfAaYC(@x$JEr|r@8gk6cJ!Qb;b4knZ4DPK@nMIBw^_@k|uAH z0H0_@AE8WESA$Qfs3BqiT|PyZm}7jPEk@&=^8wa%*G;0c?Q<(+VMf}gpK1=9x3l}Y zIla)e)fN&UZ?1UCYnh;GE}cY5949o!Vr@DcCAgyo=`%Y1BQw4oxYY^XJa#XR2BR#9 zYW07f?A`qJM3M$_gr0Fz`Scvu_L||3#?&d~-R|^5mLV`qP|eNNOlXB`>pkHk{1Gv~0iU8I~ZUFZ7IzMIYn{7TvD*l&*#Pq+~&tnl*~ zx8q9!{Q>7CY1Vuv+*p0_U_m@@(2mm3Yr-GGnYU4mBZ@f|yI3j8gqo(>CHTl;_h{Ha zj6H;Th>Q|R)NvZhM7Khz>iBLLaaMv3fCfPF@?}y~NnAK(HMAi|Q?6V=?@^L$++eQc z?3t~RA!>4;giTMryTd2_!OyOZb>rrh3^m|$XH;7MU?Fr(!mM-h(F!Z5&0)o4uM*cr zdDZ&_&GHm(khA8u;=NPss^_8B?lYljP9}#vLb9sbC=*NlW;`Kh?wmezPRtPD4W|L= zet&EZcb)S{r0YAM;?K8(^J$iA)B!gpW(QjgyDJoMK-y!iYwF%I!_k(Y{<*55V+k$QSn3PQha#B(1OaC;vmlW^AHKe*p#}@Jy8Et zD*sa{@jq1Rb4H03I2cOSSPNnOsekh8H>W+iy5>7b%2vJ(?0oWEx$fi6-9`8&Q8hch zhH97Ab?jd2Ft_8vTp^KXb=&Wk1JQ)6*dtKcG+lt5WRsLBkdx&}aO{YUm8zYsv$FMF z{xk4?HDJ(r=jDlmn2(#E|MTaGih;R4V@ttylDU4Htv-6ZnfNb(+X|aAFTP)>^;4iqRju$#=c2X9ebZ=0uwqs= z`4Z98R9R>*jt2MXdmCV|$_<}@1UtF{6LsR`#~Q-#6}q%sgQoiYFG?saSNV)a)OQwW z8zLQw9Ma!0lI?P{X>iwM<5w9e2IoF27@VQV%;dh1mmbA5Ls#H9gthu zBhoR(RZ|=P{BjjKhycb{KWQ-Kgb#8?0zj6k+^9DJ$J82;xevYA+1mN!v{LX#-*A4{ zj|3dotEBR&t?FgQee>tws{6r081*pY-3lpC&tnxXOf*j?Ey!!1!NFUk#n2izt~FkY$zwuIh5pG1}cQBuQPDVjiCe#oN)NenwQi8lOD z*q?Gd<*T3k&^**x6HC_bDyDM&imbtBEQ?POHMWDWd1?)+HjAnd5qgeLs}GfYMt>&m zgcvU;8f}6ehXXh1uyQ2|rR|^VCIpy)ZD%4)_eqN!*T&xKbkf%!D0f+2$ zRZAFzfF4KQE^=OCN&+|T8q81uV!fEI%h<3|C`(K@kdvO0el)!#fnQ!=AngT%rND9U z&6CjOMcQ`qj*%-O45dR7v)vz>Xxa3$>M`u!s~SQc@&t7klJcC6CBUze`q`}E5h*z* zgD&&ICBrwEaGdl(43qo~^w2TE`NK~Ti}EmC9%;0{<=H|IW7Mau&QcyK9`nd32mRW| z9BjTc)w+zf>-xR?v2Q5+>2omGGV`m41?Zd>wG9fh*wAplp_yqTCB<-NHePOI4)40)6kBoTD2_Wk27@eSmx-NDDi(t%Y{nx&S z6_=Am-plj4_GrES@>-5d`!=bZ4s+m+!zFdv(zeworvvc3=R214ue?N*(X0`ql1Yos z+?lslY?9j95mziVoz=DAE#Mk!E1hYLRTqII8fzMFh@!nSPXwT@Q<@FwD4CwVy~x%z z1hP!gEl#R3lNqn)l2`Vjjj#|wo!sf)Jc zN!^!|rj6{+1T#)03>lgy?TAGfOBvNvRNEd0bl@wfvCCzt=4;_u!Y(xLo#fD?;F69; z`IldI@fAjkXvXXSfzkh#F$FkTYu?*rFhOxaX%S^RNB38(Y z#Rb`4s3<)8+P~~flU+3IRn!hWBaXJpi4lf@&0Q@1thbs9A&v-XT~k5>k-}GM!zVOBPRCpIapBmJ&CDI z*;q^5{61{nM#8jYb`!1|4UGuPq%`GrxHb_pPXa+aM$_L$I=;_Zrd(Ogt=@a+)KE+$ zQ`2DUu}tQq{!kbRwmws*m}vV&-6~}D6!}TJ!-j>Gu;aSAI<{?pgebiwb1tD(zIMrh z<|;d(Ij@!|>Z*qsN|Ate=gU)jDN73(=ZVR(#!^HSPJR=wRp=R=eH4JHxM?$8T(Ood^b;|Y`zMCwgrxC%sMh`26{T65fTze zZCO^F0}}|vj!s4c3lIHg@R%mUc~l-9M7J(aU|;@2S7Xb1dYLHW_fC6*0Q;w~IM(Bt zqK*OJpB9-gFiS*@k5S~lF#@8f?0TTMLWOwtjSx^Xv(yB79|D0~7xR~!vEOzy2vai? z6Au#+F;i?Ekx?Ju9Pic&leM!1kC_D+WhOTgUvJIv51udOLU#w6Lm18a$j{_AM0-+| z70#Z4ymUIiszT^4zOF&7DlNOmPXtDD+Q05~z0q%Ecx;m~kkfJEcfC^W_4vIGOC{pR z%-=6}2hSA_JnAW&s6Dmg+2v%Bj;)HSWwf-*sgKB__A%WTxsT{cH@ zNLamKH1(BokyGJn)hp!;xQw^~so|-~e-F}NQvpe_z8M}?Qk`9QUt5lEv#(Eh{i~w{1x;7V;k#yQ9)>h!B&He$fTFTwD>1x4YdbpF3hKI|gaYa(f*OgSy zkvwIT(7Po|?$nGZMRTI1L*aCi8qy}CGFjXvFO76vM zE`D`O6>5{HD5si=nTFD@e2MYgOi88TyV-j_+xL~?uso+`o3@jj73h$6K0AozK&2Wh}gOMYZv0WB;bg4q5aN3R-65!lU^lK(71%caX0s z`0DOipv|#(ytN~{{7c0v?pkt(*ZG}siovO4&!aEm142Awx2k! zAD!hUU@-P74>tc%!%^Z+_ymKA7{YOiFWr@O+BtzWX5g<9qm>%*1wur+V#58331XIe zILCMhpq3YN8zeEW_XGclTpm3t5j{J>4L<@t2v#p4kDLUsDqc8lSED2W6#;!%+fpni zzxce~$heRi{C=drCht#VpQlrxrFWRG>+e1>+#a!|@ZJ)%wPY+rX2PE+C^<5;9O+FZVYm9$B3ML6 zytj@zZJI+!c_zEJUUgS4X`s_tZORe-hl$cU&gQ!&kC*?aV%jtlzf9p0C-w*DPyOdK|`t@V~={2g?maTf& za7T9vL_=ZYeASjvElAK7%Snfra7?K0P65S=iA6-j18NwhLV8zxk~sgWMG<630HSy49Ig{4&X4prXJz%uJUuubT-ydckrO zQvs#N5pAY6gXpBG7KTg#rKLQDPZ)>pj$$Yk0x5k_V{Og4pn~_h@c8#oU>ggwII^3D zIQ>wtt4Ga-!IJt8sGHKrt*)1fJcEZ5I|qp_!QUn;z&fPMQhp7!AK{ESl~c1p!T3Ce zGOyq1)-{}K+r1#uEu@I6Ra`@Eg~nS|ti!M*k2td=+1wp@@k^~QA&S%`B|C@)QnnD+ zF7YNohjH0F%B*UCV#$){)F20i*dBqu9|jhiQlNJ>7iDpbHKQ@kE<6!15C^+)kVqTA z$2!7mnYEsk9r_&n4E`|vc)Y@t)Mm}vrg|lqqM1_i)!X9U{G<~A(IO}^?r$yuNr?lu zM3PfIwVi>m1!3Vnq;OrxeNHnWdSwnb&A3{h>p!5GhR>LYu*~HS3m>}x4QUw#O>Wgy z2qC>=zuZMRJnD#sU7bE*ldD;ED2ZsZP*Pr85+|I7BGOm|Wu%5(=!l{{3P-`cD&SG0 zM-b4GbyNZW^^CcVzq0qGTdkXJDKYV@-x{@_#u(Jlw<6B+2CH9A#uJe;EH}RW;1BoN zsW9&f-rseRFo-i~E5b+8G$qYRWNC>LT&?b-2@WM{SwaPk$l{+WAZ^6`GU^D?2Gumk znUo@|tfP;f;93N{JTQmYU8+=}4iP<;a(45{z9dIjAYep{E}oZ_*I9;X=->Ls!ZS6W8|CTg0>l zJ{!rwgwo0qM>iO#RTamOW04nxWR2ot53t9Y0?=Uur(iJhA(ArXGkQ^bC@9L0D3CtE zuQ|!uFkz>vFdAJ#m|GtKK@xJI;+qPu-SlI+A16W2Z=g!1fzM*2KQFURFTN%edt+)( zZO`vHi?0*l)H=^ZX&Z1bR?WD-l$fazU)vIK4*OhYt$xCa`QRs7H6%--4R{W81*Xec z=rNNLoNh4+@x7dcwW5j; zlcGx$&@dY0d=1kHzeVL_I#AsCP*A3z6WK39aofJyj}ud2q$PYkgH@+N zWWEy5fuzNVw&f--mBU8|s1a6_hv&#j0|`ntp^nz3uoLj?yY@90rkA{_xv`*gPA8NV zdGhjuh;t9XFE-MOb$+R>pa10-oD3HmC>-K6A%4B!n}YImL7e)xe`A0|GDM`v?r;Cb zSbTPZ`e{71&U?@2gTB4Yt2*Rc#EyM5{@UE1kP)l%j~AV)G=@iv1(Wu8A78wl@nyH&B3d%~+?6Wp zQx)!XoB&d5q7$`leMk07jgr94__`?!`8+Oadr2Ix z%n~uSSbvEG2!by9mTq+B9_x2j0c^dl^pIgLbV#*nSmHCJw@ z7=46J4@Xe5%3mqpeu{`e4V#*&-RiUDMS)@g-=U;B^+2tE1Am8NBY^wCqF$!jPCFLT zJW3;%m2q!vUJ?{1>lu^jO=T=2<>M1bH7E9wc=NMWD3I0V*-p3iSgKCS!mm^amy*dm z^?FWm8tzul!k^%G|024Xa6-P7Fk4BkpFahrmk;SEB?Ge%p$c>faSC@m87wGr_yQh` zNZ|yR&4!ymLqL86ulIRk6_;Wgp=)-G_IkPkq*HCqeZ4Hr7FI9{3OD?N2GJ`&z??38 zA;4(DLI9$6WLA~chD-q{&=`HiP4lAH#B*Oxkw4S~K}euM(i;n6Vof5CXC#MV(^QQ} zL{JcZsxKXhc0fEv38%8}>D z`NiZE7KmT2xm)9z!9{}ZV=Ft=Tl5It|H*FX{P{e>BP$5oQc+_JSB9WSHfFr%l|X{p#Un9*hG!bAFk5OV?e zZ;Bj1b#?kdjUjo4ytJ);ZPXux#Bl1wH2i`L@YI_5$a-WL++IP|Qb_JAkOxww6ygka5GI zPG|^}NM0Z<={2*2Q5fu1I20m%{E{$15XK}n6+A#sJ8BUmpooI1?xCF|0s)vwl4CNr zYCyn*j_6XF??&Qg*QFv?QKcVtv|0Cx=>Y|Qn9f@lWqpP9I?QV}`F)K_MJ#<_kxccS z!IKtS-jE=%Bz_sHy zPvOEhOLP*qIAEaSGFH=FB+i!m#Z_WiN9ec7Q^P@$*1`mNE6G_d$1Phot}?|_mjzCJ z4kljK+1~wi#LK73HO<`dgO%O|y&C&xJ%){BDsUtc@|9qA`t6jP7zrwuDIi;; z1+%XU)>T0H_C3fA?>sw;{$fnwxIFjdQ4GAoJ9jxcGw_hTqA!Hmyy7H#B;}sa`w^5&TcS_`+;`zgR@}A~ znks7-$*CCRq?a?HlFT{01?XvN2esj)TM#7#3=V>o zZy!bA>peb|%AV_<7-#nG&Mh{5j^C~`)&s((IKy76dM+R{ulxpscagQ?BX}v2RY%e> z$zQkS5(S}6w?auE&QhD1@>CcBv#l%Ym~ZE53amvvLO2FCb>&XyDAC7>vSN@5EZc?k z0(?wSbSEhy?{lImObl%`i#WD0V?j6)eheO!(ON^yd2U7yM)fszr=wahD(Ui_o=a;y z5<}(wVbn!tBZ9F$A{;Ai-^BGen?g<2IZzR4n#hwRrH28~#L~O~{3r`pf|w$TX;po# z)=VqcU3kSh#_mxr#u{pToSlzcz29X8oF89;n}eNwPqIbICs=E&H!+zFawip~(osrV zG47w+B^{Ur4I!kw$#&TV=_9Fu_9ST~_=0peYw*%(0B~76bUM{2X4e`2`BIFBauY6f ztmL8ziW-rR6>E;EhkrmC8nPM`Axm86%Z1- zA(JN=A}0K#SCex$6-Qu51wu#M7zfVQ_4nWYGl=$D#$1z84in7?iFx_)l$W_m>wo~T z1qt8z@&~JnrsC{kg%|&VHG*O`ja!E&Wb`+zS@Z<`ZvHp}>NcMUHwH2|ORokzRej9V z1PW*SDVphw(Xuqay}xJa@J7N!D*rXIw?V3TKH2=9<7$}GtV!3}Cs&|Lz8Q3Mi&>sh z_o1CAn_mKdETs<`RO@!nlEA24O^s;<<;|Gk#3-~^WPL;FP6$Arx2hvenqnfF9GRj5 zSqo!}eHI6%h)ynrIUib+MqC2pxELFGcxWgs56z6?)*eX*C`bMSNZ(372Cu@SjSHcb z7q9K~vi0FHU@Kj_@$l7ly<iNw{n z5iZh^nEre#THC6%1bHfTLktGx8XXqmoE~o|mjdA^6cvc(OR3Vegcx!hEDCxJ4M>?& z_CTO|lLDLul=)LF36%f?5j-PwRnyt4JT0j5J$*SP;hDMxix__H?|-xnlPm5&L#&!Caz%!e}(SNXuQFN!ZM1k4NEk1dv-`1McT_(usRt_JI!nVC59 zb!3LOl~Uh19aVwU8N(UTGsz7e@=0}RQW`0wvf4|F8GZ5`8UmC~@~lu6Ugnd4qHv9= z=~VdbdU31A{KDk}qlo)Dm5A^1|HpDX3(F4tadW=#M`2Or<)ty61yuoRVbNg|w$7dQ z>ej6dy{9}aBeX6?9ewI2K2tx8;iN@Hv5`QqW0KFKkS1-Nv~vqqg=h(h&tP10=)7UZ qqm?t=7U*0H+28s~phaL~!w#1PlesTlTH*yiuLOL=$tW=rLI40dJ>4k) literal 0 HcmV?d00001 diff --git a/Telegram/Telegram-iOS/Resources/voip_group_joined.wav b/Telegram/Telegram-iOS/Resources/voip_group_joined.wav deleted file mode 100644 index 684cb47f75e994dee90ca681dc56b9023f267c75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138580 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ʶ<)YVU@?QFl%MOQ+Erw7Wbd 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�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 P&z?j^YrKPez=Ox%vY>}k diff --git a/Telegram/Telegram-iOS/Resources/voip_group_left.mp3 b/Telegram/Telegram-iOS/Resources/voip_group_left.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a8d79f0aa18592b9f2757ffc6f874402817883e8 GIT binary patch literal 9600 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 literal 0 HcmV?d00001 diff --git a/Telegram/Telegram-iOS/Resources/voip_group_left.wav b/Telegram/Telegram-iOS/Resources/voip_group_left.wav deleted file mode 100644 index 845b507c158879e83c7d1341c68fcb7fcc5464a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122952 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 II1icrKXIV92mk;8 diff --git a/submodules/TelegramCallsUI/Sources/PresentationCallToneData.swift b/submodules/TelegramCallsUI/Sources/PresentationCallToneData.swift index 1b42a67fd6..32197dfe60 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationCallToneData.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationCallToneData.swift @@ -73,6 +73,7 @@ enum PresentationCallTone { case ended case groupJoined case groupLeft + case groupConnecting var loopCount: Int? { switch self { @@ -84,6 +85,8 @@ enum PresentationCallTone { return 1 case .groupJoined, .groupLeft: return 1 + case .groupConnecting: + return nil default: return nil } @@ -103,8 +106,10 @@ func presentationCallToneData(_ tone: PresentationCallTone) -> Data? { case .ended: return loadToneData(name: "voip_end.caf") case .groupJoined: - return loadToneData(name: "voip_group_joined.wav") + return loadToneData(name: "voip_group_joined.mp3") case .groupLeft: - return loadToneData(name: "voip_group_left.wav") + return loadToneData(name: "voip_group_left.mp3") + case .groupConnecting: + return loadToneData(name: "voip_group_connecting.mp3") } } diff --git a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift index 37d8d1bd28..092be11130 100644 --- a/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift +++ b/submodules/TelegramCallsUI/Sources/PresentationGroupCall.swift @@ -831,10 +831,10 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { case .connected: mappedState = .connected } + let wasConnecting = strongSelf.stateValue.networkState == .connecting if strongSelf.stateValue.networkState != mappedState { strongSelf.stateValue.networkState = mappedState } - let isConnecting = mappedState == .connecting if strongSelf.isCurrentlyConnecting != isConnecting { @@ -847,12 +847,24 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { } } - if case .connected = state, !strongSelf.didConnectOnce { - strongSelf.didConnectOnce = true - - let toneRenderer = PresentationCallToneRenderer(tone: .groupJoined) - strongSelf.toneRenderer = toneRenderer - toneRenderer.setAudioSessionActive(strongSelf.isAudioSessionActive) + if wasConnecting != isConnecting && strongSelf.didConnectOnce { + if isConnecting { + let toneRenderer = PresentationCallToneRenderer(tone: .groupConnecting) + strongSelf.toneRenderer = toneRenderer + toneRenderer.setAudioSessionActive(strongSelf.isAudioSessionActive) + } else { + strongSelf.toneRenderer = nil + } + } + + if case .connected = state { + if !strongSelf.didConnectOnce { + strongSelf.didConnectOnce = true + + let toneRenderer = PresentationCallToneRenderer(tone: .groupJoined) + strongSelf.toneRenderer = toneRenderer + toneRenderer.setAudioSessionActive(strongSelf.isAudioSessionActive) + } } })) @@ -1099,7 +1111,6 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { private func markAsCanBeRemoved() { self.callContext?.stop() - self.callContext = nil self._canBeRemoved.set(.single(true)) if self.didConnectOnce { @@ -1107,7 +1118,7 @@ public final class PresentationGroupCallImpl: PresentationGroupCall { self.toneRenderer = toneRenderer toneRenderer.setAudioSessionActive(self.isAudioSessionActive) - Queue.mainQueue().after(0.5, { + Queue.mainQueue().after(1.0, { self.wasRemoved.set(.single(true)) }) } diff --git a/submodules/TgVoipWebrtc/tgcalls b/submodules/TgVoipWebrtc/tgcalls index 0184a4bf26..20191e3a08 160000 --- a/submodules/TgVoipWebrtc/tgcalls +++ b/submodules/TgVoipWebrtc/tgcalls @@ -1 +1 @@ -Subproject commit 0184a4bf26ed749bf59543c70ff413d4f3579c2b +Subproject commit 20191e3a0828095ea14c6790f756c72f437fae32 From b874342aff579f5c20dae1acc0ed6ce1591c3cc4 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 15 Dec 2020 01:03:48 +0400 Subject: [PATCH 12/23] Voice Chat UI improvements --- .../Display/Source/CAAnimationUtils.swift | 8 ++++++-- .../Source/ContainedViewLayoutTransition.swift | 12 ++++++------ .../Sources/VoiceChatActionButton.swift | 12 +++++++----- .../Sources/VoiceChatOverlayController.swift | 17 +++++++++++------ .../Sources/DefaultDayPresentationTheme.swift | 2 +- 5 files changed, 31 insertions(+), 20 deletions(-) diff --git a/submodules/Display/Source/CAAnimationUtils.swift b/submodules/Display/Source/CAAnimationUtils.swift index 5682fc240e..4aecee5b73 100644 --- a/submodules/Display/Source/CAAnimationUtils.swift +++ b/submodules/Display/Source/CAAnimationUtils.swift @@ -127,7 +127,7 @@ public extension CALayer { self.add(animationGroup, forKey: key) } - func animateKeyframes(values: [AnyObject], duration: Double, keyPath: String, timingFunction: String = CAMediaTimingFunctionName.linear.rawValue, removeOnCompletion: Bool = true, additive: Bool = false, completion: ((Bool) -> Void)? = nil) { + func animateKeyframes(values: [AnyObject], duration: Double, keyPath: String, timingFunction: String = CAMediaTimingFunctionName.linear.rawValue, mediaTimingFunction: CAMediaTimingFunction? = nil, removeOnCompletion: Bool = true, additive: Bool = false, completion: ((Bool) -> Void)? = nil) { let k = Float(UIView.animationDurationFactor()) var speed: Float = 1.0 if k != 0 && k != 1 { @@ -150,7 +150,11 @@ public extension CALayer { animation.speed = speed animation.duration = duration animation.isAdditive = additive - animation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName(rawValue: timingFunction)) + if let mediaTimingFunction = mediaTimingFunction { + animation.timingFunction = mediaTimingFunction + } else { + animation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName(rawValue: timingFunction)) + } animation.isRemovedOnCompletion = removeOnCompletion if let completion = completion { animation.delegate = CALayerAnimationDelegate(animation: animation, completion: completion) diff --git a/submodules/Display/Source/ContainedViewLayoutTransition.swift b/submodules/Display/Source/ContainedViewLayoutTransition.swift index 6313fb29c3..bfdcc179a1 100644 --- a/submodules/Display/Source/ContainedViewLayoutTransition.swift +++ b/submodules/Display/Source/ContainedViewLayoutTransition.swift @@ -477,7 +477,7 @@ public extension ContainedViewLayoutTransition { } } - func updateAlpha(node: ASDisplayNode, alpha: CGFloat, beginWithCurrentState: Bool = false, force: Bool = false, completion: ((Bool) -> Void)? = nil) { + func updateAlpha(node: ASDisplayNode, alpha: CGFloat, beginWithCurrentState: Bool = false, force: Bool = false, delay: Double = 0.0, completion: ((Bool) -> Void)? = nil) { if node.alpha.isEqual(to: alpha) && !force { if let completion = completion { completion(true) @@ -499,7 +499,7 @@ public extension ContainedViewLayoutTransition { previousAlpha = node.alpha } node.alpha = alpha - node.layer.animateAlpha(from: previousAlpha, to: alpha, duration: duration, timingFunction: curve.timingFunction, mediaTimingFunction: curve.mediaTimingFunction, completion: { result in + node.layer.animateAlpha(from: previousAlpha, to: alpha, duration: duration, delay: delay, timingFunction: curve.timingFunction, mediaTimingFunction: curve.mediaTimingFunction, completion: { result in if let completion = completion { completion(result) } @@ -670,7 +670,7 @@ public extension ContainedViewLayoutTransition { } } - func updateTransformScale(node: ASDisplayNode, scale: CGFloat, beginWithCurrentState: Bool = false, completion: ((Bool) -> Void)? = nil) { + func updateTransformScale(node: ASDisplayNode, scale: CGFloat, beginWithCurrentState: Bool = false, delay: Double = 0.0, completion: ((Bool) -> Void)? = nil) { let t = node.layer.transform let currentScale = sqrt((t.m11 * t.m11) + (t.m12 * t.m12) + (t.m13 * t.m13)) if currentScale.isEqual(to: scale) { @@ -695,7 +695,7 @@ public extension ContainedViewLayoutTransition { previousScale = currentScale } node.layer.transform = CATransform3DMakeScale(scale, scale, 1.0) - node.layer.animateScale(from: previousScale, to: scale, duration: duration, timingFunction: curve.timingFunction, mediaTimingFunction: curve.mediaTimingFunction, completion: { result in + node.layer.animateScale(from: previousScale, to: scale, duration: duration, delay: delay, timingFunction: curve.timingFunction, mediaTimingFunction: curve.mediaTimingFunction, completion: { result in if let completion = completion { completion(result) } @@ -729,7 +729,7 @@ public extension ContainedViewLayoutTransition { } } - func updateSublayerTransformScale(node: ASDisplayNode, scale: CGFloat, completion: ((Bool) -> Void)? = nil) { + func updateSublayerTransformScale(node: ASDisplayNode, scale: CGFloat, delay: Double = 0.0, completion: ((Bool) -> Void)? = nil) { if !node.isNodeLoaded { node.subnodeTransform = CATransform3DMakeScale(scale, scale, 1.0) completion?(true) @@ -752,7 +752,7 @@ public extension ContainedViewLayoutTransition { } case let .animated(duration, curve): node.layer.sublayerTransform = CATransform3DMakeScale(scale, scale, 1.0) - node.layer.animate(from: NSValue(caTransform3D: t), to: NSValue(caTransform3D: node.layer.sublayerTransform), keyPath: "sublayerTransform", timingFunction: curve.timingFunction, duration: duration, delay: 0.0, mediaTimingFunction: curve.mediaTimingFunction, removeOnCompletion: true, additive: false, completion: { + node.layer.animate(from: NSValue(caTransform3D: t), to: NSValue(caTransform3D: node.layer.sublayerTransform), keyPath: "sublayerTransform", timingFunction: curve.timingFunction, duration: duration, delay: delay, mediaTimingFunction: curve.mediaTimingFunction, removeOnCompletion: true, additive: false, completion: { result in if let completion = completion { completion(result) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift b/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift index d9c0e924bd..69a04531cc 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift @@ -200,18 +200,20 @@ final class VoiceChatActionButton: HighlightTrackingButtonNode { break } - let transition: ContainedViewLayoutTransition = animated ? .animated(duration: 0.2, curve: .easeInOut) : .immediate + if snap { + let transition: ContainedViewLayoutTransition = animated ? .animated(duration: 0.2, curve: .easeInOut) : .immediate transition.updateTransformScale(node: self.backgroundNode, scale: active ? 0.75 : 0.5) transition.updateTransformScale(node: self.iconNode, scale: 0.5) transition.updateAlpha(node: self.titleLabel, alpha: 0.0) transition.updateAlpha(node: self.subtitleLabel, alpha: 0.0) transition.updateAlpha(layer: self.backgroundNode.maskProgressLayer, alpha: 0.0) } else { - transition.updateTransformScale(node: self.backgroundNode, scale: small ? 0.85 : 1.0) - transition.updateTransformScale(node: self.iconNode, scale: self.pressing ? 0.9 : 1.0) - transition.updateAlpha(node: self.titleLabel, alpha: 1.0) - transition.updateAlpha(node: self.subtitleLabel, alpha: 1.0) + let transition: ContainedViewLayoutTransition = animated ? .animated(duration: 0.35, curve: .easeInOut) : .immediate + transition.updateTransformScale(node: self.backgroundNode, scale: small ? 0.85 : 1.0, delay: 0.12) + transition.updateTransformScale(node: self.iconNode, scale: self.pressing ? 0.9 : 1.0, delay: 0.12) + transition.updateAlpha(node: self.titleLabel, alpha: 1.0, delay: 0.1) + transition.updateAlpha(node: self.subtitleLabel, alpha: 1.0, delay: 0.1) transition.updateAlpha(layer: self.backgroundNode.maskProgressLayer, alpha: 1.0) } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift index b76c49faa3..edf4d0fe1c 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift @@ -117,11 +117,13 @@ public final class VoiceChatOverlayController: ViewController { leftButton?.textNode.layer.removeAllAnimations() leftButton?.layer.removeAllAnimations() }) + leftButton.layer.animateScale(from: 1.0, to: 0.5, duration: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue) rightButton.layer.animatePosition(from: rightButton.position, to: center, duration: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false, completion: { [weak rightButton] _ in rightButton?.isHidden = true rightButton?.textNode.layer.removeAllAnimations() rightButton?.layer.removeAllAnimations() }) + rightButton.layer.animateScale(from: 1.0, to: 0.5, duration: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue) leftButton.textNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.1, removeOnCompletion: false) rightButton.textNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.1, removeOnCompletion: false) @@ -197,7 +199,7 @@ public final class VoiceChatOverlayController: ViewController { } else { self.animating = true let sourcePoint = actionButton.position - var midPoint = CGPoint(x: (sourcePoint.x + targetPosition.x) / 2.0 - 25.0, y: (sourcePoint.y + targetPosition.y) / 2.0 + 25.0) + var midPoint = CGPoint(x: (sourcePoint.x + targetPosition.x) / 2.0 - 30.0, y: (sourcePoint.y + targetPosition.y) / 2.0 + 25.0) if sourcePoint.y < layout.size.height - 100.0 { midPoint.x = (sourcePoint.x + targetPosition.x) / 2.0 + 30.0 midPoint.y = (sourcePoint.y + targetPosition.y) / 2.0 + 40.0 @@ -226,18 +228,21 @@ public final class VoiceChatOverlayController: ViewController { let center = CGPoint(x: actionButton.frame.width / 2.0, y: actionButton.frame.height / 2.0) leftButton.isHidden = false - leftButton.layer.animatePosition(from: center, to: leftButtonPosition, duration: 0.25, delay: 0.12, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) + leftButton.layer.animatePosition(from: center, to: leftButtonPosition, duration: 0.28, delay: 0.12, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) rightButton.isHidden = false - rightButton.layer.animatePosition(from: center, to: rightButtonPosition, duration: 0.25, delay: 0.12, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) + rightButton.layer.animatePosition(from: center, to: rightButtonPosition, duration: 0.28, delay: 0.12, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) - leftButton.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1, delay: 0.1) - rightButton.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1, delay: 0.1) + leftButton.layer.animateScale(from: 0.5, to: 1.0, duration: 0.28, delay: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue) + rightButton.layer.animateScale(from: 0.5, to: 1.0, duration: 0.28, delay: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue) + + leftButton.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1, delay: 0.15) + rightButton.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1, delay: 0.15) } actionButton.update(snap: false, animated: true) actionButton.position = targetPosition - actionButton.layer.animateKeyframes(values: keyframes, duration: 0.37, keyPath: "position", timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, completion: { _ in + actionButton.layer.animateKeyframes(values: keyframes, duration: 0.48, keyPath: "position", timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, mediaTimingFunction: CAMediaTimingFunction(controlPoints: 0.5, 1.1+Float(1.0/3.0), 1, 1), completion: { _ in self.animating = false completion(false) }) diff --git a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift index 225c5cc1ea..2555a99f5b 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift @@ -618,7 +618,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio deliveryFailedColors: PresentationThemeFillForeground(fillColor: UIColor(rgb: 0xff3b30), foregroundColor: UIColor(rgb: 0xffffff)), mediaHighlightOverlayColor: UIColor(rgb: 0xffffff, alpha: 0.6), stickerPlaceholderColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor.withAlphaComponent(0.3), withoutWallpaper: UIColor(rgb: 0xf7f7f7)), - stickerPlaceholderShimmerColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0xffffff, alpha: 0.2), withoutWallpaper: UIColor(rgb: 0xffffff, alpha: 0.5)) + stickerPlaceholderShimmerColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0xffffff, alpha: 0.2), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.1)) ) let serviceMessage = PresentationThemeServiceMessage( From 8aff0c86582aa5a249dd1d338e80a0123506693d Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 15 Dec 2020 01:24:15 +0400 Subject: [PATCH 13/23] Update submodule --- submodules/TgVoipWebrtc/tgcalls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/TgVoipWebrtc/tgcalls b/submodules/TgVoipWebrtc/tgcalls index 20191e3a08..6156230e6a 160000 --- a/submodules/TgVoipWebrtc/tgcalls +++ b/submodules/TgVoipWebrtc/tgcalls @@ -1 +1 @@ -Subproject commit 20191e3a0828095ea14c6790f756c72f437fae32 +Subproject commit 6156230e6a50c65e4e6495623989689834e8e09a From 7b061cc3a04ed5d06321b3ea94a206c2f4826d21 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 15 Dec 2020 01:55:10 +0400 Subject: [PATCH 14/23] Tune voice chat mute button animation --- .../Sources/VoiceChatOverlayController.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift index edf4d0fe1c..f1c11575dd 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift @@ -199,7 +199,7 @@ public final class VoiceChatOverlayController: ViewController { } else { self.animating = true let sourcePoint = actionButton.position - var midPoint = CGPoint(x: (sourcePoint.x + targetPosition.x) / 2.0 - 30.0, y: (sourcePoint.y + targetPosition.y) / 2.0 + 25.0) + var midPoint = CGPoint(x: (sourcePoint.x + targetPosition.x) / 2.0 - 30.0, y: (sourcePoint.y + targetPosition.y) / 2.0 + 30.0) if sourcePoint.y < layout.size.height - 100.0 { midPoint.x = (sourcePoint.x + targetPosition.x) / 2.0 + 30.0 midPoint.y = (sourcePoint.y + targetPosition.y) / 2.0 + 40.0 @@ -228,10 +228,10 @@ public final class VoiceChatOverlayController: ViewController { let center = CGPoint(x: actionButton.frame.width / 2.0, y: actionButton.frame.height / 2.0) leftButton.isHidden = false - leftButton.layer.animatePosition(from: center, to: leftButtonPosition, duration: 0.28, delay: 0.12, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) + leftButton.layer.animatePosition(from: center, to: leftButtonPosition, duration: 0.28, delay: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) rightButton.isHidden = false - rightButton.layer.animatePosition(from: center, to: rightButtonPosition, duration: 0.28, delay: 0.12, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) + rightButton.layer.animatePosition(from: center, to: rightButtonPosition, duration: 0.28, delay: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, removeOnCompletion: false) leftButton.layer.animateScale(from: 0.5, to: 1.0, duration: 0.28, delay: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue) rightButton.layer.animateScale(from: 0.5, to: 1.0, duration: 0.28, delay: 0.15, timingFunction: CAMediaTimingFunctionName.easeOut.rawValue) @@ -242,7 +242,7 @@ public final class VoiceChatOverlayController: ViewController { actionButton.update(snap: false, animated: true) actionButton.position = targetPosition - actionButton.layer.animateKeyframes(values: keyframes, duration: 0.48, keyPath: "position", timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, mediaTimingFunction: CAMediaTimingFunction(controlPoints: 0.5, 1.1+Float(1.0/3.0), 1, 1), completion: { _ in + actionButton.layer.animateKeyframes(values: keyframes, duration: 0.5, keyPath: "position", timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, mediaTimingFunction: CAMediaTimingFunction(controlPoints: 0.5, 1.1 + Float(1.0 / 3.0), 1, 1), completion: { _ in self.animating = false completion(false) }) From 23d0ac26b8acca9063943d82a485e76b187010a9 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 15 Dec 2020 02:12:49 +0400 Subject: [PATCH 15/23] Voice Chat UI fixes --- .../TelegramCallsUI/Sources/CallStatusBarNode.swift | 6 +++--- .../Sources/VoiceChatOverlayController.swift | 13 +++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift b/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift index 973ac2cca5..0d7daa59cb 100644 --- a/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift +++ b/submodules/TelegramCallsUI/Sources/CallStatusBarNode.swift @@ -411,9 +411,9 @@ public class CallStatusBarNodeImpl: CallStatusBarNode { } let spacing: CGFloat = 5.0 - let titleSize = self.titleNode.updateLayout(CGSize(width: 160.0, height: size.height)) - let subtitleSize = self.subtitleNode.updateLayout(size: CGSize(width: 160.0, height: size.height), animated: true) - let speakerSize = self.speakerNode.updateLayout(CGSize(width: 160.0, height: size.height)) + let titleSize = self.titleNode.updateLayout(CGSize(width: 150.0, height: size.height)) + let subtitleSize = self.subtitleNode.updateLayout(size: CGSize(width: 150.0, height: size.height), animated: true) + let speakerSize = self.speakerNode.updateLayout(CGSize(width: 150.0, height: size.height)) let totalWidth = titleSize.width + spacing + subtitleSize.width let horizontalOrigin: CGFloat = floor((size.width - totalWidth) / 2.0) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift index f1c11575dd..61a1f0ecaf 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift @@ -39,10 +39,16 @@ public final class VoiceChatOverlayController: ViewController { return } - if self.isButtonHidden == hidden || (!slide && self.isSlidOffscreen) { + if self.isButtonHidden == hidden { return } self.isButtonHidden = hidden + + var slide = slide + if self.isSlidOffscreen && !hidden { + slide = true + } + self.isSlidOffscreen = hidden && slide guard actionButton.supernode === self else { @@ -382,8 +388,11 @@ public final class VoiceChatOverlayController: ViewController { var hidden = true var animated = true if controllers.count == 1 || controllers.last is ChatController { - if let chatController = controllers.last as? ChatController, chatController.isSendButtonVisible { + if let chatController = controllers.last as? ChatController { slide = false + if !chatController.isSendButtonVisible { + hidden = false + } } else { hidden = false } From 92895e8908e585a2492d9c59f0afe603f65fce74 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 15 Dec 2020 02:48:14 +0400 Subject: [PATCH 16/23] Voice Chat UI fixes --- .../Sources/VoiceChatActionButton.swift | 11 ++++++++++- .../TelegramCallsUI/Sources/VoiceChatController.swift | 4 ++++ .../Sources/VoiceChatOverlayController.swift | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift b/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift index 69a04531cc..4e2828b520 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatActionButton.swift @@ -64,6 +64,14 @@ final class VoiceChatActionButton: HighlightTrackingButtonNode { var isDisabled: Bool = false + var ignoreHierarchyChanges: Bool { + get { + return self.backgroundNode.ignoreHierarchyChanges + } set { + self.backgroundNode.ignoreHierarchyChanges = newValue + } + } + var wasActiveWhenPressed = false var pressing: Bool = false { didSet { @@ -439,6 +447,7 @@ private final class VoiceChatActionButtonBackgroundNode: ASDisplayNode { private let hierarchyTrackingNode: HierarchyTrackingNode private var isCurrentlyInHierarchy = false + var ignoreHierarchyChanges = false override init() { self.state = .connecting @@ -500,7 +509,7 @@ private final class VoiceChatActionButtonBackgroundNode: ASDisplayNode { self.maskCircleLayer.isHidden = true updateInHierarchy = { [weak self] value in - if let strongSelf = self { + if let strongSelf = self, !strongSelf.ignoreHierarchyChanges { strongSelf.isCurrentlyInHierarchy = value strongSelf.updateAnimations() } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index fd3df49c2f..ed01e5bc55 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -1778,6 +1778,7 @@ public final class VoiceChatController: ViewController { self.contentContainer.view.bounds = initialBounds }, completion: { _ in if self.actionButton.supernode !== self.bottomPanelNode { + self.actionButton.ignoreHierarchyChanges = true self.audioOutputNode.isHidden = false self.leaveNode.isHidden = false self.audioOutputNode.layer.removeAllAnimations() @@ -1786,6 +1787,7 @@ public final class VoiceChatController: ViewController { self.bottomPanelNode.addSubnode(self.leaveNode) self.bottomPanelNode.addSubnode(self.actionButton) self.containerLayoutUpdated(layout, navigationHeight :navigationHeight, transition: .immediate) + self.actionButton.ignoreHierarchyChanges = false } self.controller?.currentOverlayController?.dismiss() @@ -2366,6 +2368,7 @@ public final class VoiceChatController: ViewController { if let strongSelf = self { overlayController?.animateOut(reclaim: true, completion: { [weak self] immediate in if let strongSelf = self, immediate { + strongSelf.controllerNode.actionButton.ignoreHierarchyChanges = true strongSelf.controllerNode.bottomPanelNode.addSubnode(strongSelf.controllerNode.actionButton) strongSelf.controllerNode.bottomPanelNode.addSubnode(strongSelf.controllerNode.audioOutputNode) strongSelf.controllerNode.bottomPanelNode.addSubnode(strongSelf.controllerNode.leaveNode) @@ -2373,6 +2376,7 @@ public final class VoiceChatController: ViewController { if immediate, let layout = strongSelf.validLayout { strongSelf.containerLayoutUpdated(layout, transition: .immediate) } + strongSelf.controllerNode.actionButton.ignoreHierarchyChanges = false } }) strongSelf.reclaimActionButton = nil diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift index 61a1f0ecaf..2c3c6f8679 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatOverlayController.swift @@ -294,8 +294,10 @@ public final class VoiceChatOverlayController: ViewController { if actionButton.supernode !== self && !self.didAnimateIn { self.didAnimateIn = true + actionButton.ignoreHierarchyChanges = true self.addSubnode(actionButton) self.animateIn(from: convertedRect) + actionButton.ignoreHierarchyChanges = false } } } From 924be77a8772b4ae01a6f5078ea0e98658847b38 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 15 Dec 2020 04:54:31 +0400 Subject: [PATCH 17/23] Fix camera UI on new iPhones --- .../Sources/TGCameraMainPhoneView.m | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/submodules/LegacyComponents/Sources/TGCameraMainPhoneView.m b/submodules/LegacyComponents/Sources/TGCameraMainPhoneView.m index 5f0233b629..a8cdfcb45a 100644 --- a/submodules/LegacyComponents/Sources/TGCameraMainPhoneView.m +++ b/submodules/LegacyComponents/Sources/TGCameraMainPhoneView.m @@ -110,7 +110,18 @@ CGFloat shutterButtonWidth = 66.0f; CGSize screenSize = TGScreenSize(); CGFloat widescreenWidth = MAX(screenSize.width, screenSize.height); - if (widescreenWidth == 896.0f) + if (widescreenWidth == 926.0f) + { + _topPanelOffset = 77.0f; + _topPanelHeight = 77.0f; + _bottomPanelOffset = 94.0f; + _bottomPanelHeight = 155.0f; + _modeControlOffset = 6.0f; + _modeControlHeight = 66.0f; + _counterOffset = 7.0f; + shutterButtonWidth = 72.0f; + } + else if (widescreenWidth == 896.0f) { _topPanelOffset = 33.0f; _topPanelHeight = 44.0f; @@ -121,6 +132,17 @@ _counterOffset = 7.0f; shutterButtonWidth = 72.0f; } + if (widescreenWidth == 844.0f) + { + _topPanelOffset = 33.0f; + _topPanelHeight = 44.0f; + _bottomPanelOffset = 63.0f; + _bottomPanelHeight = 123.0f; + _modeControlOffset = 3.0f; + _modeControlHeight = 40.0f; + _counterOffset = 7.0f; + shutterButtonWidth = 70.0f; + } else if (widescreenWidth == 812.0f) { _topPanelOffset = 33.0f; From d91ec1bac796d66a3e1d7451225ffb55d7007bfc Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 15 Dec 2020 07:03:26 +0400 Subject: [PATCH 18/23] Various UI fixes --- .../Sources/GalleryController.swift | 5 +++-- .../GalleryUI/Sources/GalleryController.swift | 15 +++++++++++-- .../TGMediaPickerGalleryInterfaceView.h | 1 + .../TGMediaPickerGalleryModel.h | 1 + .../LegacyComponents/TGPhotoVideoEditor.h | 2 +- .../TGMediaPickerGalleryInterfaceView.m | 16 ++++++++++++++ .../Sources/TGMediaPickerGalleryModel.m | 14 +++++++++++++ .../Sources/TGPhotoVideoEditor.m | 16 +++++++++++--- .../Sources/LegacyAttachmentMenu.swift | 21 +++++++------------ .../TelegramUI/Sources/ChatController.swift | 8 ++++--- 10 files changed, 74 insertions(+), 25 deletions(-) diff --git a/submodules/AccountContext/Sources/GalleryController.swift b/submodules/AccountContext/Sources/GalleryController.swift index 5ac13919b4..376252b271 100644 --- a/submodules/AccountContext/Sources/GalleryController.swift +++ b/submodules/AccountContext/Sources/GalleryController.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import Postbox import SwiftSignalKit import TelegramCore @@ -18,9 +19,9 @@ public final class GalleryControllerActionInteraction { public let openBotCommand: (String) -> Void public let addContact: (String) -> Void public let storeMediaPlaybackState: (MessageId, Double?) -> Void - public let editMedia: (MessageId) -> Void + public let editMedia: (MessageId, [UIView], @escaping () -> Void) -> Void - public init(openUrl: @escaping (String, Bool) -> Void, openUrlIn: @escaping (String) -> Void, openPeerMention: @escaping (String) -> Void, openPeer: @escaping (PeerId) -> Void, openHashtag: @escaping (String?, String) -> Void, openBotCommand: @escaping (String) -> Void, addContact: @escaping (String) -> Void, storeMediaPlaybackState: @escaping (MessageId, Double?) -> Void, editMedia: @escaping (MessageId) -> Void) { + public init(openUrl: @escaping (String, Bool) -> Void, openUrlIn: @escaping (String) -> Void, openPeerMention: @escaping (String) -> Void, openPeer: @escaping (PeerId) -> Void, openHashtag: @escaping (String?, String) -> Void, openBotCommand: @escaping (String) -> Void, addContact: @escaping (String) -> Void, storeMediaPlaybackState: @escaping (MessageId, Double?) -> Void, editMedia: @escaping (MessageId, [UIView], @escaping () -> Void) -> Void) { self.openUrl = openUrl self.openUrlIn = openUrlIn self.openPeerMention = openPeerMention diff --git a/submodules/GalleryUI/Sources/GalleryController.swift b/submodules/GalleryUI/Sources/GalleryController.swift index d58550f98f..dab45a332d 100644 --- a/submodules/GalleryUI/Sources/GalleryController.swift +++ b/submodules/GalleryUI/Sources/GalleryController.swift @@ -913,8 +913,19 @@ public class GalleryController: ViewController, StandalonePresentableController } }, editMedia: { [weak self] messageId in if let strongSelf = self { - strongSelf.dismiss(forceAway: true) - strongSelf.actionInteraction?.editMedia(messageId) + var snapshots: [UIView] = [] + if let navigationBar = strongSelf.navigationBar, let snapshotView = navigationBar.view.snapshotContentTree() { + snapshotView.frame = navigationBar.frame + snapshots.append(snapshotView) + } + if let snapshotView = strongSelf.galleryNode.footerNode.view.snapshotContentTree() { + snapshotView.frame = strongSelf.galleryNode.footerNode.frame + snapshots.append(snapshotView) + } + + strongSelf.actionInteraction?.editMedia(messageId, snapshots, { [weak self] in + self?.dismiss(forceAway: true) + }) } }) self.displayNode = GalleryControllerNode(controllerInteraction: controllerInteraction) diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaPickerGalleryInterfaceView.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaPickerGalleryInterfaceView.h index 062b5e8e0e..8c9bd087fe 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaPickerGalleryInterfaceView.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaPickerGalleryInterfaceView.h @@ -51,6 +51,7 @@ - (void)setAllInterfaceHidden:(bool)hidden delay:(NSTimeInterval)__unused delay animated:(bool)animated; - (void)setToolbarsHidden:(bool)hidden animated:(bool)animated; +- (void)immediateEditorTransitionIn; - (void)editorTransitionIn; - (void)editorTransitionOut; diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaPickerGalleryModel.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaPickerGalleryModel.h index af5300772c..b127c421e4 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaPickerGalleryModel.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaPickerGalleryModel.h @@ -51,5 +51,6 @@ - (instancetype)initWithContext:(id)context items:(NSArray *)items focusItem:(id)focusItem selectionContext:(TGMediaSelectionContext *)selectionContext editingContext:(TGMediaEditingContext *)editingContext hasCaptions:(bool)hasCaptions allowCaptionEntities:(bool)allowCaptionEntities hasTimer:(bool)hasTimer onlyCrop:(bool)onlyCrop inhibitDocumentCaptions:(bool)inhibitDocumentCaptions hasSelectionPanel:(bool)hasSelectionPanel hasCamera:(bool)hasCamera recipientName:(NSString *)recipientName; - (void)presentPhotoEditorForItem:(id)item tab:(TGPhotoEditorTab)tab; +- (void)presentPhotoEditorForItem:(id)item tab:(TGPhotoEditorTab)tab snapshots:(NSArray *)snapshots; @end diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGPhotoVideoEditor.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGPhotoVideoEditor.h index 7667dcf382..5db73d5a2b 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGPhotoVideoEditor.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGPhotoVideoEditor.h @@ -4,6 +4,6 @@ + (void)presentWithContext:(id)context parentController:(TGViewController *)parentController image:(UIImage *)image video:(NSURL *)video didFinishWithImage:(void (^)(UIImage *image))didFinishWithImage didFinishWithVideo:(void (^)(UIImage *image, NSURL *url, TGVideoEditAdjustments *adjustments))didFinishWithVideo dismissed:(void (^)(void))dismissed; -+ (void)presentWithContext:(id)context controller:(TGViewController *)controller caption:(NSString *)caption entities:(NSArray *)entities withItem:(id)item paint:(bool)paint recipientName:(NSString *)recipientName stickersContext:(id)stickersContext completion:(void (^)(id, TGMediaEditingContext *))completion dismissed:(void (^)())dismissed; ++ (void)presentWithContext:(id)context controller:(TGViewController *)controller caption:(NSString *)caption entities:(NSArray *)entities withItem:(id)item paint:(bool)paint recipientName:(NSString *)recipientName stickersContext:(id)stickersContext snapshots:(NSArray *)snapshots immediate:(bool)immediate appeared:(void (^)(void))appeared completion:(void (^)(id, TGMediaEditingContext *))completion dismissed:(void (^)())dismissed; @end diff --git a/submodules/LegacyComponents/Sources/TGMediaPickerGalleryInterfaceView.m b/submodules/LegacyComponents/Sources/TGMediaPickerGalleryInterfaceView.m index 1b210ffa7d..da2484ce0f 100644 --- a/submodules/LegacyComponents/Sources/TGMediaPickerGalleryInterfaceView.m +++ b/submodules/LegacyComponents/Sources/TGMediaPickerGalleryInterfaceView.m @@ -1307,6 +1307,22 @@ } } +- (void)immediateEditorTransitionIn { + [self setSelectionInterfaceHidden:true animated:false]; + _captionMixin.inputPanel.alpha = 0.0f; + _portraitToolbarView.doneButton.alpha = 0.0f; + _landscapeToolbarView.doneButton.alpha = 0.0f; + + _portraitToolbarView.hidden = true; + _landscapeToolbarView.hidden = true; + + TGDispatchAfter(0.5, dispatch_get_main_queue(), ^ + { + _portraitToolbarView.hidden = false; + _landscapeToolbarView.hidden = false; + }); +} + - (void)editorTransitionIn { [self setSelectionInterfaceHidden:true animated:true]; diff --git a/submodules/LegacyComponents/Sources/TGMediaPickerGalleryModel.m b/submodules/LegacyComponents/Sources/TGMediaPickerGalleryModel.m index 159db145a1..8da4a30f77 100644 --- a/submodules/LegacyComponents/Sources/TGMediaPickerGalleryModel.m +++ b/submodules/LegacyComponents/Sources/TGMediaPickerGalleryModel.m @@ -344,6 +344,11 @@ } - (void)presentPhotoEditorForItem:(id)item tab:(TGPhotoEditorTab)tab +{ + [self presentPhotoEditorForItem:item tab:tab snapshots:@[]]; +} + +- (void)presentPhotoEditorForItem:(id)item tab:(TGPhotoEditorTab)tab snapshots:(NSArray *)snapshots { __weak TGMediaPickerGalleryModel *weakSelf = self; @@ -604,6 +609,15 @@ [self.controller addChildViewController:controller]; [self.controller.view addSubview:controller.view]; + + for (UIView *view in snapshots) { + [self.controller.view addSubview:view]; + [UIView animateWithDuration:0.3 animations:^{ + view.alpha = 0.0; + } completion:^(__unused BOOL finished) { + [view removeFromSuperview]; + }]; + } } - (void)_replaceItems:(NSArray *)items focusingOnItem:(id)item diff --git a/submodules/LegacyComponents/Sources/TGPhotoVideoEditor.m b/submodules/LegacyComponents/Sources/TGPhotoVideoEditor.m index 022a16f725..09a5887a24 100644 --- a/submodules/LegacyComponents/Sources/TGPhotoVideoEditor.m +++ b/submodules/LegacyComponents/Sources/TGPhotoVideoEditor.m @@ -102,7 +102,7 @@ } } -+ (void)presentWithContext:(id)context controller:(TGViewController *)controller caption:(NSString *)caption entities:(NSArray *)entities withItem:(id)item paint:(bool)paint recipientName:(NSString *)recipientName stickersContext:(id)stickersContext completion:(void (^)(id, TGMediaEditingContext *))completion dismissed:(void (^)())dismissed ++ (void)presentWithContext:(id)context controller:(TGViewController *)controller caption:(NSString *)caption entities:(NSArray *)entities withItem:(id)item paint:(bool)paint recipientName:(NSString *)recipientName stickersContext:(id)stickersContext snapshots:(NSArray *)snapshots immediate:(bool)immediate appeared:(void (^)(void))appeared completion:(void (^)(id, TGMediaEditingContext *))completion dismissed:(void (^)())dismissed { id windowManager = [context makeOverlayWindowManager]; id windowContext = [windowManager context]; @@ -112,6 +112,10 @@ TGModernGalleryController *galleryController = [[TGModernGalleryController alloc] initWithContext:windowContext]; galleryController.adjustsStatusBarVisibility = true; + galleryController.animateTransition = !immediate; + galleryController.finishedTransitionIn = ^(id item, TGModernGalleryItemView *itemView) { + appeared(); + }; //galleryController.hasFadeOutTransition = true; id galleryItem = nil; @@ -199,14 +203,20 @@ dismissed(); } }; - + + [model.interfaceView immediateEditorTransitionIn]; + + for (UIView *view in snapshots) { + [galleryController.view addSubview:view]; + } + TGOverlayControllerWindow *controllerWindow = [[TGOverlayControllerWindow alloc] initWithManager:windowManager parentController:controller contentController:galleryController]; controllerWindow.hidden = false; galleryController.view.clipsToBounds = true; if (paint) { TGDispatchAfter(0.05, dispatch_get_main_queue(), ^{ - [model presentPhotoEditorForItem:galleryItem tab:TGPhotoEditorPaintTab]; + [model presentPhotoEditorForItem:galleryItem tab:TGPhotoEditorPaintTab snapshots:snapshots]; }); } } diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift index 67603bbb04..422ce445e1 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift @@ -59,7 +59,7 @@ public enum LegacyAttachmentMenuMediaEditing { case file } -public func legacyMediaEditor(context: AccountContext, peer: Peer, media: AnyMediaReference, initialCaption: String, presentStickers: @escaping (@escaping (TelegramMediaFile, Bool, UIView, CGRect) -> Void) -> TGPhotoPaintStickersScreen?, sendMessagesWithSignals: @escaping ([Any]?, Bool, Int32) -> Void, present: @escaping (ViewController, Any?) -> Void) { +public func legacyMediaEditor(context: AccountContext, peer: Peer, media: AnyMediaReference, initialCaption: String, snapshots: [UIView], transitionCompletion: (() -> Void)?, presentStickers: @escaping (@escaping (TelegramMediaFile, Bool, UIView, CGRect) -> Void) -> TGPhotoPaintStickersScreen?, sendMessagesWithSignals: @escaping ([Any]?, Bool, Int32) -> Void, present: @escaping (ViewController, Any?) -> Void) { let _ = (fetchMediaData(context: context, postbox: context.account.postbox, mediaReference: media) |> deliverOnMainQueue).start(next: { (value, isImage) in guard case let .data(data) = value, data.complete else { @@ -103,8 +103,9 @@ public func legacyMediaEditor(context: AccountContext, peer: Peer, media: AnyMed present(legacyController, nil) - TGPhotoVideoEditor.present(with: legacyController.context, controller: emptyController, caption: initialCaption, entities: [], withItem: item, paint: true, recipientName: recipientName, stickersContext: paintStickersContext, completion: { result, editingContext in - let intent: TGMediaAssetsControllerIntent = TGMediaAssetsControllerSendMediaIntent + TGPhotoVideoEditor.present(with: legacyController.context, controller: emptyController, caption: initialCaption, entities: [], withItem: item, paint: true, recipientName: recipientName, stickersContext: paintStickersContext, snapshots: snapshots as? [Any], immediate: transitionCompletion != nil, appeared: { + transitionCompletion?() + }, completion: { result, editingContext in let signals = TGCameraController.resultSignals(for: nil, editingContext: editingContext, currentItem: result as! TGMediaSelectableItem, storeAssets: false, saveEditedPhotos: false, descriptionGenerator: legacyAssetPickerItemGenerator()) sendMessagesWithSignals(signals, false, 0) }, dismissed: { [weak legacyController] in @@ -294,16 +295,8 @@ public func legacyAttachmentMenu(context: AccountContext, peer: Peer, chatLocati navigationController.setNavigationBarHidden(true, animated: false) legacyController.bind(controller: navigationController) - var hasTimer = false - var hasSilentPosting = false - if peer.id != context.account.peerId { - if peer is TelegramUser { - hasTimer = true - } - hasSilentPosting = true - } let recipientName = peer.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder) - + legacyController.enableSizeClassSignal = true let presentationDisposable = context.sharedContext.presentationData.start(next: { [weak legacyController] presentationData in @@ -315,8 +308,8 @@ public func legacyAttachmentMenu(context: AccountContext, peer: Peer, chatLocati present(legacyController, nil) - TGPhotoVideoEditor.present(with: legacyController.context, controller: emptyController, caption: "", entities: [], withItem: item, paint: false, recipientName: recipientName, stickersContext: paintStickersContext, completion: { result, editingContext in - let intent: TGMediaAssetsControllerIntent = TGMediaAssetsControllerSendMediaIntent + TGPhotoVideoEditor.present(with: legacyController.context, controller: emptyController, caption: "", entities: [], withItem: item, paint: false, recipientName: recipientName, stickersContext: paintStickersContext, snapshots: [], immediate: false, appeared: { + }, completion: { result, editingContext in let signals = TGCameraController.resultSignals(for: nil, editingContext: editingContext, currentItem: result as! TGMediaSelectableItem, storeAssets: false, saveEditedPhotos: false, descriptionGenerator: legacyAssetPickerItemGenerator()) sendMessagesWithSignals(signals, false, 0) }, dismissed: { [weak legacyController] in diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index f939d0b11d..a03936c628 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -688,7 +688,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G storedState = MediaPlaybackStoredState(timestamp: timestamp, playbackRate: .x1) } let _ = updateMediaPlaybackStoredStateInteractively(postbox: strongSelf.context.account.postbox, messageId: messageId, state: storedState).start() - }, editMedia: { [weak self] messageId in + }, editMedia: { [weak self] messageId, snapshots, transitionCompletion in guard let strongSelf = self else { return } @@ -708,7 +708,9 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } if let mediaReference = mediaReference, let peer = message.peers[message.id.peerId] { - legacyMediaEditor(context: strongSelf.context, peer: peer, media: mediaReference, initialCaption: message.text, presentStickers: { [weak self] completion in + legacyMediaEditor(context: strongSelf.context, peer: peer, media: mediaReference, initialCaption: message.text, snapshots: snapshots, transitionCompletion: { + transitionCompletion() + }, presentStickers: { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) @@ -2377,7 +2379,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } if let mediaReference = mediaReference, let peer = message.peers[message.id.peerId] { - legacyMediaEditor(context: strongSelf.context, peer: peer, media: mediaReference, initialCaption: message.text, presentStickers: { [weak self] completion in + legacyMediaEditor(context: strongSelf.context, peer: peer, media: mediaReference, initialCaption: message.text, snapshots: [], transitionCompletion: nil, presentStickers: { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) From e9ac972ee475d22489d83c671bdaa4cd176be7fd Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 15 Dec 2020 08:03:50 +0400 Subject: [PATCH 19/23] Voice Chat UI fixes --- submodules/TelegramCallsUI/Sources/VoiceChatController.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift index ed01e5bc55..a66eed1ac5 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatController.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatController.swift @@ -1447,13 +1447,14 @@ public final class VoiceChatController: ViewController { } } } - + let listMaxY = listTopInset + listSize.height if bottomEdge.isZero { bottomEdge = listMaxY } + var bottomOffset: CGFloat = 0.0 - if bottomEdge < listMaxY { + if bottomEdge < listMaxY && (self.panGestureArguments != nil || self.isExpanded) { bottomOffset = bottomEdge - listMaxY } From 34e1924d8f1ea85eff2e2c95ac499dfb3e41be31 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 15 Dec 2020 09:17:03 +0400 Subject: [PATCH 20/23] Use immediate thumbnails on static stickers --- .../Sources/StickerResources.swift | 4 +++ .../Sources/ChatMessageStickerItemNode.swift | 33 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/submodules/StickerResources/Sources/StickerResources.swift b/submodules/StickerResources/Sources/StickerResources.swift index 1a6e7c31c4..b41cfecd44 100644 --- a/submodules/StickerResources/Sources/StickerResources.swift +++ b/submodules/StickerResources/Sources/StickerResources.swift @@ -402,6 +402,10 @@ public func chatMessageSticker(postbox: Postbox, file: TelegramMediaFile, small: return nil } + if file.immediateThumbnailData != nil && fullSizeData == nil { + return nil + } + let context = DrawingContext(size: arguments.drawingSize, scale: arguments.scale ?? 0.0, clear: arguments.emptyColor == nil) let drawingRect = arguments.drawingRect diff --git a/submodules/TelegramUI/Sources/ChatMessageStickerItemNode.swift b/submodules/TelegramUI/Sources/ChatMessageStickerItemNode.swift index aa3eb8bea8..a6080de5b2 100644 --- a/submodules/TelegramUI/Sources/ChatMessageStickerItemNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageStickerItemNode.swift @@ -58,6 +58,17 @@ class ChatMessageStickerItemNode: ChatMessageItemView { super.init(layerBacked: false) + var firstTime = true + self.imageNode.imageUpdated = { [weak self] image in + guard let strongSelf = self else { + return + } + if image != nil { + strongSelf.removePlaceholder(animated: !firstTime) + } + firstTime = false + } + self.containerNode.shouldBegin = { [weak self] location in guard let strongSelf = self else { return false @@ -215,6 +226,19 @@ class ChatMessageStickerItemNode: ChatMessageItemView { } } + private var absoluteRect: (CGRect, CGSize)? + override func updateAbsoluteRect(_ rect: CGRect, within containerSize: CGSize) { + self.absoluteRect = (rect, containerSize) + if !self.contextSourceNode.isExtractedToContextPreview { + var rect = rect + rect.origin.y = containerSize.height - rect.maxY + self.insets.top + + if let placeholderNode = self.placeholderNode { + placeholderNode.updateAbsoluteRect(CGRect(origin: CGPoint(x: rect.minX + placeholderNode.frame.minX, y: rect.minY + placeholderNode.frame.minY), size: placeholderNode.frame.size), within: containerSize) + } + } + } + override func asyncLayout() -> (_ item: ChatMessageItem, _ params: ListViewItemLayoutParams, _ mergedTop: ChatMessageMerge, _ mergedBottom: ChatMessageMerge, _ dateHeaderAtBottom: Bool) -> (ListViewItemNodeLayout, (ListViewItemUpdateAnimation, Bool) -> Void) { let displaySize = CGSize(width: 184.0, height: 184.0) let telegramFile = self.telegramFile @@ -578,6 +602,15 @@ class ChatMessageStickerItemNode: ChatMessageItemView { transition.updateFrame(node: strongSelf.imageNode, frame: updatedImageFrame) imageApply() + if let immediateThumbnailData = telegramFile?.immediateThumbnailData, let placeholderNode = strongSelf.placeholderNode { + let foregroundColor = bubbleVariableColor(variableColor: item.presentationData.theme.theme.chat.message.stickerPlaceholderColor, wallpaper: item.presentationData.theme.wallpaper) + let shimmeringColor = bubbleVariableColor(variableColor: item.presentationData.theme.theme.chat.message.stickerPlaceholderShimmerColor, wallpaper: item.presentationData.theme.wallpaper) + + let placeholderFrame = updatedImageFrame.insetBy(dx: innerImageInset, dy: innerImageInset) + placeholderNode.update(backgroundColor: nil, foregroundColor: foregroundColor, shimmeringColor: shimmeringColor, data: immediateThumbnailData, size: placeholderFrame.size) + placeholderNode.frame = placeholderFrame + } + strongSelf.containerNode.frame = CGRect(origin: CGPoint(), size: layoutSize) strongSelf.contextSourceNode.frame = CGRect(origin: CGPoint(), size: layoutSize) strongSelf.contextSourceNode.contentNode.frame = CGRect(origin: CGPoint(), size: layoutSize) From bf3674c3b1318a81946c3bb36fbe3d68a1c65c59 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 15 Dec 2020 15:13:18 +0400 Subject: [PATCH 21/23] Fix link opening from gallery --- submodules/TelegramUI/Sources/ChatController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index a03936c628..50b836c8f8 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -653,7 +653,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } }, actionInteraction: GalleryControllerActionInteraction(openUrl: { [weak self] url, concealed in if let strongSelf = self { - strongSelf.controllerInteraction?.openUrl(url, concealed, nil, nil) + strongSelf.openUrl(url, concealed: concealed, message: nil) } }, openUrlIn: { [weak self] url in if let strongSelf = self { From 7c9129a97e60756fe9f33327d62ffe300abe6502 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 15 Dec 2020 15:31:13 +0400 Subject: [PATCH 22/23] Fix link opening from gallery --- submodules/GalleryUI/BUILD | 1 + .../ChatItemGalleryFooterContentNode.swift | 17 +++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/submodules/GalleryUI/BUILD b/submodules/GalleryUI/BUILD index ad5f85f26d..06170f2d03 100644 --- a/submodules/GalleryUI/BUILD +++ b/submodules/GalleryUI/BUILD @@ -27,6 +27,7 @@ swift_library( "//submodules/StickerPackPreviewUI:StickerPackPreviewUI", "//submodules/OverlayStatusController:OverlayStatusController", "//submodules/PresentationDataUtils:PresentationDataUtils", + "//submodules/UrlEscaping:UrlEscaping", ], visibility = [ "//visibility:public", diff --git a/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift b/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift index 745b75decb..8e230946bf 100644 --- a/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift +++ b/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift @@ -18,6 +18,7 @@ import OpenInExternalAppUI import AppBundle import LocalizedPeerData import TextSelectionNode +import UrlEscaping private let deleteImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionTrash"), color: .white) private let actionImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionForward"), color: .white) @@ -331,13 +332,13 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll } return nil } - self.textNode.tapAttributeAction = { [weak self] attributes, _ in - if let strongSelf = self, let action = strongSelf.actionForAttributes(attributes) { + self.textNode.tapAttributeAction = { [weak self] attributes, index in + if let strongSelf = self, let action = strongSelf.actionForAttributes(attributes, index) { strongSelf.performAction?(action) } } - self.textNode.longTapAttributeAction = { [weak self] attributes, _ in - if let strongSelf = self, let action = strongSelf.actionForAttributes(attributes) { + self.textNode.longTapAttributeAction = { [weak self] attributes, index in + if let strongSelf = self, let action = strongSelf.actionForAttributes(attributes, index) { strongSelf.openActionOptions?(action) } } @@ -391,9 +392,13 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll self.scrollNode.view.showsVerticalScrollIndicator = false } - private func actionForAttributes(_ attributes: [NSAttributedString.Key: Any]) -> GalleryControllerInteractionTapAction? { + private func actionForAttributes(_ attributes: [NSAttributedString.Key: Any], _ index: Int) -> GalleryControllerInteractionTapAction? { if let url = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.URL)] as? String { - return .url(url: url, concealed: false) + var concealed = true + if let (attributeText, fullText) = self.textNode.attributeSubstring(name: TelegramTextAttributes.URL, index: index) { + concealed = !doesUrlMatchText(url: url, text: attributeText, fullText: fullText) + } + return .url(url: url, concealed: concealed) } else if let peerMention = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.PeerMention)] as? TelegramPeerMention { return .peerMention(peerMention.peerId, peerMention.mention) } else if let peerName = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.PeerTextMention)] as? String { From 6380dc977b6dbeaffd1a5053ba911d72bf84106a Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sat, 2 Jan 2021 15:56:00 +0400 Subject: [PATCH 23/23] Add holiday icons --- .../Sources/SpecialTabBarIcons.swift | 2 +- .../Sources/VoiceChatActionItem.swift | 2 +- .../Sources/VoiceChatParticipantItem.swift | 4 ++-- .../Tabs/Holiday/IconCalls.imageset/Calls@2x.png | Bin 0 -> 1887 bytes .../Tabs/Holiday/IconCalls.imageset/Calls@3x.png | Bin 0 -> 2875 bytes .../Holiday/IconCalls.imageset/Contents.json | 13 ++++++++++++- .../Holiday/IconChats.imageset/Contents.json | 13 ++++++++++++- .../Holiday/IconChats.imageset/Messages@2x.png | Bin 0 -> 2661 bytes .../Holiday/IconChats.imageset/Messages@3x.png | Bin 0 -> 4107 bytes .../IconContacts.imageset/Contacts@2x.png | Bin 0 -> 2073 bytes .../IconContacts.imageset/Contacts@3x.png | Bin 0 -> 3350 bytes .../Holiday/IconContacts.imageset/Contents.json | 13 ++++++++++++- .../Holiday/IconSettings.imageset/Contents.json | 13 ++++++++++++- .../IconSettings.imageset/Settings@2x.png | Bin 0 -> 2231 bytes .../IconSettings.imageset/Settings@3x.png | Bin 0 -> 3452 bytes .../TelegramUI/Sources/ChatController.swift | 2 +- 16 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconCalls.imageset/Calls@2x.png create mode 100644 submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconCalls.imageset/Calls@3x.png create mode 100644 submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconChats.imageset/Messages@2x.png create mode 100644 submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconChats.imageset/Messages@3x.png create mode 100644 submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconContacts.imageset/Contacts@2x.png create mode 100644 submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconContacts.imageset/Contacts@3x.png create mode 100644 submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconSettings.imageset/Settings@2x.png create mode 100644 submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconSettings.imageset/Settings@3x.png diff --git a/submodules/PresentationDataUtils/Sources/SpecialTabBarIcons.swift b/submodules/PresentationDataUtils/Sources/SpecialTabBarIcons.swift index 0fa053ebd0..795da5bc1e 100644 --- a/submodules/PresentationDataUtils/Sources/SpecialTabBarIcons.swift +++ b/submodules/PresentationDataUtils/Sources/SpecialTabBarIcons.swift @@ -1,5 +1,5 @@ import Foundation public func useSpecialTabBarIcons() -> Bool { - return (Date(timeIntervalSince1970: 1581638400)...Date(timeIntervalSince1970: 1581724799)).contains(Date()) + return (Date(timeIntervalSince1970: 1608800400)...Date(timeIntervalSince1970: 1609545600)).contains(Date()) } diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatActionItem.swift b/submodules/TelegramCallsUI/Sources/VoiceChatActionItem.swift index 5519f41c0e..e7384f0e41 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatActionItem.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatActionItem.swift @@ -149,7 +149,7 @@ class VoiceChatActionItemNode: ListViewItemNode { updatedTheme = item.presentationData.theme } - let titleFont = Font.regular(item.presentationData.fontSize.itemListBaseFontSize) + let titleFont = Font.regular(17.0) var leftInset: CGFloat = 16.0 + params.leftInset if case .generic = item.icon { diff --git a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift index 2fe5f9e7d8..9ddd978bdb 100644 --- a/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift +++ b/submodules/TelegramCallsUI/Sources/VoiceChatParticipantItem.swift @@ -297,8 +297,8 @@ class VoiceChatParticipantItemNode: ItemListRevealOptionsItemNode { let statusFontSize: CGFloat = floor(item.presentationData.fontSize.itemListBaseFontSize * 14.0 / 17.0) - let titleFont = Font.regular(item.presentationData.fontSize.itemListBaseFontSize) - let statusFont = Font.regular(statusFontSize) + let titleFont = Font.regular(17.0) + let statusFont = Font.regular(14.0) var titleAttributedString: NSAttributedString? var statusAttributedString: NSAttributedString? diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconCalls.imageset/Calls@2x.png b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconCalls.imageset/Calls@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d12d7e27b695169eec983a3ab5104d07bfcc012 GIT binary patch literal 1887 zcmV-l2cYPx+8A(JzRCodHnr~>8RT#i`x4FAURNFokD^!w(76?hA5P_7i5yc>s{Z-8Tun7E8 z_Cak;Kjfz($q(kB_LoEu3O2A1B5^2+h?y2OqDJ*)t%j^^?%wr#Ztodq@4tJ_d*8b| z>ArCGob&vDp7WeP?|WBLQhbUTC}yCTfno;!zZpp6EA-*v;pD``M13NW*no{E)9LgR zz-q=10v}jdSja%f{uKDX=}&KO_B?}a5HnX!N;|x{taZ5|f*V&kbo;3me{r&6Nz)r!t#YEu>;u&Ql z-P_jICe;!6gs$1%-rl#E@oPxmYr#vvTf}#XAuxIfffc~acQW%Ig$ds)G%DeBD&d5m zzrG0|`0ZqGn3mHq#(G4>!Wf3H(7#ImHqOZLHA#Q6uC8uUoEje=m-|6A-D;9vL%$yS z(~LLKUrXQDPmwiw(2=4wl7w?^{&F`$#uz+CiyS=0J}1x{mxjL zdcIJdvuDpfG(A1NnZ$JB(@P3(1D#loA>&DaC$oKheJ>#3VYD#V-Otg87!QfS1t|o8JPo+W^R3S*5fMhskap=79LUMEGy1=!Ga2loA9^CST2n}Hg_ z3D;Qv`c9tV#^HzEV!7ZP8*({|@_1tNB!DdSMA6K#C)edA&%nUI+9e2Wz+IzG4fVdl zDd?xe&z9m3gMP7j642V(dJ4w#VTycc7iwy1Jc;A%-sZ!bK~V)KC2(od590IF;n=zm zB;$vdm?Sng&65BaWru0ANWv%|C|-7dv0>)c5!icfgK7+|f#80XCVho>L(w6+biCLS zo8U%ud{EzsMPl;oo}P=4Qi9JB0LOd16ZdpT}0u&(9AK_|{lF3s6ELE|!;+&G&mWa0{U8U!@M2qh5MRRh!f25yfX_?^ak>i!B5!mOI5Rgc&dFUs zj>9lV!)W-D!j~>y!;gmX`O!QtLw-yOC%Zg9e#oU|4+a&w;Lw?fBTUR1?g#s9P6?|7 z%+1ZcDZ$4PF;2@(aG&UsejGZ{v4>;$2cUfYF?x)bfE;so@7}$Q)})bUm?+I}DD~Z| zR;`+*ay|gH(@^#^W^zCFs#qGIkf3J`<%De(d-bNrr12)m(X$)n#=(mxJa2Fd8>1xu zAQ3X#=?pgfPg;0IMr1`tIJ<|MbbR#?{1CusD$%eZhnfq7*A38k70QuFX z%*F{oVU4L$#fKxZcE<=rp%gsKi;ccf9pfw)ntFTOiA-j{K!=jCfwiX0HcP-%rwN~$ zd7ak}r_=M&FH{2Z5=<1Og-U>|dH3UobMwSLw%G%$jmtfNHM|Qr1AHF^>K@STta(-T znN3hLkhurQCW!2(&R(LCk-J{kot4jNa0ibg6S=vQOKvz(BijeZ4QPM?aliWw+opqPPT28tOdX5ik) Zz`yZdD#Qg+uzUKSMN{52vEsXC7^;?< z)-pNLqBznxTXveep?W&EaiY4Nx4N1~RNgo}`SXk5ITDm5&2OLx{@~$)?#+TFh#JLzwNnmc z?u-gfFnB%p$*9|`NU$D|@E2odVL87!sS?_G%Ky?qJDfheIP>r+6gs$MpTaX!E!F4r%bL z=t*jQ&9HS;PJhKcZ-W$0JD9?zF`mrCg}Ah|Bu~$!Q<*Mt1n#0#qyHECA_sYZpLuw3)m|Y z#e=qSZEQ`YD3q`t-bC(g;C1c+$j#pN@%U}%v0-4YTA*5!P>HG7Vs-zYXnk}urOi_n z=?k2Vg)8Eu1oyS>`|!niex7IB6eb^&w)D9B3x`#x$Pigbxb3EC0)wr7RjNc}bwr`i zB4WrPGOK2q!W!96G0l_H1ss-oaJMjvXg-8PfRzmm#T0JU&%u8#aD2Q2)-m;K@DSal zn-5liOvGWc?@F%xSVs|&D#SdPN-93V~C1&o<+n(}AU)w-s*$xW+zGo?=g1*6jwE39PiG{vmq zCh8FSH34QH$kI{bPB|0hhm58omLR{+ZFA2=t%SNuqmF7;D}5()KQ`t8e|k!%iicxL zWdREs9hF<=aQGodovHC#s|{&{85RXo8k~@qk=gd0zTHBLH5I7_*_e!Snia+;3U4#+ zx<|Pl>(wQ%bG*92lr}(BoQ595K%-n!<81>~W&YdB{q*Gi=9F%BbF5$YH#1-rU`*6QXd%VnRF=fLx@T10l=Sw>S%TgY3!I!2qK<{+V=nM-kebN4D<)>DQFtgv3WWLIrJnK{l1fnjfY$Td)Xw7X;S5p!t=6J?R*cy*nMm;smwyUW;-y*@-x;vkALQ=IoIjPPwQI?fDS;yZoo zdGE(5clEBt#l^NCWd^t*|2Y7M4m>|hL^n5E3ihwgm!z%LTOGC5tHr+gvQB8@xl+%! zTAYAI>tW7cs14e{NRZWlaFcB6 zw;;)VYQS>;gvH0j7YnWQK_If)2VlllF*vqO*X?qHggR^NXp zp`_spH_7)I7{BozO@NPPWC0Sn_sgr7xddhs*5@|TI$!Y?3z#aEpdMweX{4_M>V=e2 z&%a&>*bDkI$t=W6t0YZptA@1^`wh4VFhQu$`4EUkmnAtVR~fX)H7!UhaZGDCu9M=D zEdLbt@rf;?aN})cd5vmsdt!hN_l_M)<>4^6&@>?{3nD~TC0`Q6ELs9bKWb)0x)yHQ z>Q_^6ZF3YzWK+uguA9WO-ylj)c-zF+^aul0+P%*#^@xVzt@tz1F@MNhw!2f%cSec> zm4lEwhI1_kl107#Sc&~?$fui$lL~(G>qNUnMgZ+g#Hy5gfd1}=ydy9vu%uV=NOIwv zH$fm23+5ufD5PXaCdKZzKR$%F6P0#20Mh4k`M77N!PKD#|9&|5B}_37O7b~zu)7-V z9=w>gO}P9UUH5m>i4t5Kq~D-Z>GEsPTX~uIhc`ilm^PcvoAm#o3cjMewVV=Inqb%c Q_YDKO4`Et08aAQ-0m&MHKmY&$ literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconCalls.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconCalls.imageset/Contents.json index 6fe332016d..802b6afe81 100644 --- a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconCalls.imageset/Contents.json +++ b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconCalls.imageset/Contents.json @@ -1,7 +1,18 @@ { "images" : [ { - "idiom" : "universal" + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Calls@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Calls@3x.png", + "idiom" : "universal", + "scale" : "3x" } ], "info" : { diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconChats.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconChats.imageset/Contents.json index 6fe332016d..b0d2ce266b 100644 --- a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconChats.imageset/Contents.json +++ b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconChats.imageset/Contents.json @@ -1,7 +1,18 @@ { "images" : [ { - "idiom" : "universal" + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Messages@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Messages@3x.png", + "idiom" : "universal", + "scale" : "3x" } ], "info" : { diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconChats.imageset/Messages@2x.png b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconChats.imageset/Messages@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ffa49c3ae1b516b7dccb3fa84cc3d1ebd26001c9 GIT binary patch literal 2661 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 JPDHLkV1gD7-!uRK literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconContacts.imageset/Contacts@2x.png b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconContacts.imageset/Contacts@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..115d8526c5045d8b7c76cc0fe88d318236aa06b4 GIT binary patch literal 2073 zcmV+!2RP)Px+(@8`@RCodHT5V`nRUF^57uR4IQj5w3$&w;_6-Hv2Sx(TjjACwWIxJZc1Xk9k zz8Lkv?1esMBPsW0PQ$lSN^>}~1f^mn7!?avR?HHj*yi5){VwNR?sIou?!C`>_7FZ7 zF6W&8`~P=d?|Ghrg8Y+5Adf&Efjj~iF9NBlOnuw7ZMUaVsg)BG6AMtzgzu|`|FfX| z3feK0dzzY>zMiVMrUZcY_V!1{$H!kra@R*m3_yHeSXlUCV`Jm4DDs)eWEFtc*49}_ zx)TA;OBmz{fbr;>HEa43>RZ*a1^|*@2=5;PfXl2=7z6;opI|=>5RMwe60@=b0Fy`J zhY(ds;>gk!M*u`kHb8I=0EazdKbdLIr{`Z#AVxy9>*-J!c9dxwiFdkAo-xrTZD$%^ zSl=lCT4F!IP1T+!e5iPdXifp(R%eLfU{O)gHGCm+P$6gIdny(m3bSUCvo(N+ z9Ju;Q=Z=YEU;l-C^kU`M*jRs1*2WLYqCVHvVaeGDz#_FW6lB(#E`1fdiV_Rd0+TKD zcnf;InKG=0Wo`VRyvd~00D5I60yFtr8Xoo`VH@8Ur!T*eVa3@LKpgVJCc}^- zsXO!K5`dyep}P@s=F1rX82*1*avR6cfaHEmH=W)B ze*=!ObFtms2F~epuGczE9=11br_U?+KFQ|G7mQGG1^{~HgvFn?LgFm&ZCP1aHIi71 zcZ+z}l13hFfM#4xA@ZfgS7f&JAcVwHZEbDqVDWLhbI>lwWyO=LSFe7DUclRc)7fU$ zO%IY91b-Dq!G4n*KBiWHzXN{COmgJG<^$3m^xlNddeHs>iz93+Vtm&Irf~!yxvTIV zhT#^xci=6jW0cETipMzgr4V$O&|aJv+i)JZS<+?M+1Ysud6W^dlBF$+i;I7dOz7Ot zI?8gqjJ1WaGY2W7Dz)bT7+}x0qr6w8C~4sTE$gm{#{F_Hip^}Ppi zd?xF`k~uJ!AT3ze0stY-dF4}DTDn6rF#l_0JqP7t=@S6>F-cmW)aGIWU{1h*UxlOd zwY9aslhEDWeF@stK68pI=v{vVpi@*^tBgpQ3z;SWq;j^(NZ8G=MMG$xR2jC>aOi2~{QzIqZSpEUMqiJlqkf~TD@tW9lrsUaRbj{@ z4G#~ml02LVc>9~H$6t)m5q?aHV6?et0T73XBMM{Os{F+V^#W^5p(m}nP0T2u#mv!SVkj=ov zIY9e6K{kB{ZRZRC1QGdnfMCF`>&~XYfddChT?ePL=hBxG0B`_FojZ5#eOGVaP zF6VPkm)vNl2ca%e2F&U zxZawHy^N;-zUOx#kjHQq=e2jN2Ra|{jim%(=byday0i3DR8%aX{=mS%rzrgEEz(R60DlTS|F%gcDlZWL+qZAO_QHh=J#g~*v}w~e z)YsRar9*)58UT1Mg7Y)D)1Tka&~Toz9UUDr@MZS}syEnl0s0~Q7~%nko2hbK&TPaK zT!A>2Ada7H`eA;eDS+$f4jAH9c0GaMdSn zuXtBfNaQ=bHR!R2AUjNXB=s~dGJ-crVKZKvGL#K4U%)TNw}S2gig{mz5w`_Cs{=B! zIw>~E(3MF5P~O8KpoRFrIfYxHRj7M*(PMi60!PfIIIA{g0m7@$dkcwg#t$*xh`^cS z9?biru+Qr`)uW6}B`9erS&3R=p6x>b{0Uq8Ao!D5)avW%>VDD+Ss3t<+PQOQA(Kb1 zUy2_-c>J~f6>lE^d(dJ!jU9E*4l42YeIoz}v>Lm^dytE~w+9`t4iI_9@OmD}zY-yN z>R6{(*iY;!fZ@3njy?$+3bzq(g{!YN*t#=pKipn0fxQpNaa8P zbl0+F%e)0pB@>gz-}glz+9RU!O{bH2F4kl!Ee~##b&lc=BvA-w6_VevL0(k^3P6Yk~8GSLQRI53q00000NkvXXu0mjf DusYCd literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconContacts.imageset/Contacts@3x.png b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconContacts.imageset/Contacts@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..aaddd096eb73ef94220a1a89d73bbf3cbc5e4ae2 GIT binary patch literal 3350 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 literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconContacts.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconContacts.imageset/Contents.json index 6fe332016d..1cc3b663ca 100644 --- a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconContacts.imageset/Contents.json +++ b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconContacts.imageset/Contents.json @@ -1,7 +1,18 @@ { "images" : [ { - "idiom" : "universal" + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Contacts@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Contacts@3x.png", + "idiom" : "universal", + "scale" : "3x" } ], "info" : { diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconSettings.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconSettings.imageset/Contents.json index 6fe332016d..2ea1fc8abd 100644 --- a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconSettings.imageset/Contents.json +++ b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconSettings.imageset/Contents.json @@ -1,7 +1,18 @@ { "images" : [ { - "idiom" : "universal" + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Settings@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Settings@3x.png", + "idiom" : "universal", + "scale" : "3x" } ], "info" : { diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconSettings.imageset/Settings@2x.png b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconSettings.imageset/Settings@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c00ec0876d1bede15588dd5763b5dfd0314870e5 GIT binary patch literal 2231 zcmV;o2uSydP)Px-aY;l$RCodHn|p{=MI6W7m%Aiwk3R}+CDaUr9++EE8EV=eQMgGYuDdHq8B|nc z5*3wg3PF@be-v0`=<1pgw$kGtOQRynwX_G)L#5h`3QBh|*GId3zLz_fv&S=YX3o8v zMfbq$%>3TJ-@JZv&fO6s%1=20CR}KJDND5dC%pKjIROG2eoJyrH3C z&5Ri{j=5;la9g%)sqX3NX@l+ooS&FN{}{7yX$s8{bWi}+tXXpB4uRN1 zS=!RlvX*+#LY4?dPsQ4`Yg?$>DdQ7~jt35)XL?&(+xy3(k|99>VDxt)=7MBVPH1;^ zb@g5I=g`!pV6?XeR+^ri{*)X2FCLjcCQAcE-os){p?4nb8=r zy=HjxBY(Q-N9xn_I0Gv17(hVnZEHvX&Im9dPWoL0Fg?0>HPn<5T?`>;H0MeBH zC-ETx__YWRqib@jLrxSI<#DhiqP%Sl3BWIjs{DXA7&7hlw0}4KNd0>rXFvrW0|=BPk_U5Qg2(mGeI)6o6wRw%HrC5 z`Z#)kbarHe>USBi=0e-Sg_Gqr&)1OAZOwg*E_$O{nyww%#_Saz|OOlCQKsy6m4BA_p- z9e=C=AaXlci@AF>0=C!I)?Utgw<8h&POqk(qj^?TAaozne-a~x?Ufkvm!SKKs9xGX zq5F26+$1#pK2HovVPK}Nedbq8;=^;`t|E4 z5#@`)9j0vK&5!qVH8Qf)yeS%wb9yOS%k11XZ{ECJMoxEkcg?O{yHI>2|18Z~PBoH=v$i$1S>2F+fk+Xlf({h)U)GV2+HEoKllZrph4!Gi~< zU|Tb`wSupW>y+2iAQuz~_I+W*56qH?Ogbzb~ z5WTOUOL_;8-;WI^rReFCFE$$MG028@fL+xm^OFGuIq-aGQ&ucICR;kwoYzc#Nxs;0 z7Yt7#;JDkI1b4ye>+64W;fuj#kBi=IQVASaMl38WKEK6!XohYuCA_l0u@1rHS@CC!?=b}*9_@JI@SP?Ki<%`uoUMwty(V9V}Ie_7_xwSoAOc2CN{{M_*rRlTb z<%4{&;%x}QabODPx-LcITy!oR25cgOYi(+33i{%!X`dhYVw~Sg`g|kT^zAkqD{Ke@ z=M7Lj0eFtmVqno42j8aLDi|~?Dc3~tYJ=ZLwUkTAs26f0WNv^k)sT3cM@el z5`afb?Yzt==_nb$7=2x1-=#mzz>2Kj!}+TSg1!co^eOoakaaS&uCA_y+O{_JarHsY z>}e`$QxZS8N(S%t=MRVT=p3FIAi;Wg8#{)twaYMG-wW%Q8Tyx+7m|KIpjpG6Lccp$ z1kF_F`)R*{^AGdmjNGkJGRsdn0_6ylBT$Y&IRd4Nz~8SPz8(O6!%+YL002ovPDHLk FV1i%gIR*d# literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconSettings.imageset/Settings@3x.png b/submodules/TelegramUI/Images.xcassets/Chat List/Tabs/Holiday/IconSettings.imageset/Settings@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..27cad3a239863c18e13d5399156cab53152e15e9 GIT binary patch literal 3452 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 eK#oAU5%?dUvSAC4p_6L>0000 literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 50b836c8f8..f2e2328cea 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -7164,7 +7164,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G self.saveInterfaceState(includeScrollState: false) } - if let navigationController = self.navigationController as? NavigationController, self.traceVisibility() && isTopmostChatController(self) { + if let navigationController = self.navigationController as? NavigationController, isTopmostChatController(self) { var voiceChatOverlayController: VoiceChatOverlayController? for controller in navigationController.globalOverlayControllers { if let controller = controller as? VoiceChatOverlayController {